Se o grupo de /some/dir
for foo
e eu executar
chmod g+s /some/dir
... então qualquer filho de /some/dir
também terá o grupo foo
.
Crucialmente, no entanto, um novo subdiretório /some/dir/subdir
não terá g+s
(embora, como acabamos de afirmar, seu grupo seja foo
).
Como posso garantir que todos os subdiretórios descendentes de /some/dir
não apenas herdam o grupo foo
, mas também herdam a permissão g+s
?
FWIW, meu umask é 002
, o sistema de arquivos é nfs e as opções de acordo com mount
são (rw,relatime,vers=3,rsize=20961,wsize=413177,namlen=255,hard,proto=tcp,timeo=450,retrans=2,sec=sys,mountaddr=xxx.xxx.xxx.xxx,mountvers=3,mountport=333,mountproto=udp,local_lock=none,addr=xxx.xxx.xxx.xxx)
.
UPDATE: Agora eu entendo a origem da minha confusão: algumas vezes alterando o grupo de um diretório (com chgrp
) tem o efeito de desativar um bit de setgid ativado anteriormente. Por exemplo,
% rm -rf /some/dir
% mkdir -p /some/dir
% chmod g+s /some/dir
% ls -ld /some/dir
drwxrwsr-x 2 jones jones 0 Nov 7 07:13 /some/dir
% chgrp foo /some/dir
% ls -ld /some/dir
drwxrwxr-x 2 jones jones 0 Nov 7 07:13 /some/dir
(Observe que o bit setgid termina não definido.)
Como eu disse, isso acontece apenas às vezes . Por exemplo, se eu repetir a mesma seqüência acima, mas eu executar o comando chgrp
em sudo
, o bit setgid
permanecerá definido no final.
Esse efeito de chgrp
nas permissões foi o que me dispensou.