檔案的粘滯位 (sticky) 位是作什麼用的?
普通檔案的 sticky 位會被 linux 核心忽略,
目錄的 sticky 位表示這個目錄裏的檔案只能被 owner 和 root 刪除
粘著位(Sticky bit)
如果使用者對目錄有寫許可權,則可以刪除其中的檔案和子目錄,即使該使用者不是這些檔案的所有者,而且也沒有讀或寫許可。粘著位出現執行許可的位置上,用 t 表示,設定了該位後,其它使用者就不可以刪除不屬於他的檔案和目錄。但是該目錄下的目錄不繼承該許可權,要再設定才可使用。
# chmod 1770 xxx
舉一個 linux 下的常見目錄來做例子,也就是 /tmp 目錄來説一下粘連位的作用。
#ls -dl /tmp
drwxrwxrwt 4 root    root  ………
注意 other 位置的 t,這便是粘連位。
我們都知道,/tmp 常被我們用來存放臨時檔案,是所有使用者。但是我們不希望別的使用者隨隨便便的就刪除了自己的檔案,於是便有了粘連位,它的作用便是讓使用者只能刪除屬於自己的檔案。
那麼原來的執行標誌 x 到哪裏去了呢? 系統是這樣規定的, 假如本來在該位上有 x, 則這些特別標誌 (suid, sgid, sticky) 顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (S, S, T) 。
3) 粘著位 (sticky)
eg:
chmod 777 abc
chmod +t abc
等價於
chmod 1777 abc
在以前舊的系統當中, 如果一個程式檔案一旦設定了粘著位,
那麼當該程式中止的時候他的所有指令段將被儲存到系統的交換分割槽當中,
再次執行時可以更快的調入系統.
不過現在的操作系統已經不再使用這種功能了.
但這並不表示這一功能已經完全被廢棄.
當一個目錄設定為粘著位時,它將發揮特殊的作用,
即當一個目錄被設定為” 粘著位”(用 chmod a+t), 則該目錄下的檔案只能由
一、超級管理員刪除
二、該目錄的所有者刪除
三、該檔案的所有者刪除
也就是説, 即便該目錄是任何人都可以寫, 但也只有檔案的屬主才可以刪除檔案。