天天看點

Linux - sticky bit

在Linux下使用指令 ll 就可以檢視一個檔案/目錄的詳細資訊,包括它的權限,我們都知道權限是rwx表示,r-可讀,w-可寫,x-可執行。但今天在我的檔案中發現了一個t表示的權限:

Linux - sticky bit

d 表明這個檔案類型是普通檔案,rwx已經解釋過,那這個other位置上的 t 到底是什麼呢?!原來在這個位置上的 x 或者 - 去哪裡了?!在網上搜尋了一番後,得到這個t其實是所謂的粘滞位(sticky bit)

·Sticky bit:(粘着位)可以了解為防删除位,是Linux下檔案或目錄權限的一個旗标,當我們沒有給一個目錄設定sticky bit時,任何對該目錄具有寫權限的使用者都可以随意删除或移動這裡邊的檔案,當然,也可以添加檔案,這樣就使這裡邊的檔案變得不安全。如果我們不希望該目錄下的檔案被其他使用者改動,就可以對這個目錄設定sticky bit,這樣設定以後隻有root或者owner使用者才可以删除/移動這個目錄下的檔案,進而也增加了這些檔案的安全性。注意:一定是目錄,如果對檔案設定粘滞位是不起作用的,會被Linux的核心忽略掉。實際應用中,粘滞位一般用于/tmp目錄,以防普通使用者删除或移動其他使用者的檔案。(上面那個圖就是在我的/tmp目錄下檢視的)

·知道了什麼是粘滞位,我們再回到上述第二個問題中,x 或 - 去哪了。。。。

系統是有這樣一個規定的:如果這個位置上之前是 x ,那麼這些特殊标志顯示為小寫字母(s,s,t);否則就顯示為大寫字母(S,S,T)。這樣一來,我們也能明白該位置上原來應該是什麼權限了。

·通常情況下,我們可以通過指令“ chmod  o+t   檔案目錄 ” 來設定粘滞位。但應該注意的是,上面已經講過對檔案設定粘滞位是不起作用的,是以這裡必須是對你這個檔案的上級目錄設定粘滞位才能保證這個檔案的安全性。例如有1.txt檔案存在于/File目錄下,我不想使這個檔案被其他使用者删除或移動,我可以對這個目錄(即File)設定粘滞位

Linux - sticky bit

同樣的,我們也可以用八進制模式設定權限:

Linux - sticky bit

對上述内容總結一下:通過chmod指令可以對一個目錄設定sticky bit,當然,是對于other位置的執行位設定的(x 變 t),設定後使用者可以在該目錄下建立檔案,當然也可以删除自己建立的檔案(前提是使用者具有可寫可執行權限,如果具有可執行權限,設定sticky bit後 x 變 t;否則,x 變 T),但不能删除其他使用者的檔案。

以下文章參考自:http://blog.163.com/qk_zhu/blog/static/195076154201182635642311/ ·在以前舊的系統中,如果一個程式檔案一旦設定了粘滞位,那麼 該程式在運作終止的時候它的所有指令将被儲存到系統的交換分區當中,再次運作是可以更快的調入系統。不過現在的作業系統痛已經不再使用這種功能了,但這并不代表這一功能已經完全被廢棄,當一個目錄設定為粘滞位的時候,它将發揮特殊的作用,即當一個目錄被設定為粘滞位的時,則該目錄下的檔案隻能被:root使用者、owner使用者以及該檔案的所有者删除,也就是說,即便該目錄時任何人都可以寫,但也隻有檔案的屬主才能删除檔案。

繼續閱讀