Linux第二週學習筆記(13)

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_gidset_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.txtset_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權限做用在目錄上的時候,建立子目錄或者文件的時候,所建立的子目錄或者子文件的所屬組和該目錄的所屬組保持一致。

相關文章
相關標籤/搜索