A continuación se detallan dos formatos básicos de ACL:
Sintaxis para definir ACL triviales
Una ACL se considera trivial en el sentido de que sólo representa las entradas de UNIX owner/group/other tradicionales.
chmod [options] A[index]{+|=}owner@ |group@ |everyone@: access-permissions/...[:inheritance-flags]: deny | allow archivo
chmod [options] A-owner@, group@, everyone@:access-permissions /...[:inheritance-flags]:deny | allow archivo ...
chmod [options] A[index]- archivo
Sintaxis para definir ACL no triviales
chmod [options] A[index]{+|=}user|group:name:access-permissions /...[:inheritance-flags]:deny | allow archivo
chmod [options] A-user|group:name:access-permissions /...[:inheritance-flags]:deny | allow archivo ...
chmod [options] A[index]- archivo
Identifica el tipo de entrada ACL de la sintaxis de ACL trivial. Para obtener una descripción de los tipos de entrada ACL, consulte la Tabla 8–1.
Identifica el tipo de entrada ACL de la sintaxis de ACL explícita. El tipo de entrada ACL user y group también debe contener el ID de entrada ACL, username o groupname. Para obtener una descripción de los tipos de entrada ACL, consulte la Tabla 8–1.
Identifica los permisos de acceso que se conceden o deniegan. Para obtener una descripción de los permisos de acceso de ACL, consulte la Tabla 8–2.
Identifica una lista opcional de indicadores de herencia de ACL. Para obtener una descripción de los indicadores de herencia de ACL, consulte la Tabla 8–3.
Identifica si se conceden o deniegan los permisos de acceso.
En el ejemplo siguiente, el valor de ID de entrada ACL no es relevante:
group@:write_data/append_data/execute:deny |
El ejemplo siguiente incluye un ID de entrada ACL porque en la ACL se incluye un usuario específico (tipo de entrada ACL).
0:user:gozer:list_directory/read_data/execute:allow |
Cuando en pantalla se muestra una entrada de ACL, se parece al ejemplo siguiente:
2:group@:write_data/append_data/execute:deny |
En este ejemplo, el 2, también denominado ID de índice, identifica la entrada ACL en la ACL más grande, que podría tener varias entradas para owner (propietario), UID específicos, group (grupo) y everyone (cualquiera). Se puede especificar el ID de índice con el comando chmod para identificar la parte de la ACL que desea modificar. Por ejemplo, el ID de índice 3 puede identificarse como A3 en la sintaxis del comando chmod de una forma similar a la siguiente:
chmod A3=user:venkman:read_acl:allow filename |
Los tipos de entrada ACL, que son las representaciones de ACL de los propietarios, grupos, etc., se describen en la tabla siguiente.
Tabla 8–1 Tipos de entradas de ACL
Tipo de entrada de ACL |
Descripción |
---|---|
owner@ |
Especifica el acceso que se concede al propietario del objeto. |
group@ |
Especifica el acceso que se concede al grupo propietario del objeto. |
everyone@ |
Especifica el acceso que se concede a cualquier usuario o grupo que no coincida con ninguna otra entrada de ACL. |
user |
Con un nombre de usuario, especifica el acceso que se concede a un usuario adicional del objeto. Esta entrada debe incluir el ID de entrada ACL, que contiene un nombre_usuario o ID_usuario. Si el valor no es un ID de usuario numérico o nombre de usuario válido, el tipo de entrada de ACL tampoco es válido. |
group |
Con un nombre de grupo, especifica el acceso que se concede a un grupo adicional del objeto. Esta entrada debe incluir el ID de entrada ACL, que contiene un nombre de usuario o ID de grupo. Si el valor no es un ID de grupo numérico o nombre de grupo válido, el tipo de entrada de ACL tampoco es válido. |
En la tabla siguiente se describen los privilegios de acceso de ACL.
Tabla 8–2 Privilegios de acceso de ACL
Privilegio de acceso |
Privilegio de acceso compacto |
Descripción |
---|---|---|
add_file |
w |
Permiso para agregar un archivo nuevo a un directorio. |
add_subdirectory |
p |
En un directorio, permiso para crear un subdirectorio. |
append_data |
p |
Marcador de posición. Actualmente no se ha implementado. |
delete |
d |
Permiso para eliminar un archivo. |
delete_child |
D |
Permiso para eliminar un archivo o un directorio dentro de un directorio. |
execute |
x |
Permiso para ejecutar un archivo o buscar en el contenido de un directorio. |
list_directory |
r |
Permiso para resumir el contenido de un directorio. |
read_acl |
c |
Permiso para leer la ACL (ls). |
read_attributes |
a |
Permiso para leer los atributos básicos (no ACL) de un archivo. Los atributos de tipo stat pueden considerarse atributos básicos. Permitir este bit de la máscara de acceso significa que la entidad puede ejecutar ls(1) y stat(2). |
read_data |
r |
Permiso para leer el contenido de un archivo. |
read_xattr |
R |
Permiso para leer los atributos extendidos de un archivo o al buscar en el directorio de atributos extendidos del archivo. |
synchronize |
s |
Marcador de posición. Actualmente no se ha implementado. |
write_xattr |
W |
Permiso para crear atributos extendidos o escribir en el directorio de atributos extendidos. Si se concede este permiso a un usuario, el usuario puede crear un directorio de atributos extendidos para un archivo. Los permisos de atributo del archivo controlan el acceso al atributo por parte del usuario. |
write_data |
w |
Permiso para modificar o reemplazar el contenido de un archivo. |
write_attributes |
A |
Permiso para cambiar los sellos de fecha asociados con un archivo o directorio a un valor arbitrario. |
write_acl |
C |
Permiso para escribir en la ACL o posibilidad de modificarla mediante el comando chmod. |
write_owner |
o |
Permiso para cambiar el grupo o propietario del archivo. O posibilidad de ejecutar los comandos chown o chgrp en el archivo. Permiso para adquirir la propiedad de un archivo o para cambiar la propiedad del grupo de un archivo a un grupo al que pertenezca el usuario. Si desea cambiar la propiedad de grupo o archivo a un usuario o grupo arbitrario, se necesita el privilegio PRIV_FILE_CHOWN. |