1. 95
Access Control Lists
Los archivos y directorios tienen conjuntos de permisos configurados para el propietario del archivo,
el grupo asociado con el archivo y todos los otros usuarios del sistema. Sin embargo, estos permisos
tienen sus limitaciones. Por ejemplo, no se puedenconfigurar diferentes permisos para usuarios
diferentes. Por ello, se implementaronlas Listas de Control de Acceso (ACLs - Access Control Lists).
El kernel de Red Hat Enterprise Linux 5 proporciona soporte para ACL para el sistema de archivos
ext3 y los sistemas de archivos con exportaciones NFS. También se reconocen las ACLs en sistemas
de archivos ext3 accedidos a través de Samba.
Se requiere el paquete acl para implementar ACLs junto con el soporte en el kernel. Este contiene
utilidades usadas para añadir, modificar, eliminar y recuperar información de ACL.
Los comandos cp y mv copian o mueven cualquier ACLs asociado con archivos y directorios.
8.1. Montaje de sistemas de archivos
Antes de usar ACL para un archivo o directorio, la partición para el archivo o directorio debe ser
montada con soporte ACL. Si es un sistema de archivos local, se puede montar con el comando
siguiente:
mount -t ext3 -o acl <device-name> <partition>
Por ejemplo:
mount -t ext3 -o acl /dev/VolGroup00/LogVol02 /work
Alternativamente, si la partición esta listada en el archivo /etc/fstab, la entrada para la partición
puede incluir la opción acl:
LABEL=/work /work ext3 acl 1 2
Si se accede a un sistema de archivos ext3 a través de Samba y se tiene activado las ACLs para
este, las ACLs serán reconocidas porque Samba ha sido compilado con la opción --with-acl-
support. No se requiere ningún indicador especial cuando se este montandouna compartición
Samba.
8.1.1. NFS
Por defecto, si el sistema de archivos que está siendo exportado por un servidor NFS soporta ACLs y
el cliente NFS puede leer ACLs, los ACLs seran utilizados por el sistema cliente.
Para desactivar ACLs en sistemas de archivos NFS cuando se esté configurando el servidor, incluya
la opción no_acl en el archivo /etc/exports. Para desactivar ACLs en una sistema compartido
NFS cuando se esté montandoen un cliente, móntelo con la opción no_acl a través de la línea de
comandos o del archivo /etc/fstab.
8.2. Configuración de acceso a ACLs
Existen dos tipos de ACLs: acceso ACLs y ACLs predeterminado. Un acceso a ACLs es la lista de
control de acceso para un archivo o directorio específico. Un ACLs predeterminado sólo puede ser
2. 96
Configurar ACLs predeterminados
asociado con un directorio, si un archivo dentro del directorio no tiene un ACL, el archivo utilizará las
reglas del ACL predeterminado para el directorio. Los ACLs predeterminado son opcionales.
Los ACLs se pueden configurar:
1. Por usuario
2. Por grupo
3. A través de la máscara de derechos efectivos
4. Para usuarios que no estén en el grupo de usuarios para el archivo
La utilidad setfacl configura ACLs para archivos y directorios. Utilice la opción -m para añadir o
modificar el ACL de un archivo o directorio:
setfacl -m <rules> <files>
Rules (<rules>) must be specified in the following formats. Multiple rules can be specified in the
same command if they are separated by commas.
u:<uid>:<perms>
Configura el acceso ACL para un usuario. Se debe especificar el nombre del usuario o su UID. El
usuario puede ser cualquier usuario válido en el sistema.
g:<gid>:<perms>
Configura el acceso ACL para un grupo. Se debe especificar el nombre del grupo o su GID. El
grupo puede ser cualquier grupo válido en el sistema.
m:<perms>
Configura la máscara de derechos efectivos. La máscara es la unión de todos los permisos del
grupo propietario y todas las entradas del usuario y grupo.
o:<perms>
Configura el acceso ACL para otros usuarios que no esten en el grupo para el archivo.
White space is ignored. Permissions (<perms>) must be a combination of the characters r, w, and x
for read, write, and execute.
Si un archivo o directorio ya tiene una ACL y se usa el comando setfacl, se añadenlas reglas
adicionales al ACL existente o la regla existente es modificada.
Por ejemplo, para otorgar permisos de lectura y escritura para el usuario andrius:
setfacl -m u:andrius:rw /project/somefile
Para eliminar todos los permisos para un usuario, grupo u otros, utilice la opción -x y no especifique
ningún permiso:
setfacl -x <rules> <files>
Por ejemplo, para eliminar todos los permisos del usuario con UID 500:
setfacl -x u:500 /project/somefile
3. 97
Configurar ACLs predeterminados
8.3. Configurar ACLs predeterminados
Para configurar un ACLs predeterminado, añada d: antes de la regla y especifique un directorio en
vez de un nombre de archivo.
Por ejemplo, para configurar el ACL predeterminado para el directorio /share/ para que lea y
ejecute para los usuarios que no se encuentren en el grupo del usuario (un acceso ACL para un
archivo individual puede anularlo):
setfacl -m d:o:rx /share
8.4. Recuperar ACLs
Para determinar la existencia de ACLs para un archivo o directorio, utilice el comando getfacl. En el
siguiente ejemplo, getfacl seutiliza para determinar los ACLs existentes para un archivo.
getfacl home/john/picture.png
El comando anterior devuelve la siguinete salida:
# file: home/john/picture.png
# owner: john
# group: john
user::rw-
group::r--
other::r--
Si se especifica un directorio y tiene un ACL predeterminado, el ACL por defecto también se presenta
como se ve a continuación.
[john@main /]$ getfacl home/sales/
# file: home/sales/
# owner: john
# group: john
user::rw-
user:barryg:r--
group::r--
mask::r--
other::r--
default:user::rwx
default:user:john:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
8.5. Archivar sistemas de archivos con ACLs
Aviso
Los comandos tar y dump no respaldan ACLs.
4. 98
Configurar ACLs predeterminados
The star utilityis similar to the tar utilityin that it can be used to generate archives of files; however,
some of its options are different. Refer to Tabla 8.1, “Opciones de línea de comandos para star” for
a listing of more commonly used options. For all available options, refer to the star man page. The
star package is required to use this utility.
Opción Descripción
-c Crea un paquete de archivos.
-n No extrae los archivos; úselo en conjunto -x para mostrar
qué hace la extracción de archivos.
-r Reemplaza archivos en el paquete. Los archivos son
escritos al final del paquete de archivos, reemplazando
cualquier archivo con la misma ruta y nombre de archivo.
-t Muestra los contenidos de un paquete de archivos.
-u Actualiza el paquete de archivos. Los archivos son escritos
al final del paquete si no existen en el paquete o si los
archivos son más recientes que los archivos del mismo
nombre en el paquete. Esta opción sólo funciona si el
paquete es un archivo o una cinta no bloqueada en la que
se pueda grabar en diferentes ubicaciones.
-x Extrae los archivos del paquete. Si se utiliza con -U y un
archivo en el paquete es más antiguo que el archivo
correspondiente en el sistema de archivos, el archivo no es
extraído.
-help Muestra las opciones más importantes.
-xhelp Despliega las opciones menos importantes.
-/ No quita las barras oblicuas al comienzo de los nombres
de archivos cuando se extraen archivos desde un paquete.
Por defecto, estos son removidos cuando se extraen los
archivos.
-acl Cuando se cree o extraiga, empaquete o restaure
cualquier ACL asociado con los archivos y directorios.
Tabla 8.1. Opciones de línea de comandos para star
8.6. Compatibilidad con sistemas antiguos
Si se ha configurado un ACL en cualquier archivo en un sistema de archivos dado, ese archivo tiene
el atributo ext_attr. Este atributo se puede ver usando el comando siguiente:
tune2fs -l <filesystem-device>
Se puede montar un sistema de archivos que haya adquirido el atributo ext_attr con kernels más
viejos, pero estos kernels no hacen cumplir ningún ACLs que se haya configurado.
Las versiones de la utilidad e2fsck incluídas en la versión 1.22 y posteriores del paquete
e2fsprogs (incluyendo las versiones en Red Hat Enterprise Linux 2.1 y 4) pueden verificar un
sistema de archivos con el atributo ext_attr. Las versiones anteriores no lo hacen.
5. 99
Configurar ACLs predeterminados
8.7. Recursos adicionales
Consulte los recursos siguientes para más información.
8.7.1. Documentación instalada
• Página man de acl — Descripción de ACLs
• Página man de getfacl — Discute cómo obtener las listas de control de acceso
• Página man de setfacl — Explica cómo configurar listas de control de acceso de archivos
• Página man de star — Explica más detalles sobre la utilidad star y sus opciones
8.7.2. Sitios Web de utilidad
• http://acl.bestbits.at/ — Sitio Web para ACLs