Inicio > Gestión de paquetes y sistema > acl

ACL: Gestión de Listas de Control de Acceso

ACL (Access Control List) es una característica del sistema Linux que permite establecer permisos granulares para archivos y directorios. Además de los permisos tradicionales de usuario, grupo y otros, puede otorgar o revocar permisos individuales de lectura, escritura y ejecución para usuarios o grupos específicos. `acl` en sí mismo no es un comando, sino que se gestiona principalmente a través de los comandos `getfacl` y `setfacl`.

Descripción General

ACL proporciona una gestión de permisos flexible que va más allá del modelo de permisos tradicional de Unix (propietario, grupo, otros). Puede especificar explícitamente los permisos de acceso a archivos o directorios para usuarios o grupos específicos. Esto es útil para satisfacer requisitos de permisos complejos en entornos compartidos por varios usuarios.

Características Principales

  • Control de permisos granular
  • Otorgar permisos a usuarios/grupos específicos
  • Funciona junto con los permisos predeterminados (umask)
  • Posibilidad de establecer ACL predeterminadas para directorios

Instalación

La funcionalidad `acl` está integrada en el kernel de Linux, pero para usar los comandos `getfacl` y `setfacl`, debe instalar el paquete `acl`. Es posible que no esté instalado por defecto en la mayoría de las distribuciones de Linux.

Debian/Ubuntu

sudo apt update && sudo apt install acl

Comando para instalar el paquete `acl` en sistemas basados en Debian o Ubuntu.

CentOS/RHEL/Fedora

sudo yum install acl

Comando para instalar el paquete `acl` en sistemas basados en CentOS, RHEL o Fedora.

Ejemplos de Uso

Las ACL se gestionan principalmente a través de los comandos `getfacl` (para consultar ACL) y `setfacl` (para establecer ACL). A continuación, se presentan algunos ejemplos de uso comunes.

Consultar ACL de un archivo

getfacl my_file.txt

Utilice el comando `getfacl` para verificar las ACL actuales de un archivo o directorio específico.

Otorgar permisos de lectura/escritura a un usuario específico

setfacl -m u:user1:rw my_file.txt

Utilice la opción `setfacl -m` para otorgar permisos de lectura (r) y escritura (w) al usuario 'user1' en 'my_file.txt'.

Otorgar permisos de ejecución a un grupo específico

setfacl -m g:dev_group:x my_script.sh

Utilice la opción `setfacl -m` para otorgar permisos de ejecución (x) al grupo 'dev_group' en 'my_script.sh'.

Eliminar una entrada de ACL

setfacl -x u:user1 my_file.txt

Utilice la opción `setfacl -x` para eliminar la entrada de ACL para 'user1'.

Establecer ACL predeterminada para un directorio

setfacl -m d:u:user2:rwx my_directory/

Establece una ACL predeterminada para un directorio, de modo que los archivos o directorios creados posteriormente hereden esta ACL. Se utiliza el prefijo `d:`.

Eliminar todas las ACL

setfacl -b my_file.txt

Utilice la opción `setfacl -b` para eliminar todas las entradas de ACL extendidas de un archivo o directorio, restaurando los permisos tradicionales.

Consejos y Consideraciones

Al usar ACL, es importante comprender su interacción con el sistema de permisos existente.

ACL y Permisos Tradicionales

  • Los archivos/directorios con ACL configuradas mostrarán un signo `+` al final de la cadena de permisos en la salida de `ls -l`.
  • Las ACL otorgan permisos adicionales sobre los permisos tradicionales (propietario, grupo, otros). La entrada `mask` limita los permisos efectivos máximos de las ACL.
  • Configurar ACL demasiado complejas puede dificultar la gestión de permisos, por lo que deben usarse con precaución y solo cuando sea necesario.

Entendiendo la entrada mask

Cuando se configuran ACL, la entrada `mask` se crea o actualiza automáticamente. Esta `mask` define los permisos efectivos máximos otorgados a las entradas de usuario (u:), grupo (g:), usuario con nombre (u:name:) y grupo con nombre (g:name:). Incluso si se otorgan más permisos de los que permite la `mask`, estos estarán limitados por ella. Puede establecer manualmente la `mask` con comandos como `setfacl -m m::rw`.

Soporte del Sistema de Archivos

Para usar ACL, el sistema de archivos debe ser compatible con ACL. La mayoría de los sistemas de archivos Linux modernos como ext2, ext3, ext4 y XFS admiten ACL. Es posible que deba verificar que la opción `acl` esté habilitada al montar el sistema de archivos (por ejemplo, en `/etc/fstab`).


Comandos de la misma categoría