Como garantir que todos os novos subdiretórios (e subdiretórios, etc.) tenham g + s?

1

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,m‌​ountaddr=xxx.xxx.xxx‌​.xxx,mountvers=3,mou‌​ntport=333,mountprot‌​o=udp,local_lock=non‌​e,addr=xxx.xxx.xxx.x‌​xx) .

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.

    
por kjo 01.11.2017 / 13:22

1 resposta

5

Uma vez que /some/dir tenha o bit setgid, novos subdiretórios do herdarão, então todos os descendentes recém-criados terão o grupo apropriado e o bit setgid.

Usar chgrp pode diminuir o bit de setgid. POSIX diz

Unless chgrp is invoked by a process with appropriate privileges, the set-user-ID and set-group-ID bits of a regular file shall be cleared upon successful completion; the set-user-ID and set-group-ID bits of other file types may be cleared.

    
por 01.11.2017 / 13:43