Los permisos de acceso tradicionales de Linux para archivos y directorios consisten en establecer una combinación de permisos de lectura, escritura y ejecución para el propietario del archivo o directorio, un miembro del grupo al que está asociado el archivo o directorio y todos los demás (otros). Las listas de control de acceso (ACL) proporcionan un mecanismo de control de acceso más detallado que estos permisos de acceso tradicionales de Linux.
Instalación de ACL
Antes de usar ACL para un archivo o directorio, instale el paquete acl:
# yum install acl
Configuración de ACL en un sistema de archivos
El sistema de archivos que contiene el archivo o directorio también debe montarse con compatibilidad con ACL. La siguiente es la sintaxis para montar un sistema de archivos local ext3 compatible con ACL:
# mount -t ext3 -o acl [device-name] [mount-point]
Por ejemplo:
# mount -t ext3 -o acl /dev/mapper/VolGroup00-LogVol00 /data
Si la partición aparece en el archivo /etc/fstab, incluya la opción acl:
# vi /etc/fstab LABEL=/data /data ext3 acl 0 0
Reglas de ACL
Una ACL consiste en un conjunto de reglas que especifican cómo un usuario o grupo puede acceder al archivo o directorio al que está asociada la ACL. Hay dos tipos de reglas de ACL:
- acceder a las ACL :especifique la información de acceso para un solo archivo o directorio
- ACL predeterminadas :Pertenecen a un directorio solamente. Especifica la información de acceso predeterminada para cualquier archivo dentro del directorio que no tenga una ACL de acceso.
Mostrar ACL en archivos
Usa el getfacl utilidad para mostrar la ACL de un archivo. Cuando un archivo no tiene una ACL, muestra la misma información que 'ls –l', aunque en un formato diferente. Por ejemplo, el archivo de prueba no tiene una ACL:
# ls –l test -rw-rw-r-- 1 oracle oracle 25 Mar 5 10:10 test
Ejemplo de salida getfacl del archivo de prueba:
# getfacl test # file: test # owner: oracle # group: oracle user::rw- group::rw- other::r--
Configuración de ACL en archivos
Usa el setfacl utilidad para agregar o modificar una o más reglas en la ACL de un archivo. La sintaxis es:
# setfacl -m [rules] [files]
Las reglas tienen el siguiente formato:
- u:nombre:permisos :Establece la ACL de acceso para un usuario (nombre de usuario o UID)
- g:nombre:permisos :establece la ACL de acceso para el grupo (nombre de grupo o GID)
- m:permisos :establece la máscara de derechos efectivos. Esta es la unión de todos los permisos del grupo propietario y todas las entradas de usuarios y grupos.
- o:permisos :Establece la ACL de acceso para todos los demás (otros)
Los permisos son los tradicionales r, w y x para lectura, escritura y ejecución, respectivamente. El siguiente ejemplo agrega una regla a la ACL para el archivo de prueba que otorga al usuario de Oracle permiso de lectura y escritura para ese archivo:
# setfacl -m u:oracle:rwx test
La salida de getfacl incluye la regla ACL:
# getfacl test # file: test # owner: oracle # group: oracle user::rw- user:oracle:rwx group::rw- mask::rwx other::r--
Cuando un archivo tiene una ACL, 'ls –l' muestra un signo más (+ ) siguiendo los permisos:
# ls –l test -rw-rwxr--+ 1 oracle oracle 25 Mar 5 10:10 test
Eliminación de ACL de archivos
Usa la –x opción sin especificar ningún permiso para eliminar reglas para un usuario o grupo.
# setfacl –x u:oracle test
Para eliminar la ACL en sí, use -b opción:
# setfacl –b test
Configuración de las ACL predeterminadas
Para establecer una LCA predeterminada, agregue d: antes de la regla y especifique un directorio en lugar de un nombre de archivo:
# setfacl -m d:o:rx /shareUNIX/Linux:Conceptos básicos de las listas de control de acceso (ACL)