RHEL 7 – Notas de RHCSA (hojas de referencia)
Las listas de control de acceso a archivos (FACL) o simplemente ACL son la lista de usuarios/grupos adicionales y su permiso para el archivo. Aunque los permisos de archivo predeterminados hacen su trabajo a la perfección, no le permite otorgar permisos a más de un usuario o grupo en el mismo archivo.
Cómo saber cuándo un archivo tiene una ACL adjunta
El comando ls -l produciría una salida como se muestra a continuación. Tenga en cuenta el + firmar al final de los permisos. Esto confirma que el archivo tiene una ACL adjunta.
# ls -l -rw-r--r-+ 1 root root 0 Sep 19 14:41 file
Ver ACL
Para mostrar información detallada de ACL de un archivo, use el comando getfacl. Si observa detenidamente, los usuarios sam y john tienen algunos permisos adicionales (que se muestran resaltados). Los permisos predeterminados de usuario/grupo se especifican utilizando "usuario::permiso" y "grupo::
# getfacl /tmp/test # file: test # owner: root # group: root user::rw- user:john:rw- user:sam:rwx group::r-- mask::rwx other:---
Por el contrario, si verifica las ACL en un archivo con "sin ACL", las líneas adicionales "usuario:" y "máscara" no se mostrarán y se mostrarán los permisos de archivo estándar. :
# getfacl test # file: test # owner: root # group: root user::rw- group::r-- other::r--
Creación y administración de FACL
El comando setfacl se usa para establecer ACL en el archivo dado. Para dar acceso rw al usuario john en el archivo /tmp/test :
# setfacl -m u:john:rw /tmp/test
La opción -m le dice a setfacl que modifique las ACL en los archivos mencionados en la línea de comando. En lugar del usuario john, podemos tener un grupo para tener un permiso específico en el archivo:
# setfacl -m g:accounts:rw /tmp/test
Las FACL para múltiples usuarios y grupos también se pueden configurar con un solo comando:
# setfacl -m u:john:rw,g:accounts:rwx /tmp/test
ACL predeterminadas
Al establecer una ACL predeterminada, determinará los permisos que se establecerán para todos los elementos nuevos que se creen en el directorio. Pero los permisos de los archivos y subdirectorios existentes siguen siendo los mismos.
Para crear una FACL predeterminada en un directorio:
# setfacl -m default:u:john:rw /accounts
Observe los permisos predeterminados en el comando getfacl:
# getfacl accounts/ # file: accounts/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:john:rw- default:group::r-x default:mask::rwx default:other::r-x
Eliminación de FACL
Para eliminar las ACL, use el comando setfacl con la opción -x:
# setfacl -x u:john /tmp/test
El comando anterior elimina la ACL para el usuario john en el archivo /tmp/test. Las ACL para otros usuarios/grupos, si las hay, no se ven afectadas. Para eliminar todas las ACL asociadas a un archivo, use la opción -b con setfacl :
# setfacl -b /tmp/testTambién puede crear una copia de seguridad de las ACL con getfacl y restaurar las ACL con el comando setfacl. Para crear la copia de seguridad, use getfacl -R /dir> file.acls. Para restaurar la configuración desde el archivo de respaldo, use setfacl –restore=file.acl