數字法
rwx,r為4, w為2 ,x為1,-為0,給權限時衹需要把三個權限值相加,把和作爲參數
文字法
使用四個字母 u(擁有者)、g(所屬組)、o(其他)和a(全部),和三個操作符+、-、=分別表示增加、減去和設定。
最後一個是將當前有效用戶(執行操作的用戶)的x權限減去。
SUID
除了rwx還有s和t,s出現在文件擁有者或所屬組的x權限位上,出現在擁有者上稱爲Set UID,簡稱SUID,後者為SGID。
- SUID僅對二進制程序有效
- 執行者對於該程序有x的可執行權限
- 執行權限僅在執行該程序的過程中有效
- 執行者將具有該程序擁有者的權限
設置SUID權限可以使用“u+s”;當命令需要提供給普通用戶,但是又需要root權限才能正確執行的程序基本上都擁有SUID。比如mount和su。
SGID
通過“g+s”來設置SGID
- SGID對二進制程序有效
- 執行者對於該程序具有x的可執行權限
- 執行者在執行的過程中將會獲得該程序所屬用戶組的支持
SGID用在locate命令上,是希望任何用戶在執行這條命令的時候,都能夠讀取mlocate.db文件的内容,這個文件位于/var/lib/mlocate/mlocate.db,它與locate命令有相同的用戶組,而且用戶組具有讀權限,其他用戶沒有任何權限。
SGID還用在目錄上,具有以下功能
- 用戶若對於此目錄擁有 r 與 x 權限時,該用戶能夠進入此目錄
- 該用戶在此目錄下的有效用戶組將變成該目錄的用戶組
- 若用戶在此目錄下具有 w 的權限,則用戶所創建的新文件的用戶組與此目錄的用戶組相同
依據這一特性,進入此類目錄的用戶就會發生有效用戶組和實際用戶組不一致的情況。
SBIT
其他用戶的 x 權限位,僅對目錄有效,使用“o+t”。
- 若用戶對此目錄有 w 和 x 權限,即擁有寫的權限
- 當用戶在此目錄下創建了文件或目錄,僅自己與 root才有權利刪除文件
比如A用戶在B目錄創建了文件C,若B目錄擁有SBIT權限,那麽僅有用戶A和root能刪除文件C。
/tmp目錄就是典型,它允許任何用戶在裏面創建文件,但設置了SBIT權限,使文件衹有創建者或root才能刪除。
黨使用數字法設置SUID、SGID和SBIT權限時,SUID為4,SGID為2, SBIT為1,它們放在數字的開頭,比如4755(SUID)、2755(SGID)。