我們知道,Linux中關于檔案的權限有三種:
r– 讀權限(可以讀這個檔案)
-w- 寫權限(可以對這個檔案進行寫操作)
–x 執行權限(可執行該檔案)
在關于Linux中的權限一文中,經讨論發現,如果使用者需要進入一個目錄,那麼需要這個目錄具備可執行的權限。
而若是具備寫權限,則可以删除該目錄中的任何檔案。
如上圖所示,在root使用者下,
在所有權限均為可讀可寫可執行的目錄test下,建立other權限為隻讀的檔案test.c。
接下來,将使用者切換為普通使用者。
使用普通使用者删除root使用者建立的檔案時,成功删除。
我們設定test.c的other權限為隻讀是為了讓test.c檔案無法被其他使用者删除,但由上例明顯看到,普通使用者成功删除了該檔案。
這是因為,其他使用者對root使用者來說,都是other使用者,雖然檔案的other權限為隻讀,但是它所在的目錄權限為可讀可寫可執行,那麼該檔案就可被删除。
是以,便有了粘滞位。
當目錄被設定粘滞位權限後,即便使用者對該目錄擁有寫的權限,也不能删除目錄中其他使用者的檔案,隻有該檔案的擁有者和root使用者可以删除。
設定粘滞位後,正好可以保持動态平衡:
允許各使用者在目錄中任意寫入、删除資料,但是禁止随意删除其他使用者的資料。
- 粘滞位的設定對象隻能是目錄,對于一般的檔案無效。
- 當目錄被設定粘滞位後,即便用于用于該目錄的寫入權限,也不能删除該目錄中其他使用者的檔案資料。
- 設定粘滞位後的目錄,在ls -l後,other使用者權限處的”x”将變為”t”
-
設定:
chmod o+t 目錄名:用于添加粘滞位權限
chmod o-t 目錄名:用于添加粘滞位權限
對目錄test設定了粘滞位。
接下來對test目錄中的test.c嘗試删除。