Tengo un script que está colocado en mi carpeta html de apache2 y debería ejecutarse mediante una publicación http. El script requiere root (sé que no es nada seguro, ignórelo, por favor), así que configuré el usuario www-data en el archivo sudoers en www-data ALL=(ALL) NOPASSWD: ALL
. La ejecución del script funciona bastante bien excepto para montar un sistema de archivos cif.
El script se ejecuta mediante php:
exec("sudo ./miniosetup $folder $address $path $User $Pass $S3User $S3Pass $Port");
Se supone que el script debe montarse así:
ipadress=$(host $address | cut -d' ' -f4 | head -n 1)
echo "$ipadress $minuname $minpwd" >> log_mount
echo "mount -v -t cifs //$address/$usePath/ /mnt/$filesystemname/ -o username=$username,password=$password" >> log_mount
sudo mount -v -t cifs //$address/$usePath/ /mnt/$filesystemname/ -o username=$username,password=$password >> log_mount
if [ ! $? -eq 0 ]
then
echo "mount -v -t cifs //$ipadress/$usePath/ /mnt/$filesystemname/ -o username=$username,password=$passwords" >> log_mount
sudo mount -v -t cifs //$ipadress/$usePath/ /mnt/$filesystemname/ -o username=$username,password=$password >> log_mount
fi
El archivo log_mount tiene este aspecto:
192.168.0.5 testingUsr testingTest
mount -v -t cifs //srv01/netstorage/testminio/ /mnt/testingTester/ -o username=FILESYSTEMUSERNAME,password=FILESYSTEMPASSWORD
Sin embargo, cuando lo ejecuto, mount
nunca se muestra. El sistema de archivos tampoco está montado en /mnt/testingTester/
. Cuando ejecuto el script manualmente con los mismos parámetros, todo funciona bien. Cualquier idea se agradece ya que se me están acabando.
EDITAR: sudo funciona; de lo contrario, el script simplemente generaría "Ejecute como root" como está la tercera líneaif [ "$EUID" -ne 0 ]; then echo "Please run as root" exit; fi
EDITAR: Pensé que Apache2 podría ejecutarse en una especie de sanbox, ¿alguien puede confirmarlo o negarlo?