日期:2014-05-16  浏览次数:20700 次

Unix/Linux目录权限: rwx 之外的 s

以前一直不太明白Linux的目录权限当中的 s,今天终于明白了。

例:
名为 files 的目录,所有者为 user1,user1的所在组为 group1,group1对files有写的权限
执行 ls -la 结果如下:
drwxrwxr-x 4 user1 group1 4096 Aug 31 19:17 files

现在想把 group1 改成 apache,于是执行:
chown -R user1:apache files

执行 ls -la 结果如下:
drwxrwxr-x 4 user1 apache 4096 Aug 31 19:17 files

这样有个问题,用user1登陆,在 files 下生成新文件test
ls -a files/test 的结果:
drwxrwxr-x 4 user1 group1 4096 Aug 31 19:17 test

新文件的组还是 group1。

现在想做的是,用户在files下生成新文件的时候,文件的所在组还是用apache。这时候,·s· 派上用场了。

执行以下命令:
chmod -R g+s files

用user1登陆,在 files 下生成新文件 test2
ls -a files/test2 的结果:
drwxrwxr-x 4 user1 apache 4096 Aug 31 19:17 test 2

OK了,这就是想要的结果。

如果对目录下的文件设置默认用户id,只需
chmod -R u+s files

?

?

?