Linux文件系統的特殊權限

日期: 2015年08月30日


進程的安全上下文

(1)、用戶是否能夠把某個可執行程序文件啓動爲進程,取決於用戶對程序文件是否擁有執行權限

(2)、程序啓動爲進程後,此進程的屬主爲當前用戶,也即進程的發起者;進程所屬的組,爲發起者的基本組

(3)、進程擁有的訪問權限,取決於屬主的訪問權限

(a) 進程的屬主,同文件屬主,則應用文件屬主權限

(b) 進程的屬主,屬於文件的屬組,則應用文件屬組的權限

(c) 否則應用其他權限


SUID

展示於文件屬主的執行權限位,s表示屬主原本擁有x權限,S表示屬主原本無x權限

功用:對於一個可執行文件來講,任何用戶運行此程序爲進程之後,其屬主不再是進程的發起者,而是程序文件自己的屬主,這種機制即爲SUID


權限設定:

chmod u+s FILE...

chmod u-s FILE...


例如:用戶需要修改密碼,輸入passwd命令之後,則運行/usr/bin/passwd文件,該文件的屬主、屬組都是root,其他用戶只有執行權限。


而運行該命令修改密碼後它會更新/etc/passwd和/etc/shadow文件,而這兩個文件只有root用戶才具修改限限。


所以,/usr/bin/passwd文件的SUID權限會讓該程序運行後就具有root的權限,那麼以root的身份就能修改,

/etc/passwd、/etc/shadow這兩個文件了。



SGID

展示於文件屬組的執行權限位

默認情況下,用戶創建文件時,其屬組爲此用戶所屬的基本組;

一旦某目錄被設定了SGID權限,則對此目錄擁有寫權限的用戶在此目錄中創建文件,這些所屬的組均爲該目錄的屬組。


權限設定:

chmod g+s FILE...

chmod g-s FILE...


例如:有一羣人需要在某個目錄協同工作時,可爲目錄設置SGID權限。這樣在該目錄中創建的文件屬組都是該目錄的屬組,再把該組添加爲用戶的附加組,對組分配相應的權限。在該目錄下大家就可協同工作了。


在一個公共的目錄,給目錄的屬組分配rwx權限,這樣只要隸屬於該組的用戶都可以在該目錄內創建文件,而創建的文件或目錄大家都有權打開和修改。爲了防止用戶誤操作,限制用戶只能刪除自己創建的文件,這就是特殊權限Sticky的作用。



Sticky

展示於其他用戶的執行權限位,小寫字母t

對一個公共目錄,此權限用於限制每個用戶只能刪除自己創建的文件


權限設定:

chmod o+t FILE...

chmod o-t FILE...


特殊權限的二進制數表示方式

SUID, SGID, STICKY

000

0

001

1

STICKY

010

2

SGID

011

3

SGID+STICKY

100

4

SUID

101

5

SUID+STICKY

110

6

SUID+SGID

111

7

SUID+SGID+STICKY

 

 

特殊權限也可以跟文件正常的權限一起設置:

chmod 4777 FILE

chmod 2755 DIR

chmod 3755 DIR

 

 

實例:

///home下創建個pub目錄,爲該目錄同時設置SUIDSticky權限

wKioL1XlDFiw7Cn7AADbX7OsQpU780.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章