前言
上篇隨筆講述了Linux中許可權的大致實現機制以及目錄許可權的相關規則。本文將講解Linux中的三種特殊許可權:SUID,SGID,Sticky許可權。
看完這兩篇文章,你一定會對Linux的許可權有個更深的認識。
SUID
當一個檔案有了SUID許可權,則其他使用者使用這個檔案的時候,可以臨時獲取到該檔案所有者的許可權。
該許可權比較經典的一個使用例子是passwd程式:每個使用者都可以執行這個程式修改自己的密碼,但我們知道密碼檔案的所有者是root且不允許其他使用者接觸。那怎麼修改密碼?有辦法!我們給這個檔案以SUID許可權,這樣當使用者通過修改密碼程式使用這個檔案時,可以臨時獲取root許可權,從而修改到自己的密碼。
所謂的臨時獲取到該檔案所有者許可權實質上就是讓使用這個檔案的程式的有效使用者ID切換成該檔案所有者ID。
SGID
和SUID類似,只不過這次的目標許可權是組。
Sticky
粘住許可權是專門針對目錄的。一旦一個目錄被賦予了粘住許可權,則只有滿足以下條件之一的使用者可以刪除或者更名這個目錄下的檔案:
1. 擁有此檔案
2. 擁有此目錄
3. 是超級使用者