Linux第二週學習筆記(13)ide
2.19 特殊權限set_gid學習
特殊權限set_gid:這個權限能夠做用在二進制可執行文件上,還能夠做用在目錄上。特殊權限set_gid權限位是做用在組權限位上,目錄被設置set_gid權限後,任何用戶在此目錄下建立的文件都具備和該目錄所屬的組相同的組ui
----------------------------------------------------------------------------------------------- spa
[root@daizhihong01 ~]# chmod g+s /usr/bin/lsit
[root@daizhihong01 ~]# ls -l /usr/bin/lsclass
-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權限做用在文件上(/usr/bin/ls):touch
加入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權限做用在目錄上的時候,建立子目錄或者文件的時候,所建立的子目錄或者子文件的所屬組和該目錄的所屬組保持一致。