把s放到文件的所属用户组x位置上的话,就是SGID。那么SGID的功能是什么呢?和SUID一样,只是SGID是获得该程序所属用户组的权限。这相SGID有几点需要我们注意:*:SGID主要用在目录上如果用户在此目录下具有w权限的话,若使用者在此目录下建立新文件,则新文件的群组与此目录的群组相同。
案例:[root@localhost ~]# mkdir /opt/dir1
[root@localhost ~]# groupadd hr
[root@localhost ~]# chmod 775 /opt/dir1/
[root@localhost ~]# ll -d /opt/dir1/
drwxrwxr-x. 2 root root 6 Jul 19 15:20 /opt/dir1/
[root@localhost ~]# chown .hr /opt/dir1/
[root@localhost ~]# chmod g+s /opt/dir1/
[root@localhost ~]# ll -d /opt/dir1/
drwxrwsr-x. 2 root root 6 Jul 19 15:20 /opt/dir1/
[root@localhost ~]# touch /opt/dir1/a.txt
-rw-rw-r--. 1 alice hr 0 Jul 19 15:23 /opt/dir1/a.txt
#### Sticky Bit
这个就是针对others来设置的了,和上面两个一样,只是功能不同而已。
SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。
[root@localhost home]# cd /home/
[root@localhost home]# mkdir dir2
[root@localhost home]# chmod 777 dir2/ //确保其他人能操作目录
[root@localhost home]# chmod o+t dir2/ //给予dir1目录Sticky
[root@localhost home]# ll -d dir1/
drwxrwxrwt 2 root root 4096 Jul 13 16:09 dir1/
[alice@localhost dir2]$ touch alice.txt //用户alice在/home/dir2创建一个文件
[jack@localhost dir2]$ touch jack.txt //用户jack在/home/dir2创建一个文件
测试alice删除jack创建的文件,无法删除