Listas de control de acceso (ACL) en Linux

¿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:

setfacl y getfacl

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:

cambiar permisos

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 :

eliminar 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 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.

compruebe establecer acl con 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

Publicación traducida automáticamente

Artículo escrito por msdeep14 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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