グループがある場合は/some/dir
実行foo
します。
chmod g+s /some/dir
...これで、すべての子供たちもグループに/some/dir
なりますfoo
。
しかし、決定的に新しいサブディレクトリ/some/dir/subdir
はいいえg+s
(ただし、先ほど述べたように、そのグループはです)foo
。
すべてのサブディレクトリがグループ/some/dir
だけでなくfoo
権限もg+s
継承するようにするにはどうすればよいですか?
FWIW、私のumaskは002
、ファイルシステムはnfsで、オプションmount
は(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)
。
修正する: 私は今混乱の原因を理解しています。時々ディレクトリグループを変更(使用chgrp
)すると、以前に有効になったsetgidビットが無効になるという効果があります。例えば
% 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
(setgidビットは最終的に設定されなくなります。)
私が言ったように、これはただ起こります時々。例えば、上記と同じ順序を繰り返すが、chgrp
下で命令を実行すると、ビットはsudo
最後setgid
にセットされたままである。
権限へのこの影響chgrp
に失望しました。
答え1
/some/dir
setgid ビットがセットされると、新しいサブディレクトリがする新しく作成されたすべての子孫が適切なグループとsetgidビットを持つように継承します。
setgidビットはを使用して削除できますchgrp
。POSIX と
適切な権限を持つプロセスで chgrp を呼び出さない限り、通常のファイルの set-user-ID ビットと set-group-ID ビットが正常に完了したら、別のファイルの set-user-ID ビットと set-group-ID ビットをクリアする必要があります。します。タイプが削除されることがあります。