Descripciones de la sintaxis para definir las ACL
Se proporcionan dos formatos básicos de ACL de la siguiente manera:
-
ACL trivial: contiene únicamente entradas las entradas tradicionales de UNIX user, group y owner.
Use la siguiente sintaxis de comando para definir ACL triviales.
chmod [options] A[index]{+|=}owner@ |group@ |everyone@: \
access-permissions/...[:inheritance-flags]:deny | allow file
chmod [options] A-owner@, group@, everyone@: \
access-permissions/...[:inheritance-flags]:deny | allow file ...
chmod [options] A[index]- file
-
ACL no trivial: contiene otras entradas además de owner, group y everyone, incluye conjuntos de indicadores heredados o las entradas están ordenadas de una manera no tradicional.
Use la siguiente sintaxis de comando para definir ACL no triviales.
chmod [options] A[index]{+|=}user|group:name: \
access-permissions/...[:inheritance-flags]:deny | allow file
chmod [options] A-user|group:name: \
access-permissions/...[:inheritance-flags]:deny | allow file ...
chmod [options] A[index]- file
En la siguiente lista se explican las opciones que se utilizan en los comandos para configurar ACL triviales y no triviales.
- owner@, group@, everyone@
-
Identifica el tipo de entrada de ACL de la sintaxis de ACL triviales. Para obtener una descripción de tipos de entrada de ACL, consulte la Table 7–1.
- user or group:ACL-entry-ID=username or groupname
-
Identifica el tipo de entrada de ACL de la sintaxis de ACL explícitas. El usuario y el grupo de tipo de entrada de ACL deben contener también el ID de entrada de ACL, nombre de usuario o nombre de grupo. Para obtener una descripción de tipos de entrada de ACL, consulte la Table 7–1.
- access-permissions/.../
-
Identifica los permisos de acceso que se conceden o deniegan. Para obtener una descripción de los permisos de acceso de ACL, consulte Table 7–2.
- inheritance-flags
-
Identifica una lista opcional de indicadores de herencia de ACL. Para obtener una descripción de los indicadores de herencia de ACL, consulte Table 7–4.
- deny | allow
-
Identifica si se conceden o deniegan los permisos de acceso.
En el siguiente ejemplo, no existe valor ACL-entry-ID para owner@, group@ o everyone@.
group@:write_data/append_data/execute:deny
El ejemplo siguiente incluye un ID de entrada LCA porque en la LCA se incluye un usuario específico (tipo de entrada LCA).
0:user:joe:list_directory/read_data/execute:allow
Se muestra una entrada de ACL similar a la siguiente:
2:group@:write_data/append_data/execute:deny
El 2 o el ID de índice de este ejemplo identifica la entrada de ACL de 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 el comando chmod de una forma similar a la siguiente:
chmod A3=user:venkman:read_acl:allow filename
La siguiente tabla describe los tipos de entrada de la ACL, que son las representaciones de propietario, grupo y otros de ACL.
Tabla 7-1 Tipos de entrada de ACL
|
|
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. Debe incluir el ID de entrada de ACL, que contiene un username o userID. Si el valor no es un ID de usuario numérico o username 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. Debe incluir el ID de entrada de ACL, que contiene un groupname o groupID. Si el valor no es un ID de grupo numérico o groupname válido, el tipo de entrada de ACL tampoco es válido.
|
|
En la tabla siguiente se describen los privilegios de acceso de LCA.
Tabla 7-2 Privilegios de acceso de ACL
|
|
|
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
|
Actualmente no se ha implementado.
|
delete
|
d
|
Permiso para suprimir un archivo. Para obtener más información sobre el comportamiento de permiso delete específico, consulte la Table 7–3.
|
delete_child
|
D
|
Permiso para suprimir un archivo o un directorio dentro de un directorio. Para obtener más información sobre el comportamiento de permiso delete_child específico, consulte la Table 7–3.
|
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 del archivo.
|
read_xattr
|
S
|
Permiso para leer los atributos extendidos de un archivo o al buscar en el directorio de atributos extendidos del archivo.
|
synchronize
|
s
|
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 las horas asociadas 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 del 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.
|
|
La siguiente tabla proporciona información adicional sobre los comportamientos de ACL delete y delete_child .
Tabla 7-3 Comportamientos de permiso de ACL delete y delete_child
|
|
|
ACL permite suprimir
|
ACL deniega suprimir
|
Permiso de supresión no especificado
|
ACL permite delete_child
|
Permitir
|
Permitir
|
Permitir
|
ACL deniega delete_child
|
Permitir
|
Denegar
|
Denegar
|
ACL permite solamente write y execute
|
Permitir
|
Permitir
|
Permitir
|
ACL deniega write y execute
|
Permitir
|
Denegar
|
Denegar
|
|
Conjuntos de LCA de ZFS
Las siguientes combinaciones de ACL se pueden aplicar en un conjunto de ACL en lugar de establecer permisos individuales por separado. Están disponibles los siguientes conjuntos de ACL.
|
|
full_set
|
Todos los permisos
|
modify_set
|
Todos los permisos salvo write_acl y write_owner
|
read_set
|
read_data, read_attributes, read_xattr y read_acl
|
write_set
|
write_data, append_data, write_attributes y write_xattr
|
|
Estos conjuntos de ACL vienen predefinidos y no se pueden modificar.