LINUX--特殊权限SUID,SGID,Sticky
SUID:?? 運行某程序時,相應進程的屬主是程序文件自身的屬主,而不是啟動者
SGID:?? 運行某程序時,相應進程的屬組是程序文件自身的屬組,而不說啟動者的屬組
Sticky:??? 在一個公共目錄,每個人都可以創建文件,刪除自己的文件,但不能刪除別人 文件
什么意思?這些解釋是不是云里霧繞的,還是用例子來解釋吧,通俗易懂。
(一)
SUID:?? 比如,古代的時候,公主嫁給了平民,那么公主的很多權利就沒有了,就不能像小時候那樣隨意的進宮玩耍了。怎么辦?沒關系,如果有了SUID之后,公主雖然嫁給了平民,但是她的權利不變,進宮或者行使其他的權利的時候,人們還是認她公主的身份,而不是她丈夫平民的身份。這就是SUID的作用。保持原來的身份不變。
????????? 一個文件,權限默認是:
?? ? ? ?? -rwxr-xr-x ? root root ?? /bin/cat
?? ? ? ? (1) #?? cat?? /etc/gshadow???? //用root用戶查看/etc/gshadow可以查看!但是其他用戶就沒這么好的福氣了。/etc/gshadow可不是那么好看的,只有管理員能查看。
?
?? ? ? ?? (2) $ ? cat? /etc/gshadow ? ? //運行這個命令之后,肯定是拒絕,誰讓你是普通用戶呢。?
???? 但是,加上下面這條命令:
??????? ? (3) #? chmod u+s??? /bin/cat?????????????? //意思是給cat這個命令加上SUID.
????????????????????-rwsr-xr-x. 1 root root? /bin/cat?? //rws,看見沒有,變成小寫s.如果原來就有執行權限,就是小寫s,原來沒有執行權限,會變成大寫的S.
????然后:
????????? (4) $?? cat?? /etc/gshadow?????????????? //現在運行這個命令,就能查看了。因為雖然是普通用戶進行查看的,但是因為cat這個命令加上了suid ,所以/etc/gshadow還是認為是root用戶進行查看,所以就給看了。suid的作用是,不管是那個用戶進行cat,cat在運行時都貼著它本來自己的標簽--root屬主和root屬組。
(二)
SGID
比如,root 是皇帝,其他的3個普通用戶是大臣是和珅,劉墉,紀曉嵐。
???? #?? useradd?? 和珅???????????? //和珅誕生了
???? #??? useradd 劉墉?????????????? //劉墉誕生了
???? #??? useradd? 紀曉嵐????????? //紀曉嵐誕生了
???? #?? mkdir /tmp/朝廷????????????????//朝廷是一個文件夾,請見諒。
???? # ? chmod g+w??? /tmp/朝廷????? //讓/tmp/朝廷這個文件夾對組內成員有寫的權限
????#??? groupadd?? 一品大臣 ??? ????????????????//建一個組,名字就叫一品大臣
?? #?? chown? -R?? :一品大臣???? /tmp/朝廷????? //讓/tmp/朝廷 這個文件夾的屬組為一品大臣
?? #? usermod -a -G? 一品大臣?? 和珅???????? //把和珅加入一品大臣這個附加組,下面相同。
?? #? usermod -a -G? 一品大臣?? 劉墉
?? #? usermod -a -G? 一品大臣?? 紀曉嵐
??? 現在,和珅寫一個奏折,劉墉寫一個奏折,紀曉嵐寫一個奏折,3個人寫的奏折能互相瀏覽,更能互相更改,怎么實現,請看:
????????????a.?? 和珅寫奏折
?????????????? $??? cd /tmp/朝廷
?????????????? $????touch 和珅.txt
????????????????-rw-rw-r--. ? 和珅 ? 和珅 ?????? 和珅.txt????? //默認其他人有瀏覽的權限,屬主和屬組都是本人,因此默認他們只能瀏覽其他人的權限,不能更改其他人寫的內容。
??????????? b.?? 劉墉寫奏折
????????????????$????cd? /tmp/朝廷
????????????????$ ?? touch 劉墉.txt
????????????????-rw-rw-r--.?? 劉墉 ?? 劉墉 ? ? ? 劉墉.txt????? //同上
????????????c.?? 紀曉嵐寫奏折
????????????????$????cd /tmp/朝廷
????????????????$ ?? touch 紀曉嵐.txt
????????????????-rw-rw-r--.?? 紀曉嵐?? 紀曉嵐????? 紀曉嵐.txt????? //同上
? 經過以上步驟,每個人都能在/tmp/朝廷里面創建文件夾,但是,不能修改其他人的文件夾,怎么辦?
??? ????? 答:
????????????????#? chmod g+s?? /tmp/朝廷????????????????????//讓朝廷這個文件夾有SGID的權限
然后,紀曉嵐再創建一個文件夾:
?????? $??? cd? /tmp/朝廷
????????$? touch 紀曉嵐02.txt?
? ? ?-rw-rw-r--.?? 紀曉嵐?? 一品大臣 ????? 紀曉嵐02.txt????? //這個時候創建的文件夾默認屬組是一品大臣。意味著只要是一品大臣這個組里面的人,比如和珅,不但可以修改紀曉嵐的內容,而且還可以刪除這個文件夾。紀曉嵐要想不被別人刪除他創建的東西,要做這一步:
?????????? #??? chmod o+t??? /tmp/朝廷??????? //用root?? 執行這一步就行了。就不能隨便刪除別人的東西 了
???
????????????在上面的o+t? 中,這個t指的就是sticky.
?? -------------------------------------------------------------------------------------------------
附加小知識點:
???? chmod 755?? /tmp/1.txt???? //意味著的權限是?? rwx? r-x? r-x??? ,分別是屬主? 讀寫執行,屬組? 讀執行,? 其他組的人? 讀執行。
??? chmod 5755?? /tmp/1.txt??? //這個文件有SUID和Sticky!(數字中的第一個5,就是紅色的5,表示有這個意思.)后面的755就是我們普通理解的--屬主讀寫執行,屬組讀和執行,其他組的人讀和執行。
? chmod 4755 ? ? /tmp/1.txt ? //只有SUID,因此第一個數字是4.其他后面的755跟上面一樣。
? chmod 2755 ?? /tmp/1.txt ? ? //只有SGID,因此第一個數字是2.其他后面的755跟上面一樣。
? chmod 1755?? /tmp/1.txt???? //只有Sticky.
????
???
??????
?
??
轉載于:https://blog.51cto.com/8184069/1722516
總結
以上是生活随笔為你收集整理的LINUX--特殊权限SUID,SGID,Sticky的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP-什么是PHP?为什么用PHP?有
- 下一篇: [转载]基于MVC4+EasyUI的We