首页 > 代码库 > 特殊权限之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