¿Qué es ACL?
La lista de control de acceso (ACL) proporciona un mecanismo de permisos adicional y más flexible para los sistemas de archivos. Está diseñado para ayudar con los permisos de archivos UNIX. ACL le permite otorgar permisos para cualquier usuario o grupo a cualquier recurso de disco.
Uso de ACL:
piense en un escenario en el que un usuario en particular no es miembro del grupo creado por usted, pero aún desea otorgarle acceso de lectura o escritura, ¿cómo puede hacerlo sin convertir al usuario en miembro del grupo? Imagen Listas de control de acceso, ACL nos ayuda a hacer este truco.
Básicamente, las ACL se utilizan para crear un mecanismo de permisos flexible en Linux.
Desde las páginas man de Linux, las ACL se utilizan para definir derechos de acceso discrecional más detallados para archivos y directorios.
setfacl y getfacl se utilizan para configurar ACL y mostrar ACL respectivamente.
Por ejemplo :
getfacl test/declarations.h
Producción:
# file: test/declarations.h # owner: mandeep # group: mandeep user::rw- group::rw- other::r--
Lista de comandos para configurar ACL:
1) To add permission for user setfacl -m "u:user:permissions" /path/to/file 2) To add permissions for a group setfacl -m "g:group:permissions" /path/to/file 3) To allow all files or directories to inherit ACL entries from the directory it is within setfacl -dm "entry" /path/to/dir 4) To remove a specific entry setfacl -x "entry" /path/to/file 5) To remove all entries setfacl -b path/to/file
Por ejemplo :
setfacl -m u:mandeep:rwx test/declarations.h
Modificación de ACL usando setfacl:
Para agregar permisos para un usuario (usuario es el nombre de usuario o ID):
# setfacl -m "u:user:permissions"
Para agregar permisos para un grupo (el grupo es el nombre o ID del grupo):
# setfacl -m "g:group:permissions"
Para permitir que todos los archivos o directorios hereden entradas de ACL del directorio en el que se encuentran:
# setfacl -dm "entry"
Ejemplo :
setfacl -m u:mandeep:r-x test/declarations.h
Vea la imagen a continuación para la salida:
Ver ACL:
Para mostrar permisos:
# getfacl filename
Observe la diferencia entre la salida del comando getfacl antes y después de configurar los permisos de ACL usando el comando setfacl .
Se agregó una línea adicional para el usuario mandeep que se resalta en la imagen de arriba.
Producción:
El comando anterior cambia los permisos de rwx a rx
Eliminar ACL:
si desea eliminar los permisos establecidos de ACL, use el comando setfacl con la opción -b.
Por ejemplo :
Si compara la salida del comando getfacl antes y después de usar el comando setfacl con la opción -b, puede observar que no hay una entrada particular para el usuario mandeep en la salida posterior.
También puede verificar si hay permisos adicionales establecidos a través de ACL usando el comando ls.
Observe la salida del primer comando en la imagen, hay un signo «+» adicional después de los permisos como -rw-rwxr–+ , esto indica que hay un conjunto de permisos ACL adicionales que puede verificar con el comando getfacl.
Uso de la ACL predeterminada:
la ACL predeterminada es un tipo específico de permiso asignado a un directorio, que no cambia los permisos del directorio en sí, pero hace que las ACL específicas se establezcan de forma predeterminada en todos los archivos creados dentro de él. Vamos a demostrarlo: primero vamos a crear un directorio y asignarle una ACL predeterminada usando la opción -d:
$ mkdir test && setfacl -d -m u:dummy:rw test