Permissão de grupo efetiva de um diretório - setgid ineficaz

2

Eu tenho este diretório /srv que, por conveniência, eu gostaria que os membros do grupo wheel tivessem acesso de gravação, e para quaisquer arquivos e diretórios criados para herdar transitivamente as permissões.

Depois de sudo chgrp wheel /srv && sudo chmod g+ws /srv , no entanto, ainda não consigo criar diretórios e arquivos em /srv :

$ mkdir /srv/mantis
mkdir: cannot create directory '/srv/mantis': Permission denied

Examinar a ACL em /srv mostra que a permissão de grupo efetiva é apenas r-x , por algum motivo:

$ getfacl /srv
getfacl: Removing leading '/' from absolute path names
# file: srv
# owner: root
# group: wheel
# flags: -s-
user::rwx
user:webmaster:rwx
group::r-x
mask::rwx
other::r-x

Alguma razão pela qual isso acontece? Será que, de alguma forma, quando adicionei o acesso adicional para o usuário webmaster (muito antes da tentativa setgid ), acidentalmente adulterei o grupo ACL?

    
por michel-slm 13.02.2014 / 05:01

1 resposta

1

Ter uma máscara definida por setfacl cause chgrp não reflete as alterações. Você pode executar setfacl -m g::rwx /srv para definir a permissão do grupo.

Caso contrário, se você não precisar da ACL avançada, poderá remover todas as regras por setfacl -b /srvand e, em seguida, executar novamente o sudo chmod g+ws /srv .

Antes de editar

Dos resultados de getfacl , parece que o comando sudo chmod g+ws /srv não estava funcionando. Aparentemente você está executando sudo chgrp wheel /srv && sudo chmod g+ws /srv como um único comando. Se sudo chgrp wheel /srv falhar (com um código de saída diferente de zero por qualquer motivo), o conector && simplesmente ignorará qualquer coisa depois, portanto, sudo chmod g+ws /srv não será executado.

Para ilustrar, você pode executar cat NoSuchFile && echo "This message will be printed" . O comando echo é ignorado neste exemplo.

Você pode tentar executar sudo chgrp wheel /srv e sudo chmod g+ws /srv separadamente e anotar todas as mensagens. Como alternativa, você pode tentar sudo chmod 2775 /srv , que deve definir a permissão corretamente.

    
por 25.02.2014 / 05:49