濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > CentOS系統(tǒng)特殊權(quán)限SUID SGID STICKY講解

CentOS系統(tǒng)特殊權(quán)限SUID SGID STICKY講解

熱門標(biāo)簽:太原外呼電銷機(jī)器人軟件 怎樣在北斗地圖標(biāo)注商戶 廣州點(diǎn)撥外呼系統(tǒng)多少錢一個(gè)月 400外呼系統(tǒng) 配置要求 仙桃外呼系統(tǒng) 貴港便宜外呼系統(tǒng)報(bào)價(jià) 日立hgp外呼線路圖 辦理400電話的好處都有哪些 電話外呼系統(tǒng)解決方案

1.什么是特殊權(quán)限?

我們知道權(quán)限有r,w,x。其實(shí)除了這三個(gè),還有特殊權(quán)限。比如:

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

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

可以發(fā)現(xiàn)權(quán)限位,有個(gè)s。特殊權(quán)限有如下3種:

SUID

SGID

STICKY

2.關(guān)于suid

我們知道linux有一個(gè)進(jìn)程安全模型的概念,比如Tom執(zhí)行passwd來進(jìn)行修改密碼:

第一,注意到passwd的權(quán)限為:

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

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

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

我們先不考慮什么特殊權(quán)限s。很顯然,此時(shí)Tom只能以other(r-x)來運(yùn)行passwd。Tom可以發(fā)起一個(gè)進(jìn)程,這個(gè)進(jìn)程是passwd,想修改自己的密碼。

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

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

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

[hadoop@localhost ~]$ 

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

也就是說,suid表示運(yùn)行某程序時(shí),相應(yīng)進(jìn)程的屬主是程序文件自身的屬主,而不是啟動(dòng)者。也就是說普通用戶去執(zhí)行passwd修改密碼,其實(shí)是發(fā)起了一個(gè)進(jìn)程,這個(gè)進(jìn)程的屬主是root用戶,那么很顯然就可以修改shadow這個(gè)影子文件了。

3.關(guān)于sgid

根據(jù)suid的理解,可知sgid表示運(yùn)行某程序時(shí),相應(yīng)進(jìn)程的屬組是程序文件自身的屬組,而不是啟動(dòng)者的基本組??梢耘e例分析:

第一:root用戶創(chuàng)建了一個(gè)項(xiàng)目目錄

[root@localhost /]# 

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

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

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

[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中創(chuàng)建文件,根據(jù)以前的理論:【誰創(chuàng)建的文件,文件的屬主就是誰,屬組就是他的基本組】,上面的沒有問題。但是,我們希望這些項(xiàng)目組成員之間可以相互編輯其他人的文件,該如何做呢?

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

[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]# 

注意了,出現(xiàn)了特殊權(quán)限位s,但是有時(shí)候可能會(huì)顯示S。【如果是s說明這個(gè)權(quán)限位上以前是具有x權(quán)限的】

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

[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可以幫我們達(dá)到這樣的目的:

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

4.關(guān)于sticky

此時(shí)此刻,我們的項(xiàng)目組成員已經(jīng)可以相互編輯/project/cma下面的文件了,但是有個(gè)要求:我們希望用戶只能刪除自己的文件,而不可以刪除別人的文件。這就要使用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.串聯(lián)

還記得umask嗎,umask其實(shí)就是一個(gè)XYZW,四位數(shù),其中X表示的就是suid/sgid/striky。

chmod xyzw file,其實(shí)同理。

000 nothing

001 only striky

010 only sgid

100 only suid

......

標(biāo)簽:廣安 商丘 六盤水 河源 雅安 青島 公主嶺 麗水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CentOS系統(tǒng)特殊權(quán)限SUID SGID STICKY講解》,本文關(guān)鍵詞  CentOS,系統(tǒng),特殊,權(quán)限,SUID,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《CentOS系統(tǒng)特殊權(quán)限SUID SGID STICKY講解》相關(guān)的同類信息!
  • 本頁收集關(guān)于CentOS系統(tǒng)特殊權(quán)限SUID SGID STICKY講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    安溪县| 昔阳县| 迭部县| 玉田县| 安西县| 军事| 康乐县| 林芝县| 巴青县| 琼海市| 满洲里市| 哈巴河县| 本溪市| 邵阳市| 曲沃县| 台东市| 郴州市| 盈江县| 穆棱市| 高青县| 金溪县| 博兴县| 合山市| 栾川县| 进贤县| 通化市| 浑源县| 临猗县| 南投县| 沙坪坝区| 湖州市| 尚义县| 延长县| 冷水江市| 镇平县| 奇台县| 沂南县| 犍为县| 吴堡县| 唐海县| 乌拉特前旗|