getfacl.
Se utiliza para determinar los permisos establecidos en las listas de control de acceso de un archivo o directorio dado.
setfacl.
Se utiliza para cambiar los permisos en las listas de control de acceso de un archivo o directorio dado.
Para ver el contenido de las listas de control de acceso de un archivo o directorio particular, se ejecuta getfacl con la ruta del archivo o directorio como argumento. Ejemplo:
getfacl /home/fulanoLo anterior devolverá una salida similar la siguiente:
getfacl: Eliminando '/' inicial en nombres de ruta absolutos# file: home/fulano# owner: fulano# group: fulanouser::rwxgroup::---other::---Lo anterior muestra que sólo el propietario del directorio tiene permisos de lectura, escritura y acceso.
Para lograr que un usuario en particular pueda acceder también a este directorio, se ejecuta setfacl, con la opción -mpara modificar la lista de control de acceso, [u,g,o]:[usuario,grupo]:[r,w,x] y la ruta del directorio como argumentos. Ejemplo:
setfacl -m u:zutano:rX /home/fulanoEn el ejemplo anterior se utilizó X mayúscula para indicar que sólo se aplicará el bit de acceso de a directorios evitando aplicar el bit de ejecución a los archivos.
Lo anterior establece que se añaden permisos de lectura y acceso al directorio /home/fulano para el usuario zutano.
Para verificar, ejecute de nuevo getfacl con la ruta del directorio modificado como argumento
getfacl /home/fulanoLo anterior devolvería una salida similar a la siguiente:
getfacl: Eliminando '/' inicial en nombres de ruta absolutos# file: home/fulano# owner: fulano# group: fulanouser::rwxuser:zutano:r-xgroup::---mask::r-xother::---Para aplicar los permisos de forma descendente, se ejecuta setfacl con la opción -R (mayúscula), la opción -m, [u,g,o]:[usuario,grupo]:[r,w,X,x] y la ruta del directorio como argumento. Ejemplo:
setfacl -R -m u:zutano:rX /home/fulanosetfacl -R -m u:perengano:rwX /home/fulanoEn el ejemplo anterior se utilizó X mayúscula para indicar que sólo se aplicará el bit de acceso de a directorios evitando aplicar el bit de ejecución a los archivos.
Lo anterior asignaría permisos r-x para el usuario zutano y rwx para el usuario perengano sobre el directorio /home/fulano y todo su contenido, pero aplicando sólo el bit de acceso a directorios y evitando asignar bit de ejecución a los archivos.
Para eliminar los permisos de un usuario en particular de la lista de control de acceso de un directorio en particular, se ejecuta setfacl con la opción -x, el nombre del usuario o grupo y la ruta del directorio como argumento. Ejemplo:
setfacl -R -x perengano /home/fulanoPara eliminar los permisos predeterminados en la lista de control de acceso, se ejecuta setfacl con la opción -k (--remove-default) y la ruta del directorio como argumento. Ejemplo:
setfacl -k /home/fulanoPara eliminar todos los permisos en la lista de control de acceso, dejando todo como en el punto inicial, se ejecuta setfacl con la opción -b (--remove-all) y la ruta del directorio como argumento. Ejemplo:
setfacl -R -b /home/fulano