Sim, a ACL: s permite definir livremente diferentes direitos para diferentes usuários ou grupos. IIRC as permissões de grupo habituais limitam o conjunto de permissões que grupos e usuários podem ter através de ACL: s (mostrado como mask
em getfacl
), mas setfacl
deve lidar com isso se você adicionar permissões.
Mas, em alguns casos, você precisa perguntar se o conjunto de permissões faz algum sentido.
I have 3 users with these desired permissions....
- user1 rwx
- user2 rw_
- user3 r__
Você poderia implementar isso com ACL: s ou (aproximadamente) com as permissões habituais do Unix, tornando user1 o proprietário do arquivo, user2 um membro do grupo e permitindo que outras pessoas, incluindo user3, tenham acesso de leitura. Embora então todos (com acesso ao diretório) também tivessem acesso de leitura.
Vamos considerar o significado dessas permissões. Você tem um usuário que pode ler e outro que pode ler e escrever. Isso é completamente normal. Nenhum deles tem acesso para executar o arquivo, mas um terceiro usuário também deve fazer isso.
Isso não faz muito sentido em minha mente. Qualquer usuário que possa ler o arquivo, pode fazer uma cópia (*), marcá-lo como executável e executá-lo, sem acesso para executar o arquivo original. A única situação que faz sentido ter acesso de execução para alguns usuários, mas não para outros, é quando o executável tem privilégios elevados através do suid. Mas se fosse esse o caso, você não deveria ter outros usuários com acesso de gravação ao arquivo.
No mesmo sentido, user4 com -wx
e user5 com --x
não faz sentido para mim. O acesso somente de gravação pode fazer sentido se houver a possibilidade de permitir somente anexos , mas o sistema de permissões não é tão refinado.
(a menos que não seja possível escrever em qualquer lugar)
No entanto, se removermos o requisito estranho para o x
bit, ficamos com um arquivo em que user1 e user2 devem ter acesso de gravação, e user3 deve ter acesso de leitura. Um escritor e vários leitores seriam fáceis com o modelo tradicional, mas esse caso precisaria de truques para combinar as permissões de arquivo com as permissões do diretório contido. Felizmente, em muitos casos, um usuário com mais permissões é suficiente.
Sem o requisito no bit de execução, isso parece um caso para usar o ACL: s. Mas com isso, este exemplo particular parece bastante complicado para mim.