Esse é um tópico amplo e um pouco demais para abordar aqui. Vou encaminhá-lo para o whitepaper POSIX Access Control Lists no Linux, elaborado por Andreas Grünbacher, do SuSE Labs. Ele faz um bom trabalho ao abordar o assunto e analisá-lo para que você entenda como as ACLs funcionam.
Seu exemplo
Agora vamos dar uma olhada no seu exemplo e detalhá-lo.
- grupo (vendas)
- membros do grupo de vendas (bob, joe)
Agora vamos quebrar as permissões no arquivo /home/foo/docs/foo.txt
. As ACLs também encapsulam as mesmas permissões com as quais a maioria das pessoas deve estar familiarizada no Unix, principalmente o Usuário, Grupo e Outros bits. Então, vamos retirá-los primeiro.
user:: r--
group::r--
other::---
Eles normalmente se pareceriam com isso em um ls -l
:
$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt
Você pode ver quem possui o arquivo e qual é o grupo com estas linhas da ACL:
# owner: jane
# group: executives
Então agora vamos ao âmago da questão das ACLs:
user:bob:rw-
user:joe:rwx
group:sales:rwx
Isso está mostrando que o usuário bob
possui rw
, enquanto o usuário joe
possui rwx
. Há também um grupo que também tem rwx
similar ao joe. Essas permissões são como se a coluna do usuário em nossa ls -l
saída tivesse 3 proprietários (jane, bob e joe) e 2 grupos (executivos e vendas). Não há outra distinção além de serem ACLs.
Por fim, a mask
linha:
mask::rwx
Nesse caso, não estamos mascarando nada, está bem aberto. Portanto, se os usuários bob e joe tiverem estas linhas:
user:bob:rw-
user:joe:rwx
Então essas são suas permissões efetivas. Se a máscara fosse assim:
mask::r-x
Então, suas permissões efetivas seriam assim:
user:bob:rw- # effective:r--
user:joe:rwx # effective:r-x
Esse é um mecanismo poderoso para restringir as permissões concedidas de maneira geral.
NOTA: O proprietário do arquivo e outras permissões não são afetadas pela máscara de direitos efetivos; todas as outras entradas são! Portanto, com relação à máscara, as permissões da ACL são cidadãos de segunda classe quando comparadas às permissões tradicionais do Unix.
Referências