天天看點

Linux粘滞位

我們知道,Linux中關于檔案的權限有三種:

r– 讀權限(可以讀這個檔案)

-w- 寫權限(可以對這個檔案進行寫操作)

–x 執行權限(可執行該檔案)

在關于Linux中的權限一文中,經讨論發現,如果使用者需要進入一個目錄,那麼需要這個目錄具備可執行的權限。

而若是具備寫權限,則可以删除該目錄中的任何檔案。

Linux粘滞位

如上圖所示,在root使用者下,

在所有權限均為可讀可寫可執行的目錄test下,建立other權限為隻讀的檔案test.c。

接下來,将使用者切換為普通使用者。

Linux粘滞位

使用普通使用者删除root使用者建立的檔案時,成功删除。

我們設定test.c的other權限為隻讀是為了讓test.c檔案無法被其他使用者删除,但由上例明顯看到,普通使用者成功删除了該檔案。

這是因為,其他使用者對root使用者來說,都是other使用者,雖然檔案的other權限為隻讀,但是它所在的目錄權限為可讀可寫可執行,那麼該檔案就可被删除。

是以,便有了粘滞位。

當目錄被設定粘滞位權限後,即便使用者對該目錄擁有寫的權限,也不能删除目錄中其他使用者的檔案,隻有該檔案的擁有者和root使用者可以删除。

設定粘滞位後,正好可以保持動态平衡:

允許各使用者在目錄中任意寫入、删除資料,但是禁止随意删除其他使用者的資料。

  • 粘滞位的設定對象隻能是目錄,對于一般的檔案無效。
  • 當目錄被設定粘滞位後,即便用于用于該目錄的寫入權限,也不能删除該目錄中其他使用者的檔案資料。
  • 設定粘滞位後的目錄,在ls -l後,other使用者權限處的”x”将變為”t”
  • 設定:

    chmod o+t 目錄名:用于添加粘滞位權限

    chmod o-t 目錄名:用于添加粘滞位權限

Linux粘滞位

對目錄test設定了粘滞位。

接下來對test目錄中的test.c嘗試删除。

Linux粘滞位
Linux粘滞位

繼續閱讀