對檔案或目錄進行訪問控制時,「讀取」、「寫入」、「執行」是最基本的三種許可權型別。除此之外,在linux中還存在著set位許可權(suid、sgid)、粘滯位(sticky bit)等為檔案或目錄提供額外的控制方式。下面我們就來聊聊這兩個非常有用的方式。
set位許可權
位許可權多用於給可執行的程式或指令碼檔案進行設定,其中suid表示對屬主使用者增加set位許可權,sgid表示對屬組內的使用者增加set位許可權。執行檔案被設定了suid、sgid許可權後,任何使用者在執行該檔案時,將獲得該檔案屬主、屬組賬號對應的身份。
為執行檔案新增set位許可權一般使用chmod命令實現:
如使用「chmod u+s」設定suid許可權,使用「chmod g+s」設定sgid許可權。
也可以使用數字形式,suid對應八進位制數字「4」、sgid對應八進位制數字「2」:
如使用「chmod 4755」設定suid許可權,使用「chmod 2755」設定sgid許可權,使用「chmod 6755」同時設定suid和sgid許可權
合理利用suid、sgid設定set位許可權,可以在確保安全性的同時為linux系統的管理和使用帶來方便。例如,linux系統中passwd命令的程式檔案就被設定了suid許可權,正因為如此,儘管普通使用者無法直接修改「/etc/shadow」檔案,但仍然可以通過passwd命令修改自己的登入密碼,從而以root使用者的身份間接更新shadow檔案中的密碼資訊。
另一方面,若沒有確切的應用需要,不要輕易為可執行檔案設定set位許可權,特別是那些屬主、屬組是root的執行程式,使用set位許可權時更應該謹慎。例如,若為vim編輯器程式設定suid許可權,將導致普通使用者也可以使用vim編輯器修改系統中的任何配置檔案。
需要去除suid、sgid許可權時,只需要使用「u-s」、「g-s」的許可權模式即可。
粘滯位許可權
粘滯位主要用於為目錄設定特殊的附加許可權,當目錄被設定粘滯位許可權後,即便使用者對該目錄有寫入許可權,也不能刪除該目錄中其他使用者的檔案資料。設定了粘滯位許可權的目錄,使用ls命令檢視其屬性時,其他使用者許可權處的「x」將變為「t」。
使用chmod命令設定目錄許可權時,「chmod +t」、「chmod -t」許可權模式可分別用於新增、移除粘滯位許可權。將數字許可權模式「nnnn」中 的第1位數字改為「1」、「0」,也可以實現新增移除粘滯位許可權。
Linux中粘滯位許可權
linux下的檔案許可權 在linux下每乙個檔案和目錄都有自己的訪問許可權,訪問許可權確定了使用者能否訪問檔案或者目錄和怎樣進行訪問。最為我們熟知的乙個檔案或目錄可能擁有三種許可權,分別是讀 寫 和執行操作,在這裡不做詳細說明。我們建立乙個檔案後系統會預設地賦予所有者讀和寫許可權。當然我們也可以自...
Linux中粘滯位
粘滯位 stickybit 又稱粘著位,是unix檔案系統許可權的乙個旗標。最常見的用法在目錄上設定粘滯位,也只能針對目錄設定,對於目錄內檔案有效。則設定了粘滯位後,只有目錄內檔案的所有者或者root才可以刪除或移動該檔案。如果不為目錄設定粘滯位,任何具有該目錄寫和執行許可權的使用者都可以刪除和移動...
Linux 剖析目錄許可權 粘滯位
本篇文章我將向大家詳細介紹linux中兩個非常重要的知識點目錄許可權以及粘滯位,這兩點也是在面試中經常會被問到的兩個問題,我會盡自己最大的努力來讓大家有所收穫。2.粘滯位 重點!下面我們先來通過幾個例子來感受一下目錄的三種許可權。dir1是當前路徑下的乙個目錄。我是這個目錄的擁有者,可以看到一開始我...