Linux中的粘滯位

本文內容:

一、前言

二、粘滯位的概念

三、粘滯位的作用

四、粘滯位的簡單分析

五、粘滯位的設置

前言

    最近在學習Linux的過程中發現了一個問題,用戶A與用戶B同屬一個組,且一個文件對該組成員具有可寫和可執行的權限,但是用A創建的文件,B卻無法刪除。原來是該文件位置的上層目錄的權限是drwxrwxrwt
    我們都直到,Linux下每一個文件或目錄都有自己的訪問權限,訪問權限決定了該用戶能否訪問這個文件或目錄以及以怎樣的權限進行訪問。我們所熟知的一個文件或目錄有讀、寫、可執行。在我們創建一個文件後,系統會自動的根據每個用戶所設置的默認權限對該文件賦予權限。當然,我們也可以手動的修改文件的權限。
     但是,我前面提到的t權限又是怎麼一會事呢?

粘滯位的概念

    粘滯位(Sticky bit),或粘着位,是Unix文件系統的一個旗標。
    普通文件的Sticky位會被Linux內核忽略,目錄的Sticky位表示這個文件只能被owner和root刪除。

粘滯位的作用

    粘滯位最常見的用法就是在目錄上設置粘滯位,如此一來,只有目錄內文件的owner或root才能刪除或移動該文件。
    如果不爲目錄設置粘滯位,那麼,任何具有該目錄文件寫和執行權限的用戶都可以移動和刪除目錄內文件。
    在實際應用中,粘滯位一般用於/tmp目錄,以防止普通用戶移動或刪除其他用戶的文件。

粘滯位的簡單分析

   現在,我們來進行這樣的操作,切換到root,創建一個tmp文件夾,將它的權限改爲777,然後在tmp下再創建一個文件test.txt,接下來,切換回普通用戶,嘗試着刪除test.txt文件,竟然成功了!!!
   我們可以看到,test.txt文件的擁有者和所屬組都是root超級用戶,而且它的文件權限爲rw-r--r--,但是,普通用戶居然可以隨意刪除它,這是怎麼一會事呢?

      從上圖的驗證,我們可以看到,即使test.txt文件對普通用戶的權限設置爲r--,但是/tmp的rwx權限使得普通用戶也可以很容易的刪除test.txt文件。
   在Linux系統中的/tmp、/var/tmp目錄,這兩個文件夾是Linux系統的臨時文件夾,權限爲rwxrwxrwx(777),即允許任意用戶,任意程序對該目錄下文件讀、寫、執行以及創建子目錄,移動刪除文件等操作。但是,試想一下,任意一個用戶都能夠刪除系統運行服務中使用的臨時文件,將造成什麼結果?
   粘滯位就是針對這種情況設置的。
   當目錄被設置了粘滯位權限後,即使一個用戶對該目錄有寫權限,但是不能隨意改動其他用戶的文件數據。只有該文件的owner和root纔有修改該文件的權限。因此,設置了粘滯位後,正好可以保持一種動態的平衡,允許個用戶在目錄中讀,寫,但不能隨意改動刪除不屬於該用戶的文件。

粘滯位的設置

    知道了粘滯位的概念、作用,我們也要明白粘滯位是如何設置的,
粘滯位的權限都是針對其他用戶(other)設置的,使用chmod命令設置文件權限時,
chmod o+t 命令設置粘滯位,而chmod o-t 命令刪除粘滯位權限。

chmod o-t 命令刪除粘滯位權限,這時切換到普通用戶下,也可以刪除test.txt文件了。

             好了,粘滯位就介紹到這裏了,還有什麼沒有講到的問題,歡迎大家補充!!!




















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