1. 程式人生 > >Linux第二周學習筆記(13)

Linux第二周學習筆記(13)

spa dai touch 添加 屬組 oot lin str 就是

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_gidset_uid在文件上的時候功能上十分相像的,區別主要在於更換了角色,set_uid是讓普通用戶臨時擁有了所有者的身份,set_gid是普通用戶臨時擁有所屬組的身份。

----------------------------------------------------------------------------------------------

set_gid權限作用在文件上(

/usr/bin/ls):

加入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權限作用在目錄上的時候,創建子目錄或者文件的時候,所創建的子目錄或者子文件的所屬組和該目錄的所屬組保持一致。


Linux第二周學習筆記(13)