首页 > 代码库 > 特殊权限之sgid
特殊权限之sgid
1、查看目录信息
[root@wy ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月 22 2012 /usr/bin/passwd
解释说明:
这个权限用数字表示 4755,而s的权限取决于它在哪里,在这它处于u的位置,也就是4
2、设置sgid(让普通用户拥有所属组的权限)
[root@wy ~]# ls -l /bin/ls
-rwxr-xr-x 1 root root 117024 11月 22 2013 /bin/ls
[root@wy ~]# chmod g+s /bin/ls
[root@wy ~]# ls -l /bin/ls
-rwxr-sr-x 1 root root 117024 11月 22 2013 /bin/ls
3、举例
[root@wy ~]# chmod g+s /bin/ls
[root@wy ~]# ls -l /bin/ls
-rwxr-sr-x 1 root root 117024 11月 22 2013 /bin/ls
[root@wy ~]# su - wyy
[wyy@wy ~]$ ls /root
anaconda-ks.cfg install.log install.log.syslog
注:它和suid是类似的,它们可以让普通用户拥有所属主、所属组的临时权限;但是sgid不仅仅作用于二进制文件,而且还可以作用于目录。
4、举例(作用于目录)
[root@wy ~]# cd /tmp
[root@wy tmp]# mkdir 222
[root@wy tmp]# chmod 777 222
#切换到普通用户下
[root@wy tmp]# su - wyy
[wyy@wy tmp]$ cd /tmp/222
[wyy@wy 222]$ mkdir dir
[wyy@wy 222]$ touch file
[wyy@wy 222]$ ls -l
总用量 4
drwxrwxr-x 2 wyy wyy 4096 9月 20 22:34 dir
-rw-rw-r-- 1 wyy wyy 0 9月 20 22:34 file
#退出来,给222这个目录增加特殊权限
[wyy@wy 222]$ logout
[root@wy tmp]# chmod g+s 222
#再次切换到普通用户
[root@wy tmp]# su - wyy
[wyy@wy ~]$ cd /tmp/222
[wyy@wy 222]$ mkdir dir2
[wyy@wy 222]$ touch file2
[wyy@wy 222]$ ls -l
总用量 8
drwxrwxr-x 2 wyy wyy 4096 9月 20 22:34 dir
drwxrwsr-x 2 wyy root 4096 9月 20 22:39 dir2
-rw-rw-r-- 1 wyy wyy 0 9月 20 22:34 file
-rw-rw-r-- 1 wyy root 0 9月 20 22:39 file2
解释说明:
如果把set_gid作用在目录上,会形成这样的效果,不管是谁创建子目录或者文件在这个目录下,那么创建的子目录或文件会拥有跟咱们这个增加set_gid权限的这个目录的所属组保持一致。
s在所属组这个位置上,用数字表示就是2。
本文出自 “linux” 博客,转载请与作者联系!
特殊权限之sgid