Linux文件系统上的特殊权限 SUID, SGID, Sticky(粘之位)
每個人都有自己的夢想,我想把它寫出來。
Linux文件系統上的特殊權限
?
SUID, SGID, Sticky(粘之位)
?
1 文件基本權限
r讀, w寫, x執行
?
user, group, other
?
2 安全上下文
前提:進程有屬主和屬組;文件有屬主和屬組;
(1) 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限;
(2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為發起者所屬的組;
(3) 進程訪問文件時的權限,取決于進程的發起者:
(a) 進程的發起者,同文件的屬主:則應用文件屬主權限;
(b) 進程的發起者,屬于文件的屬組;則應用文件屬組權限;
(c) 應用文件“其它”權限;
?
3 SUID
(1) 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限;
(2) 啟動為進程之后,其進程的屬主為原程序文件的屬主;
??一種提權機制(不安全)
權限設定:
chmod u+s FILE...
chmod u-s FILE...
?
4 SGID
默認情況下,用戶創建文件時,其屬組為此用戶所屬的基本組;
一旦某目錄被設定了SGID,則對此目錄任何一個有寫權限的用戶,在此目錄中創建的文件所屬的組為此目錄自身的屬組;
權限設定:
chmod g+s DIR...
chmod g-s DIR...
?
5 Sticky?粘之位
對于一個多人可寫的目錄,如果設置了sticky,則每個用戶僅能刪除自己的文件;
tmp ?/var/tmp ?下的文件默認有sticky特殊權限
權限設定:
chmod o+t DIR...
chmod o-t DIR...?
SUID SGID STICKY??對應數字表示
000 0
001 1??t
010 2???g
011 3?
100 4????s
101 5
110 6
111 7
?
chmod 4777 /tmp/a.txt
?
幾個權限位映射:
SUID: user, 占據屬主的執行權限位;
s: 屬主原來就擁有x權限,添加后顯示小寫s
S:屬主原來沒有x權限
SGID: group, ?占據group的執行權限位;
s: group擁有x權限
S:group沒有x權限
Sticky: other, 占據ohter的執行權限位;
t: other擁有x權限
T:other沒有x權限
?
?
SUID:運行某程序時,相應進程的屬主是程序文件的自身的屬主,而不是啟動者。2755
chmod u+s FILE u-s
如果FILE本身原來有執行權限,則SUID顯示為s;否則顯示S;
SGID:運行某程序時,相應進程的屬組是程序文件的自身的屬組,而不是啟動者所屬的基本組。3755
chmod g+s FILE
g-s FILE
父目錄擁有SGID權限后,其子目錄下任何用戶創建的文件屬組繼承父目錄屬組(不再以用戶的基本組做為文件的屬組)。屬組內用戶可以編輯組內其他用戶創建的文件。附加組。
sticky:公共目錄,每個用戶都可以創建文件,刪除自己的文件,但不能刪除別人的文件。 1755
chmod o+t FILE o-t?
轉載于:https://blog.51cto.com/12050214/1923884
總結
以上是生活随笔為你收集整理的Linux文件系统上的特殊权限 SUID, SGID, Sticky(粘之位)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】SpringBoot入门学习
- 下一篇: MySQL具体解释(21)-------