Tengo un directorio llamado /test, hay dos archivos:
info.txt
script.sh
Quiero otorgar acceso de solo lectura al usuario john e hice lo siguiente:
setfacl -m u:john: r test/
Con el comando anterior, John no puede acceder a la carpeta porque carece del permiso de ejecución, así que intenté nuevamente con esto:
setfacl -m u:john: rx test/
Ok, ahora funciona: el usuario john puede acceder a la carpeta y leer los archivos.
Sin embargo, puede ejecutar script.sh. Este último poder no era mi intención concedérselo. ¿Cómo debo proceder?
Respuesta1
Podrías hacerlo chmod o-x test/script.sh
, pero esto no tiene sentido. El usuario podría simplemente copiar el archivo a su directorio de inicio, hacerlo ejecutable y ejecutarlo desde allí. Se ejecutará con los privilegios del usuario de todos modos, a menos que sea setuid. Y los scripts de shell no pueden tener setuid, pero copiar un archivo setuid eliminará el bit setuid de la copia de todos modos.