linux – ¿Cómo configuro los permisos de forma recursiva en un directorio (con ACL habilitado)?

Pregunta:

Por ejemplo, quiero darles a mis colegas acceso de escritura a cierto directorio. Supongamos que los subdirectorios tienen derechos de acceso 775, archivos 664, y también hay algunos archivos ejecutables en el directorio 775.

Ahora quiero agregar permisos de escritura. Con chmod, podría probar algo como

chmod o+w -R mydir/

Pero eso no está bien, ya que no quiero que el directorio se pueda escribir en todo el mundo; quiero dar acceso solo a ciertos usuarios, así que quiero usar ACL. Pero, ¿existe una manera fácil de establecer esos permisos? Como lo veo, necesito abordar al menos tres casos (dirs, archivos, archivos ejecutables) por separado:

find -type d -exec setfacl -m u:colleague:rwx {} \;
find -type f -executable -exec setfacl -m u:colleague:rwx {} \;
find -type f \! -executable -exec setfacl -m u:colleague:rw {} \;

Parece una gran cantidad de líneas de código para una tarea tan simple. ¿Existe una forma mejor?

Respuesta:

setfacl tiene una opción recursiva ( -R ) como chmod :

 -R, --recursive Apply operations to all files and directories recursively. This option cannot be mixed with `--restore'.

también permite el uso del permiso capital-x X , lo que significa:

 execute only if the file is a directory or already has execute permission for some user (X)

así que hacer lo siguiente debería funcionar:

setfacl -R -m u:colleague:rwX .

(todas las citas son de man setfacl para acl-2.2.52 como se envió con Debian)

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım