Sim, as ACL: s permitem definir livremente direitos diferentes para diferentes usuários ou grupos. As permissões de grupo usuais do IIRC limitam o conjunto de permissões que grupos e usuários podem ter através da ACL: s (mostrada como mask
em getfacl
), mas setfacl
devem lidar com isso se você adicionar permissões.
Mas, em alguns casos, você precisa perguntar se o conjunto de permissões faz algum sentido.
Eu tenho 3 usuários com essas permissões desejadas ....
- user1 rwx
- user2 rw_
- user3 r__
Você pode implementar isso com ACL: s ou (aproximadamente) com as permissões usuais do Unix, tornando o usuário1 o proprietário do arquivo, o usuário2 um membro do grupo e permitindo que outros, incluindo o usuário3, tenham acesso de leitura. Embora todos (com acesso ao diretório) também tenham 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 usual. 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 em que faz sentido ter acesso de execução para alguns usuários, mas não para outros, é quando o executável possui privilégios elevados através do suid. Mas, se esse fosse o caso, você também não deveria ter outros usuários com acesso de gravação ao arquivo.
No mesmo sentido, user4 with -wx
e user5 with --x
não fazem sentido para mim. O acesso somente de gravação pode fazer sentido se houver a possibilidade de permitir anexos apenas , mas o sistema de permissão não é tão refinado.
(* a menos que eles não possam escrever em nenhum lugar)
No entanto, se removermos o requisito estranho do x
bit, ficaremos com um arquivo em que usuário1 e usuário2 devem ter acesso de gravação e usuário3 deve ter acesso de leitura. Um escritor e vários leitores seriam fáceis com o modelo tradicional, mas neste caso seriam necessários truques para combinar as permissões de arquivo com as permissões do diretório que o contém. 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 ACL: s. Mas, com isso, esse exemplo em particular parece bastante complicado para mim.