檔案的粘滞位(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),則該目錄下的檔案隻能由
一、超級管理者删除
二、該目錄的所有者删除
三、該檔案的所有者删除
也就是說,即便該目錄是任何人都可以寫,但也隻有檔案的屬主才可以删除檔案。