Linux下的黏滯位(Sticky bit)

1、什麼是黏滯位?爲什麼需要黏滯位?

        一般的,在Linux系統中用戶只要對某個目錄具備w寫入權限,便可以刪除該目錄中的任何文件,而不論這個文件的權限是什麼。


比如我們進行一下操作:

1>創建/test目錄,並賦予777權限。



2>以root用戶的身份在/test目錄中創建文件file1,並查看其默認權限。



3>以普通用戶snow的身份登錄系統,可以刪除/test/file1。


通過上面的操作可以發現,雖然普通用戶snow對文件/test/file1只具備“r--”權限,但因爲從/test目錄獲得了“rwx”權限,因而仍然可以將/test/file1刪除。


在Linux系統中比較典型的例子就是“/tmp”、“/var/tmp”目錄。這兩個目錄作爲Linux系統的臨時文件夾,權限爲 “rwxrwxrwx”,即允許任意用戶、任意程序在該目錄中進行創建、刪除、移動文件或子目錄操作。然而試想一下,若任意一個普通用戶都能夠刪除系統服務運行中使用的臨時文件,將造成什麼結果?


綜合上述原因,我們提出了黏滯位的概念:

粘滯位權限便是針對此種情況設置的,當目錄被設置了粘滯位權限以後,即便用戶對該目錄有寫入權限,也不能刪除該目錄中其他用戶的文件數據,而是隻有該文件的所有者和root用戶纔有權將其刪除。

設置了粘滯位之後,正好可以保持一種動態的平衡:允許各用戶在目錄中任意寫入、刪除數據,但是禁止隨意刪除其他用戶的數據。


需要注意的是,粘滯位權限只能針對目錄設置,對於文件無效。


2、黏滯位的設置及其作用

粘滯位權限都是針對其他用戶(other)設置,使用chmod命令設置目錄權限時,

“o+t”  ------   權限模式用於添加粘滯位權限

“o-t”   ------   權限模式用於移除粘滯位權

設置了粘滯位權限的目錄,使用ls命令查看其屬性時,其他用戶權限處的“x”將變爲“t”。


爲test目錄設置黏滯位:



此時再進入普通用戶刪除file1文件:


由上圖可知,當目錄test加上黏滯位後,普通用戶snow便無法刪除test目錄下的文件file1了。


3、黏滯位的運用場景

粘滯位權限在生產環境中也被廣泛應用,當需要爲用戶提供一個開放目錄而又不希望造成管理混亂時,通過爲目錄設置粘滯位權限便可以解決問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章