8.2. Definindo ACLs de Acesso

Há dois tipos de ACLs: ACLs de acesso e ACLs default. Uma ACL de acesso é a lista de controle de acesso a um arquivo ou diretório específico. Uma ACL default pode ser associada somente a um diretório; se um arquivo do diretório não tem uma ACL de acesso, usa as regras da ACL default do diretório. ACLs default são opcionais.

As ACLs podem ser configuradas:

  1. Por usuário

  2. Por grupo

  3. Através da máscara de direitos efetivos (effective rights mask)

  4. Para usuários fora do grupo de usuários do arquivo

O utilitário setfacl define ACLs para arquivos e diretórios. Use a opção -m para adicionar ou modificar a ACL de um arquivo ou diretório:

setfacl -m <rules> <files>

As regras (<rules>) deve estar no seguintes formatos. É possível especificar regras múltiplas no mesmo comando se forem separadas por vírgulas.

u:<uid>:<perms>

Defina a ACL de acesso para um usuário. Você pode especificar o nome ou ID do usuário. O usuário pode ser qualquer usuário válido do sistema.

g:<gid>:<perms>

Defina a ACL de acesso para um grupo. Você pode especificar o nome ou ID do grupo. O grupo pode ser qualquer grupo válido do sistema.

m:<perms>

Defina a máscara de direitos efetivos. A máscara é a união de todas as permissões do grupo proprietário e todas as entradas de usuário e grupo.

o:<perms>

Defina a ACL de acesso para usuários fora do grupo do arquivo.

Espaços em branco são ignorados. As permissões (<perms>) devem ser uma combinação dos caracteres r, w e x para ler (read), gravar (write) e executar (execute).

Se um arquivo ou diretório já tiver uma ACL e o comando setfacl é usado, as regras são adicionadas à ACL existente ou a regra existente é modificada.

Por exemplo: para dar permissões de leitura (read) e gravação (write) para o usuário tfox:

setfacl -m u:tfox:rw /project/somefile

Para remover todas as permissões de um usuário, de um grupo ou de outros, use a opção -x e não especifique nenhuma permissão:

setfacl -x <rules> <files>

Por exemplo: para remover todas as permissões do usuário com UID 500:

setfacl -x u:500 /project/somefile