粘住位(sticky bit)是UNIX和Linux系統中檔案和目錄的一個特殊屬性,用於控制檔案和目錄的訪問許可權。當粘住位設定在執行檔上時,該檔案第一次執行並結束後,其程式正文部分的一個副本會被保存在交換區中。這樣,下次執行該程式時能較快地將其裝入記憶體中,因為交換區占用連續磁碟空間,可以將它視為連續檔案,而且一個程式的正文部分在交換區中也是連續存放的。這在早期的UNIX系統中是一個有用的技術,因為當時的硬體性能較低,記憶體有限。然而,隨著硬體性能的提升和現代檔案系統的發展,這個技術已經不再被廣泛使用。
對於目錄來說,如果設定了粘住位,那麼只有以下情況的用戶才能刪除或更名該目錄下的檔案:
擁有該檔案的用戶
擁有該目錄的用戶
超級用戶
這種設定有助於保護系統中的重要目錄,如/tmp和/var/spool/uucppublic,這些目錄允許任何用戶創建檔案,但不允許他們刪除或更名屬於其他用戶的檔案。通過設定粘住位,可以防止未經授權的用戶干擾這些目錄中的內容。
設定粘住位的命令是chmod +t object,其中object是要設定粘住位的檔案或目錄的路徑名。