Como posso conceder permissões de grupo proprietárias quando as ACLs POSIX são aplicadas?

2

Estou tentando entender como posso conceder permissões ao grupo proprietário depois que as ACLs POSIX forem aplicadas a um arquivo. Normalmente, eu usaria chmod g+rwx . No entanto, isso não funciona quando uma ACL POSIX foi aplicada via setfacl antes. Não consigo acessar o arquivo com um membro do grupo proprietário posteriormente. A saída de getfacl mostra que a entrada do grupo proprietário não foi alterada, mas a máscara possui.

[vagrant@ice01 tmp]$ umask 077
[vagrant@ice01 tmp]$ touch test
[vagrant@ice01 tmp]$ ls -lisa test
1585067 0 -rw------- 1 vagrant vagrant 0 Sep 23 17:43 test
[vagrant@ice01 tmp]$ setfacl -m u:icer01:rwx test
[vagrant@ice01 tmp]$ chmod g+rwx test
[vagrant@ice01 tmp]$ ls -lisa test
1585067 0 -rw-rwx---+ 1 vagrant vagrant 0 Sep 23 17:43 test
[vagrant@ice01 tmp]$ getfacl test
# file: test
# owner: vagrant
# group: vagrant
user::rw-
user:icer01:rwx
group::---
mask::rwx
other::---

Eu li esta resposta e ela afirma:

If you use the chmod(1) command to change the file group owner permissions on a file with ACL entries, either the file group owner permissions or the ACL mask are changed to the new permissions.

Eu li partes do rascunho de trabalho referenciado do IEEE 1003.1e e ele apóia sua reivindicação.
Mas o mais importante: eu poderia confirmar esse comportamento em uma caixa do CentOS 6 com um sistema de arquivos ext4 (veja acima).

Estou correto em assumir que setfacl é a única opção para conceder acesso ao grupo proprietário uma vez que uma ACL tenha sido aplicada?

Se sim, esse comportamento muda a responsabilidade para o usuário final. No final, você precisa verificar se as ACLs já estão definidas antes de decidir usar chmod ou setfacl .

    
por LuedDev 23.09.2017 / 17:52

1 resposta

3

A resposta à pergunta no título é: setfacl -m group::rwX test A letra maiúscula X significa "somente conceder permissão de execução se outra pessoa já tiver permissão de execução". (Isso significa a mesma coisa para chmod(1) .) Usando o capital X é como você pode fazer um recursivo setfacl ou chmod para conceder permissão sem acabar com arquivos de origem executáveis.

A entrada da ACL group:: corresponde ao grupo atual do arquivo. Se você fosse a alteração do grupo de test para algo diferente de vanguarda, a entrada group:: controlaria o acesso para qualquer que seja o grupo atual.

chmod g+rwx não fez o que você esperava porque, quando há uma ACL, os bits de permissão do grupo Unix em um arquivo ou diretório são aliados à entrada mask:: da ACL. Contanto que haja uma ACL chmod g+FOO será equivalente a setfacl -m mask::FOO e vice-versa.

    
por 16.07.2018 / 17:07

Tags