【Linux】Linux的粘滯位

在之前我們對Linux下的訪問權限做了簡單的學習和了解,我們知道在Linux中的每一個文件或目錄都包含有訪問權限,這些訪問權限決定了誰能訪問和如何訪問這些目錄與文件,而基本的訪問權限包括:讀、寫、執行。
下面我們先看一個例子;
我們首先由普通用戶切換至root用戶,然後在code目錄下創建一個file文件:
這裏寫圖片描述
然後我們切換回普通用戶,嘗試刪除我們之前創建的file文件,發現雖然file文件只有“rw-”權限,但是我們依然可以刪除,這是爲什麼呢?
這裏寫圖片描述
我們再來看一看code目錄的權限,code目錄有“rwx”權限,這裏的file文件正是因爲cd目錄具有x權限,它也可以被我們刪除。
這裏寫圖片描述
在Linux下有一個用於存放臨時文件的目錄 /temp,每一個用戶產生的臨時文件都存放在 /temp目錄下面,權限爲“rwxrwxrwx”,即允許任意用戶、任意程序在該目錄中進行創建、刪除、移動文件或子目錄等操作。然而試想一下,若任意一個普通用戶都能夠刪除系統服務運行中使用的臨時文件,將造成什麼結果?所以爲了防止用戶對於除自己外的其他用戶的文件進行刪除操作,所以產生了粘滯位。
下面讓我們來簡單認識一下什麼是粘滯位:
這裏寫圖片描述

當目錄被設置了粘滯位權限以後,即便用戶對該目錄有寫入權限,也不能刪除該目錄中其他用戶的文件數據,而是隻有該文件的所有者和root用戶纔有權將其刪除。設置了粘滯位之後,正好可以保持一種動態的平衡:允許各用戶在目錄中任意寫入、刪除數據,但是禁止隨意刪除其他用戶的數據。(需要注意的是,粘滯位權限只能針對目錄設置,對於文件無效)。
它的作用便是讓用戶只能刪除屬於自己的文件。
粘滯位權限都是針對其他用戶(other)設置,使用chmod命令設置目錄權限時,“o+t”、“o-t”權限模式可分別用於添加、移除粘滯位權限。
這裏寫圖片描述
我們可以看到此時的權限爲已經由.x變爲.t

此時如果我們在code目錄底下創建一個文件file,切換到普通用戶環境底下,再一次進行刪除,我們發現此時已經無法刪除該文件。

說明我們已經設置成功了

關於粘滯位的取消命令(chmod o-t tmp),取消完成之後就和初始狀態一樣,我們便不

做過多解釋。

粘滯位(Sticky bit),或粘着位,是Unix文件系統權限的一個旗標。最常見

的用法在目錄上設置粘滯位,如此以來,只有目錄內文件的所有者或者root纔可以刪除

或移動該文件。如果不爲目錄設置粘滯位,任何具有該目錄寫和執行權限的用戶都可以

刪除和移動其中的文件。實際應用中,粘滯位一般用於/tmp目錄,以防止普通用戶刪除或移動其他用戶的文件。

粘滯位權限都是針對其他用戶(other)設置,使用chmod命令設置目錄權限時,“o+t”、“o-t”權限模式可分別用於添加、移除粘滯位權限。

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

粘滯位權限便是針對此種情況設置,當目錄被設置了粘滯位權限以後,即便用戶對該目錄有寫入權限,也不能刪除該目錄中其他用戶的文件數據,而是隻有該文件的所有者和root用戶纔有權將其刪除。設置了粘滯位之後,正好可以保持一種動態的平衡:允許各用戶在目錄中任意寫入、刪除數據,但是禁止隨意刪除其他用戶的數據。

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

以下我們進行粘滯位的設置

粘滯位權限都是針對其他用戶(other)設置,使用chmod命令設置目錄權限時,“o+t”、“o-t”權限模式可分別用於添加、移除粘滯位權限。

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