Skip to content

[Linux] 權限中黏滯位(sticky bit)的解釋(chmod 1777)

介紹

黏滯位sticky bit)是一個 Unix 與 Unix-like 系統中的一個有趣的應用,它是一個特殊的權限設定,來提供檔案或文件更加細緻的操作。比方說,大家想必都對文件權限很熟悉吧?分別是 rwx(讀取、寫入、可執行)等三種不同的權限。而黏滯位則更進一步,設定了檔案『刪除』與『重新命名』的權利。

在如 Linux 等系統中,我們應該都很習慣 chmod 命令用於更改檔案或目錄的存取權限,而若是要設定黏滯位,則需要設定數字 1777 或是 3777 來啟用這個特殊的權限設置。

  1. chmod 1777
    這個設置用於目錄。 1777 設置了所謂的黏滯位(Sticky Bit)代表只有目錄內的檔案所有者或是 root 才能進行刪除或移動,但是普通的讀寫執行權限(rwx)則是都給所有用戶(owner, group, others)。

    若要清除黏滯位,則可以使用 chmod 0777 或是 chmod -t

    而經典的使用場景,就是像 /tmp 這樣的公共空間。任誰都可以建立與寫入檔案,但是只有檔案擁有者與 superuser 可以刪除或重命名檔案。
  2. chmod 3777
    這是 1777 的一個變體,但增加了「設置用戶 ID 位」(Set User ID,簡稱 SUID)。
    設置用戶 ID 位(SUID):當設置在可執行檔案上時,不管誰執行該檔案,該檔案都將以檔案擁有者的權限來執行。在目錄上,SUID 通常沒有特別的作用,因此 37771777 在實際應用中通常相同。

記錄下這篇文章,純粹是因為之前有同事討論到這個奇怪的設定,一查之下才發現有這樣的事情。只能說我依賴 Linux 進行開發,但是關於擔任管理員所需具備的能力仍遠遠不足呢。


References


Read More

Tags:

Leave a Reply