麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > CentOS > 正文

CentOS系統特殊權限SUID SGID STICKY講解

2020-07-08 12:46:33
字體:
來源:轉載
供稿:網友

1.什么是特殊權限?

我們知道權限有r,w,x。其實除了這三個,還有特殊權限。比如:

[root@localhost ~]# ls -l /usr/bin/passwd

                                     -rwsr-xr-x 1 root root 22960 Jul 17  2006 /usr/bin/passwd

可以發現權限位,有個s。特殊權限有如下3種:

SUID

SGID

STICKY

2.關于suid

我們知道linux有一個進程安全模型的概念,比如Tom執行passwd來進行修改密碼:

第一,注意到passwd的權限為:

[hadoop@localhost ~]$ ls -l `which passwd`

-rwsr-xr-x 1 root root 22960 Jul 17  2006 /usr/bin/passwd

第二,注意到Tom不是root用戶,也不屬于root組。

我們先不考慮什么特殊權限s。很顯然,此時Tom只能以other(r-x)來運行passwd。Tom可以發起一個進程,這個進程是passwd,想修改自己的密碼。

第三,用戶Tom執行完passwd修改密碼,其實就是保存至/etc/shadow中,下面我們看看/etc/shadow文件的權限情況。

[hadoop@localhost ~]$ ls -l /etc/shadow

-r-------- 1 root root 2713 Jun 13 16:34 /etc/shadow

[hadoop@localhost ~]$ 

那個屬于Tom的修改密碼的進程應該要去修改/etc/shadow文件,但是根據上面的/etc/shadow的權限,除了root用戶外,誰都不可以修改的!也就是說,根據進程安全模型,普通用戶根本無法修改密碼!但事實上,是可以修改的。原因就在于那個特殊權限s。

也就是說,suid表示運行某程序時,相應進程的屬主是程序文件自身的屬主,而不是啟動者。也就是說普通用戶去執行passwd修改密碼,其實是發起了一個進程,這個進程的屬主是root用戶,那么很顯然就可以修改shadow這個影子文件了。

3.關于sgid

根據suid的理解,可知sgid表示運行某程序時,相應進程的屬組是程序文件自身的屬組,而不是啟動者的基本組。可以舉例分析:

第一:root用戶創建了一個項目目錄

[root@localhost /]# 

[root@localhost /]# ls -ld /project/cma

drwxrwxr-x 2 root develop 4096 Jun 14 22:14 /project/cma

第二:項目組成員java01,java02,...均屬于develop組(他們的附加組),也就是說他們對/project/cma具有rwx權限。

[java02@localhost cma]$ ls -l

total 8

-rw-rw-r-- 1 java01 java01 0 Jun 14 22:24 01.java

-rw-rw-r-- 1 java02 java02 0 Jun 14 22:25 02.java

上面看到他們可以在/project/cma中創建文件,根據以前的理論:【誰創建的文件,文件的屬主就是誰,屬組就是他的基本組】,上面的沒有問題。但是,我們希望這些項目組成員之間可以相互編輯其他人的文件,該如何做呢?

第三:由于項目組成員java02,并不屬于java01的私有組,顯然java02只對01.java具有r--權限,不可以編輯。此時我們可以使用sgid,來改變默認的這種行為~

[root@localhost cma]# pwd

/project/cma

[root@localhost cma]# chmod -R g+s /project/cma 

[root@localhost cma]# ls -ld

drwxrwsr-x 2 root develop 4096 Jun 14 22:25 .

[root@localhost cma]# 

注意了,出現了特殊權限位s,但是有時候可能會顯示S。【如果是s說明這個權限位上以前是具有x權限的】

第四:利用sgid后,以后我們的項目組成員便可以在此目錄下編輯其他成員的文件了。

[java02@localhost cma]$ ls -l

total 16

-rw-rwSr-- 1 java01 java01  0 Jun 14 22:24 01.java

-rw-rw-r-- 1 java01 develop 0 Jun 14 22:33 01.txt

-rw-rwSr-- 1 java02 java02  0 Jun 14 22:25 02.java

-rw-rw-r-- 1 java02 develop 0 Jun 14 22:33 02.txt

[java02@localhost cma]$ 

也就是說利用sgid可以幫我們達到這樣的目的:

在目錄下創建的文件的屬組不在是用戶的基本組,而是目錄的屬組。

4.關于sticky

此時此刻,我們的項目組成員已經可以相互編輯/project/cma下面的文件了,但是有個要求:我們希望用戶只能刪除自己的文件,而不可以刪除別人的文件。這就要使用sticky了。

[root@localhost cma]# chmod -R o+t /project/cma

[java01@localhost cma]$ id

uid=5016(java01) gid=5016(java01) groups=5016(java01),5018(develop) context=root:system_r:unconfined_t:SystemLow-SystemHigh

[java01@localhost cma]$ rm 02.txt

rm: cannot remove `02.txt': Operation not permitted

5.串聯

還記得umask嗎,umask其實就是一個XYZW,四位數,其中X表示的就是suid/sgid/striky。

chmod xyzw file,其實同理。

000 nothing

001 only striky

010 only sgid

100 only suid

......

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品无码久久久久 | omofun 动漫在线观看 | 国产精品视频免费在线观看 | 九一成人 | 99亚洲国产精品 | 午夜精品视频在线 | 久久综合九色 | 二区视频 | xxxxhd73国产 | 日韩av电影免费看 | wwwcom国产| 高清国产福利 | 在线2区 | 亚洲精品成人av在线 | 香蕉秀 | 日韩一级电影在线观看 | 蜜桃传媒视频麻豆第一区免费观看 | 国产69精品久久久久久野外 | 久久国产精品小视频 | 国产一区精品在线观看 | 欧美亚洲免费 | 精品国产久 | 久久毛片免费观看 | 亚洲国产超高清a毛毛片 | 69性欧美高清影院 | 91av在线免费 | 久久亚洲精品国产一区 | 久久国产精品二国产精品 | 毛片视频播放 | 日本中文高清 | 亚洲日本韩国在线观看 | 日美黄色片 | 国产一区二区免费 | 天天透天天狠天天爱综合97 | 九九热精品视频在线 | 久久亚洲春色中文字幕久久 | 在线成人www免费观看视频 | 日本在线不卡一区二区三区 | 日本a∨精品中文字幕在线 被啪羞羞视频在线观看 | 欧美精品一区二区性色 | 91小视频在线观看免费版高清 |