Linux文件特殊權限:SUID、SGID和SBIT

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/sinat_30071459/article/details/51206581
1.SUID
當s這個標誌出如今文件全部者的x權限上時,例如文件權限狀態「-rwsr-xr-x」,此時就稱爲 Set UID,簡稱爲SUID的特殊權限。SUID有這樣的限制和功能:
(1)SUID權限僅對二進制程序有效;
(2)執行者對於該程序須要具備x的可執行權限;
(3)本權限僅在執行該程序的過程當中有效;
(4)執行者將具備該程序全部者的權限。.net

舉個例子,在Linux中,全部帳號的密碼記錄在/etc/shadow這個文件中,而且只有root能夠讀和強制寫入這個文件。那麼,若是另外一個帳號vbird須要修改本身的密碼,就須要訪問/etc/shadow這個文件,可是上面明明說了只有root能訪問/etc/shadow這個文件,是否是矛盾?但事實上,vbird是能夠修改/etc/shadow這個文件內的密碼的,這就是SUID的功能。
經過上述的功能說明,咱們知道,
(1)vbird對於/usr/bin/passwd這個程序具備x權限,代表vbird能夠執行passwd;
(2)passwd的全部者爲root;
(3)vbird執行passwd的過程當中會暫時得到root的權限;
(4)/etc/shadow所以能夠被vbird所執行的passwd所修改。blog

 可是vbird若是使用cat去讀取/etc/shadow這個文件時,是不能讀取的。file

 


(SUID只能用在文件上,不能用在目錄)權限

2.SGID
當s標誌出如今文件全部者的x權限時稱爲SUID,那麼s出如今用戶組的x權限時稱爲SGID。(U表示user,G表示group)。SGID有以下功能:
(1)SGID對二進制程序有用;
(2)程序執行者對該程序需具有x權限;
(3)執行者在執行過程當中會得到該程序用戶組的支持。二進制

舉個例子,/usr/bin/locate這個程序能夠去查詢/var/lib/mlocate/mlocate.db這個文件的內容,mlocate.db的權限以下:程序

-rwx--s--x root  slocate /usr/bin/locate
-rw-r-----   root slocate /var/lib/mlocate/mlocate.db密碼

若使用vbird這個帳號執行locate時,vbird就會得到用戶組slocate支持,又因爲用戶組slocate對mlocate.db具備r權限,因此vbird就能夠讀取mlocate.db了。查詢

 

除二進制程序外,SGID也能夠用目錄上。當一個目錄設置了SGID權限後,它具備以下功能:
(1)用戶若對此目錄具備r和x權限,該用戶可以進入該目錄;
(2)用戶在此目錄下的有效用戶組將變成該目錄的用戶組;
(3)若用戶在此目錄下擁有w權限,則用戶所建立的新文件的用戶組與該目錄的用戶組相同。db

3.SBIT
SBIT目前只對目錄有效。
SBIT對目錄的做用是:
(1)當用戶對此目錄具備w和x權限時,即具備寫入權限時;
(2)當用戶在該目錄下建立新文件或目錄時,僅有本身和root纔有權力刪除。文件

4.SUID\SGID\SBIT權限設置
先將其轉換成數字:
SUID->4
SGID->2
SBIT->1

假設要將一個文件權限修改成「-rwsr-xr-x」,因爲s在用戶權限中,因此是SUID,所以,原先的755前面還要加上4,也就是4755,因此,
用命令chmod 4755 filename 設置就能夠了。此外,還可能出現S和T的狀況。
咱們知道,s和t是替代x這個權限的,可是,若是它自己沒有x這個權限,修改成s或t時就會變成大S或大T,例如:
執行chmod 7666 filename。 由於666表示「-rw-rw-rw」,均沒有x權限,因此最後變成「-rwSrwSrwT」。

來自鳥哥的Linux私房菜這裏也有一些介紹:http://blog.csdn.net/xiaocainiaoshangxiao/article/details/17378611--------------------- 做者:小鹹魚_ 來源:CSDN 原文:https://blog.csdn.net/sinat_30071459/article/details/51206581 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索