日期:2014-05-16 浏览次数:20750 次
以前一直不太明白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
?
?
?