如果组/some/dir
是foo
,我跑
chmod g+s /some/dir
Run Code Online (Sandbox Code Playgroud)
...那么任何孩子/some/dir
也会有 group foo
。
最重要的是,然而,一个新的子目录/some/dir/subdir
将不会有g+s
(虽然,像刚才所说的那样,其组会foo
)。
如何确保所有后代子目录/some/dir
不仅继承 group 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,m??ountaddr=xxx.xxx.xxx??.xxx,mountvers=3,mou??ntport=333,mountprot??o=udp,local_lock=non??e,addr=xxx.xxx.xxx.x??xx)
.
更新: 我现在明白我的困惑的根源:有时更改目录的组(使用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
Run Code Online (Sandbox Code Playgroud)
(请注意 setgid 位最终未设置。)
正如我所说,这只是偶尔发生。例如,如果我重复上述相同的序列,但我在chgrp
下运行命令sudo
,则该setgid
位在最后保持设置。
这种chgrp
对权限的影响让我失望。
归档时间: |
|
查看次数: |
1969 次 |
最近记录: |