¿Cómo se consigue setfacl para establecer permisos ACL recursivamente en Linux?

20

Estoy configurando un nuevo servidor y quería darle a ACL una oportunidad sobre los permisos de estilo chown: chgrp: chmod.

La página de manual de setfacl indica que la opción '-R' se puede usar para configurar la ACL de forma recursiva en archivos y directorios.

-R, --recursive Aplica operaciones a todos los archivos y directorios de forma recursiva. Esta opción no se puede mezclar con '--restore'.

Si mi diseño de directorio se ve así

test/
   subtest/
   subtest.txt

y ejecuto

setfacl -Rm d:u:foo:rwX test

La ACL tiene efecto en el directorio 'subtest', pero no en el archivo subtest.txt.

Creo que puedo usar find + exec para solucionarlo, pero planeo usar este servidor para entrenar a algunos otros administradores y quiero mantenerlo lo más simple posible para que no nos obsesionemos con algunos de los más avanzados convenciones

Gracias

Joe Holloway
fuente

Respuestas:

43

Tratar:

setfacl -Rm u:foo:rwX,d:u:foo:rwX test

para modificar la ACL actual y la predeterminada. Creo que "d:" solo afecta la (d) ACL predeterminada de los directorios y deja los archivos intactos. Luego, si crea un nuevo archivo en el directorio, hereda la ACL de su directorio principal a través del valor predeterminado.

Pausado hasta nuevo aviso.
fuente
Eso tiene sentido incluso si se siente un poco redundante
Joe Holloway
1
¿Funciona esto también para eliminar el control de acceso? Quizás algo en el sentido de: sudo setfacl -Rx g: gid path
¿Por qué cambiar de lugar entre las banderas -Ry -mrompe el comando?
pkaramol
@pkaramol: Debido a que la -mopción toma un argumento (la especificación de ACL u:foo:rwX,d:u:foo:rwXen este caso) y cambiar el orden de las opciones separa la opción de su argumento. También puede ser que setfaclesté codificado para esperar sus opciones principales primero.
Pausado hasta nuevo aviso.