Ubuntu

為什麼目錄會在沒有可執行位的情況下設置粘性位?

  • April 29, 2017

在 Ubuntu 14.04 中,列出目錄的內容/var/spool/cron提供ls -l了對其中目錄的以下權限(不相關的列被剪斷):

drwxrwx--T daemon daemon atjobs
drwxrwx--T daemon daemon atspool
drwx-wx--T root crontab crontabs

在沒有可執行位的目錄上設置粘性位的目的是什麼?

從手冊頁sticky

粘性目錄

一個設置了“sticky bit”的目錄變成了一個只追加目錄,或者更準確地說,一個限制刪除文件的目錄。只有當使用者具有目錄的寫權限並且使用者是文件的所有者、目錄的所有者或超級使用者時,使用者才能刪除或重命名粘性目錄中的文件。此功能適用於 /tmp 等目錄,該目錄必須是可公開寫入的,但應拒絕使用者任意刪除或重命名彼此文件的許可。

任何使用者都可以創建一個粘性目錄。有關修改文件模式的詳細資訊,請參閱 chmod(1)。

這樣做的結果是只有粘性目錄中文件的所有者才能刪除該文件。就cron表格而言,這意味著不能進入那裡並刪除您的cron 表並用**我選擇的一個替換它,即使我可能對該目錄具有寫訪問權。正是由於這個原因,/tmp它也很粘。

引用自:https://unix.stackexchange.com/questions/361972