Seguem dois formatos básicos de ACL:
Sintaxe para definição de ACLs comuns
Uma ACL é comum visto que representa somente as entradas owner/group/other tradicionais do UNIX.
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]- arquivo
Sintaxe para a configuração de ACLs incomuns
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]- arquivo
Identifica o tipo de entrada ACL da sintaxe da ACL comum. Para uma descrição dos tipos de entrada da ACL, consulte a Tabela 8–1.
Identifica o tipo de entrada ACL da sintaxe de ACL explícita. O usuário e grupo com tipo de entrada ACL devem conter também a ID da entrada ACL, nome do usuário ou nome do grupo. Para uma descrição dos tipos de entrada da ACL, consulte a Tabela 8–1.
Identifica as permissões de acesso que são aceitas ou negadas. Para obter uma descrição dos privilégios de acesso da ACL, consulte a Tabela 8–2.
Identifica uma lista opcional de sinalizadores de herança da ACL. Para obter uma descrição dos sinalizadores de herança da ACL, consulte a Tabela 8–3.
Identifica se as permissões de acesso são aceitas ou negadas.
No exemplo abaixo, o valor do ID da entrada ACL não é relevante:
group@:write_data/append_data/execute:deny |
O exemplo abaixo inclui um ID da entrada ACL porque um usuário específico (tipo da entrada ACL) está incluído na ACL.
0:user:gozer:list_directory/read_data/execute:allow |
Quando uma entrada ACL é exibida, ela se parece ao ilustrado abaixo:
2:group@:write_data/append_data/execute:deny |
Neste exemplo, o 2 ou a designação da index-ID identifica a entrada ACL na ACL maior, que pode ter várias entradas para proprietário, UIDs específicos, grupo e todos. Você pode especificar o ID de índice com o comando chmod para identificar que parte da ACL quer modificar. É possível identificar, por exemplo, a ID de índice 3 como A3 na sintaxe de comando chmod, semelhante ao seguinte:
chmod A3=user:venkman:read_acl:allow filename |
Na tabela abaixo encontram-se as descrições dos tipos de entrada ACL, que são as representações da ACL de proprietário, grupo e outros.
Tabela 8–1 Tipos de entrada ACL
Tipo de entrada ACL |
Descrição |
---|---|
owner@ |
Especifica o acesso concedido ao proprietário do objeto. |
group@ |
Especifica o acesso concedido ao grupo proprietário do objeto. |
everyone@ |
Especifica o acesso permitido a todos os usuários ou grupos que não correspondam com nenhuma outra entrada ACL. |
user |
Com um nome de usuário, especifica o acesso concedido a um usuário adicional do objeto. Esta entrada deve incluir a ID da entrada ACL, que contém um nome de usuário ou uma ID de usuário. Se o valor não for um UID numérico ou nome de usuário válidos, o tipo de entrada ACL é inválido. |
group |
Com um nome de grupo, especifica acesso concedido a um grupo adicional do objeto. Esta entrada deve incluir a ID da entrada ACL, que contém um nome de grupo ou uma ID de grupo. Se o valor não for um GID numérico ou nome de grupo válidos, o tipo de entrada ACL é inválido. |
Os privilégios de acesso da ACL estão descritos na tabela abaixo.
Tabela 8–2 Privilégios de acesso da ACL
Privilégio de acesso |
Privilégio de acesso compacto |
Descrição |
---|---|---|
add_file |
w |
Permissão para adicionar um novo arquivo a um diretório. |
add_subdirectory |
p |
Em um diretório, permissão para criar um subdiretório. |
append_data |
p |
Espaço reservado. Ainda não implementado. |
delete |
d |
Permissão para excluir um arquivo. |
delete_child |
D |
Permissão para excluir um arquivo ou um diretório dentro de um diretório. |
execute |
x |
Permissão para executar um arquivo ou pesquisar o conteúdo de um diretório. |
list_directory |
a |
Permissão para listar o conteúdo de um diretório. |
read_acl |
c |
Permissão para ler a ACL (ls). |
read_attributes |
a |
Permissão para ler os atributos básicos (não-ACLs) de um arquivo. Considere os atributos básicos como sendo os atributos do nível stat. Ao permitir este bit de máscara de acesso, a entidade pode executar ls(1) e stat(2). |
read_data |
a |
Permissão para ler o conteúdo de um arquivo. |
read_xattr |
A |
Permissão para ler os atributos estendidos de um arquivo ou efetuar uma consulta no diretório dos atributos estendidos do arquivo. |
synchronize |
s |
Espaço reservado. Ainda não implementado. |
write_xattr |
W |
Permissão para criar atributos estendidos ou gravar no diretório de atributos estendidos. A concessão de permissões a um usuário indica que o usuário pode criar um diretório de atributo estendido para um arquivo. As permissões do arquivo do atributo controlam o acesso do usuário ao atributo. |
write_data |
w |
Permissão para modificar ou substituir o conteúdo de um arquivo. |
write_attributes |
m |
Permissão para alterar os registros de data associados a um arquivo ou diretório para um valor arbitrário. |
write_acl |
C |
Permissão para gravar a ACL ou modificar a ACL através do comando chmod. |
write_owner |
o |
Permissão para alterar o proprietário ou o grupo do arquivo. Ou, a habilidade para executar os comandos chown ou chgrp no arquivo. Permissão para tomar a propriedade de um arquivo ou permissão para alterar a propriedade do grupo do arquivo para um grupo do qual o usuário é membro. Se quiser alterar a propriedade do grupo ou arquivo para um usuário ou grupo arbitrário, o privilégio PRIV_FILE_CHOWN é exigido. |