¿Qué es ACL?
Las listas de control de acceso (ACL) proporcionan 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 dar 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 un miembro del grupo creado por usted, pero todavía quiere dar algún acceso de lectura o escritura, ¿cómo puede hacerlo sin hacer que el usuario sea un miembro del grupo, aquí viene en la imagen Listas de Control de Acceso, ACL nos ayuda a hacer este truco.
Básicamente, las ACL se utilizan para hacer un mecanismo de permiso flexible en Linux.
Desde las páginas man de Linux, las ACL se utilizan para definir derechos de acceso discrecionales más finos para archivos y directorios.
setfacl y getfacl se utilizan para configurar ACL y mostrar ACL respectivamente.
Por ejemplo :
getfacl test/declarations.h
Salida:
# file: test/declarations.h# owner: mandeep# group: mandeepuser::rw-group::rw-other::r--
Lista de comandos para configurar la ACL :
1) To add permission for usersetfacl -m "u:user:permissions" /path/to/file2) To add permissions for a groupsetfacl -m "g:group:permissions" /path/to/file 3) To allow all files or directories to inherit ACL entries from the directory it is withinsetfacl -dm "entry" /path/to/dir4) To remove a specific entrysetfacl -x "entry" /path/to/file5) To remove all entriessetfacl -b path/to/file
Por ejemplo :
setfacl -m u:mandeep:rwx test/declarations.h
Modificación de la ACL mediante setfacl :
Para añadir permisos a un usuario (user es el nombre de usuario o el ID):
# setfacl -m "u:user:permissions"
Para añadir permisos para un grupo (el grupo es el nombre o el ID del grupo):
# setfacl -m "g:group:permissions"
Para permitir que todos los archivos o directorios hereden las entradas ACL del directorio en el que se encuentran:
# setfacl -dm "entry"
Ejemplo :
setfacl -m u:mandeep:r-x test/declarations.h
Vea la imagen de abajo para la salida :
setfacl y getfacl
Ver ACL :
Para mostrar los permisos :
# getfacl filename
Observe la diferencia entre la salida del comando getfacl antes y después de configurar los permisos ACL mediante el comando setfacl.
Hay una línea extra añadida para el usuario mandeep que está resaltada en la imagen de arriba.
Salida:
cambiar permisos
El comando anterior cambia los permisos de rwx a r-x
Eliminar ACL :
Si quiere eliminar los permisos ACL establecidos, utilice el comando setfacl con la opción -b.
Por ejemplo :
eliminar los permisos establecidos
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 ninguna entrada particular para el usuario mandeep en la salida posterior.
También puede comprobar si hay algún permiso extra establecido a través de ACL usando el comando ls.
Comprueba el conjunto de acl con ls
Observa la primera salida del comando en la imagen, hay un signo «+» extra después de los permisos como -rw-rwxr-+, esto indica que hay permisos ACL extra establecidos que puedes comprobar con el comando getfacl.
Usando ACL por defecto :
La ACL por defecto es un tipo específico de permiso asignado a un directorio, que no cambia los permisos del directorio en sí, sino que hace que las ACLs especificadas se establezcan por defecto en todos los archivos creados dentro de él. Vamos a demostrarlo : primero vamos a crear un directorio y asignarle ACL por defecto utilizando la opción -d:
$ mkdir test && setfacl -d -m u:dummy:rw test