Linux第二周學習筆記(13)
2.19 特殊權限set_gid
特殊權限set_gid:這個權限可以作用在二進制可執行文件上,還可以作用在目錄上。特殊權限set_gid權限位是作用在組權限位上,目錄被設置set_gid權限後,任何用戶在此目錄下創建的文件都具有和該目錄所屬的組相同的組
-----------------------------------------------------------------------------------------------
[root@daizhihong01 ~]# chmod g+s /usr/bin/ls
[root@daizhihong01 ~]# ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
加入set_gid權限以後在組的權限位多了一個小“s” -rwxr-sr-x.,/usr/bin/ls文件變成了黃色,set_gid和set_uid在文件上的時候功能上十分相像的,區別主要在於更換了角色,set_uid是讓普通用戶臨時擁有了所有者的身份,set_gid是普通用戶臨時擁有所屬組的身份。
----------------------------------------------------------------------------------------------
set_gid權限作用在文件上(
加入set_gid權限以後查看普通用戶是否能夠查看/root/目錄的權限:
Root用戶下給/usr/bin/ls文件添加set_gid權限:
[root@daizhihong01 ~]# chmod g+s /usr/bin/ls
[root@daizhihong01 ~]# ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
在普通用戶下是否能夠查看/root/目錄:
[yngndzh1@daizhihong01 ~]$ ls -l /root/
總用量 12
-rwx------ 1 root root 0 1月 30 20:53 123.txt
-rw-------. 1 root root 1418 1月 22 08:19 anaconda-ks.cfg
-rw-r--r-- 1 root root 4358 1月 29 23:24 anaconda-ks.cfg.1
[yngndzh1@daizhihong01 ~]$ ls -ld /root/
dr-xr-x---. 3 root root 203 1月 30 20:53 /root/
加入set_gid權限以後是可以查看/root/目錄的,因為/root/這個目錄對於root組來講也是擁有r-x權限也就是讀和打開的權限,所以設置了set_gid權限以後是能夠查看/root/目錄。
-----------------------------------------------------------------------------------------------
set_gid權限作用在目錄上:
[root@daizhihong01 tmp]# ls -l
總用量 12
drwxr-xr-x 3 root root 35 2月 1 23:29 001
drwxr-xr-x 2 root root 6 2月 3 15:25 002
-rw-r--r-- 1 root root 14 2月 1 23:37 123456.txt
-rw-r--r-- 1 root root 0 2月 1 22:09 123.txt
-rw-r--r-- 1 root root 65 2月 1 23:03 12.txt把set_gid權限添加set_gid權限到002目錄:
[root@daizhihong01 tmp]# chmod g+s 002
[root@daizhihong01 tmp]# ls -l
總用量 12
drwxr-xr-x 3 root root 35 2月 1 23:29 001
drwxr-sr-x 2 root root 6 2月 3 15:25 002
-rw-r--r-- 1 root root 14 2月 1 23:37 123456.txt
-rw-r--r-- 1 root root 0 2月 1 22:09 123.txt
-rw-r--r-- 1 root root 65 2月 1 23:03 12.txt
更改002目錄的所屬組:
[root@daizhihong01 tmp]# ls -l
總用量 12
drwxr-xr-x 3 root root 35 2月 1 23:29 001
drwxr-sr-x 2 root user 6 2月 3 15:25 002
-rw-r--r-- 1 root root 14 2月 1 23:37 123456.txt
-rw-r--r-- 1 root root 0 2月 1 22:09 123.txt
-rw-r--r-- 1 root root 65 2月 1 23:03 12.txt
在002目錄下創建一個文件:
[root@daizhihong01 tmp]# touch 002/daizhihong
[root@daizhihong01 tmp]# ls -l 002/
總用量 0
-rw-r--r-- 1 root user 0 2月 3 15:40 daizhihong
創建/daizhihong/ 文件後所屬組也是user用戶組了,
創建一個子目錄看看用戶組是否是user用戶組:
[root@daizhihong01 tmp]# mkdir 002/yngndzh
[root@daizhihong01 tmp]# ls -l 002/
總用量 0
-rw-r--r-- 1 root user 0 2月 3 15:40 daizhihong
drwxr-sr-x 2 root user 6 2月 3 15:44 yngndzh
可以看到創建的子目錄/yngndzh/用戶組也是user用戶組,並且drwxr-sr-x組權限位也自動加上了set_gid權限。
去掉set_gid權限再來查看是用戶組是否還是user用戶組:
[root@daizhihong01 tmp]# chmod g-s 002
[root@daizhihong01 tmp]# ls -l
總用量 12
drwxr-xr-x 3 root root 35 2月 1 23:29 001
drwxr-xr-x 3 root user 39 2月 3 15:44 002
-rw-r--r-- 1 root root 14 2月 1 23:37 123456.txt
-rw-r--r-- 1 root root 0 2月 1 22:09 123.txt
-rw-r--r-- 1 root root 65 2月 1 23:03 12.txt
[root@daizhihong01 tmp]# touch 002/daizhihong123
[root@daizhihong01 tmp]# ls -l 002
總用量 0
-rw-r--r-- 1 root user 0 2月 3 15:40 daizhihong
-rw-r--r-- 1 root root 0 2月 3 15:51 daizhihong123
drwxr-sr-x 2 root user 6 2月 3 15:44 yngndzh
[root@daizhihong01 tmp]# ls -l 002
總用量 0
-rw-r--r-- 1 root user 0 2月 3 15:40 daizhihong
-rw-r--r-- 1 root root 0 2月 3 15:51 daizhihong123
drwxr-sr-x 2 root user 6 2月 3 15:44 yngndzh
drwxr-xr-x 2 root root 6 2月 3 15:54 yngndzh123
此時新建的文件/daizhihong123/用戶組的權限變成了root,創建/yngndzh23/目錄用戶組的權限也是變成了root。
由此可見給一個目錄設置了set_gid權限以後,在這個目錄下面創建子文件或者子目錄的所屬組會跟著這個父級目錄保持一致。
set_gid權限:不單單可以作用在文件上也可以作用在目錄上,當set_gid權限作用在文件上時和set_uid權限十分相似,set_gid權限可以讓普通用戶臨時擁有所屬組的身份。
set_gid權限作用在目錄上的時候,創建子目錄或者文件的時候,所創建的子目錄或者子文件的所屬組和該目錄的所屬組保持一致。
Linux第二周學習筆記(13)