Saltar al contenido

¿Cómo configuro permisos recursivamente en un directorio (con ACL habilitado)?

No olvides que en las ciencias un problema casi siempere suele tener diferentes resoluciones, no obstante nosotros enseñamos lo más óptimo y mejor.

Solución:

setfacl tiene un recursivo opción (-R) al igual que chmod:

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

también permite el uso de la mayúscula-x X permiso, 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 por acl-2.2.52 como se envía con Debian)

Como lo menciona umläute, el comando setfacl -R con “X” mayúscula es el camino a seguir, como:

setfacl -R -m u:colleague:rwX .

Sin embargo, para aquellos que necesitan volver a aplicar ACL de forma recrusiva (es decir, como “volver a aplicar permisos en subdirectorios” a la Windows).

find . -mindepth 1 | xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')

Ese comando podría dividirse para evitar errores como setfacl: foobar: Only directories can have default ACLs.

find . -mindepth 1 -type d| xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')
find . -mindepth 1 -type f| xargs -n 50 setfacl -b --set-file=<(getfacl . | grep -v '^default:' | sed -e 's/x$/X/')

Tenga en cuenta que la sintaxis <( something ) es Sustitución de procesos, que es específico de bash. Es posible que deba crear un archivo temporal si usa otro shell.

Si te ha sido útil este post, sería de mucha ayuda si lo compartes con otros programadores de esta manera contrubuyes a dar difusión a esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *