El comando setfacl se usa para cambiar los permisos asociados con la ACL de un archivo o directorio. El comando setfacl tiene varias opciones, algunas de las más comunes se describen en la siguiente tabla.
| Opción | Descripción |
|---|---|
| -R | Configura recursivamente las opciones de ACL para los directorios y sus contenidos. |
| -s | Establecer la ACL de un objeto, reemplazando cualquier ACL existente. |
| -m | Modificar la ACL existente de un objeto. |
| -x | Eliminar entradas de una ACL existente. |
| -b | Eliminar todas las entradas de ACL (sin incluir los permisos estándar). |
Sintaxis
La sintaxis del comando setfacl es:
# setfacl [-bR] [-mx {acl_spec}] {file/directory names} El siguiente es un ejemplo de cómo modificar la ACL en un directorio donde el usuario http tiene acceso de lectura:
setfacl -m u:http:r-- /home/directory
Si encuentra el siguiente error al ejecutar el comando setfacl:
setfacl: command not found
puede intentar instalar el siguiente paquete según su elección de distribución:
| Distribución | Comando |
|---|---|
| Debian | apt-get install acl |
| Ubuntu | apt-get install acl |
| Alpino | apk agregar acl |
| Arco Linux | pacman-S acl |
| Kali Linux | apt-get install acl |
| Cent OS | yum instalar acl |
| Fedora | acl de instalación de dnf |
| Raspbian | apt-get install acl |
Eliminación de LCA
El comando setfacl también se usa con la opción -x para eliminar la ACL aplicada para cualquier usuario o grupo. La única diferencia entre eliminar ACL y configurar ACL es que no especificamos el permiso durante la eliminación. El siguiente ejemplo ilustra el uso del comando setfacl para eliminar la ACL aplicada a un archivo llamado file1 para el usuario geel y el grupo lab:
$ setfacl -x u:geek,g:lab file1
Para eliminar todas las ACL de un archivo o directorio, podemos usar la opción -b, como se muestra en el siguiente comando:
$ setfacl -b file1
Ejemplos de comandos setacl
1. Modificar ACL de un archivo para usuarios con acceso de lectura y escritura:
# setfacl -m u:username:rw file
2. Modifique la ACL predeterminada de un archivo para todos los usuarios:
# setfacl -d -m u::rw file
3. Eliminar ACL de un archivo para un usuario:
# setfacl -x u:username file
4. Eliminar todas las entradas de ACL de un archivo:
# setfacl -b file