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

Las reglas (<rules>) deben ser especificadas en los formatos siguientes. Se pueden especificar múltiples reglas en el mismo comando si estas se encuentran separadas por comas.

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.

Se ignoran los espacios en blanco. Los permisos (<perms>) deben ser una combinación de caracteres r, w y x para lectura, escritura y ejecución.

Si un archivo o directorio ya tiene una ACL y se usa el comando setfacl, se añaden las reglas adicionales al ACL existente o la regla existente es modificada.

Por ejemplo, para otorgar permisos de lectura y escritura para el usuario tfox:

setfacl -m u:tfox: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