Permissions

4 位八進制 Unix 文件權限表示法中的第一個數字是什麼?

  • October 26, 2021

3 位數:

644
ugo (user group other)

4位數:

0644
?ugo (??? user group other)

4 位八進制 Unix 文件權限表示法中的第一個八進制數字是什麼?

來自man chmod

數字模式是從一到四個八進制數字 (0-7),通過將具有值 4、2 和 1 的位相加得出。任何省略的數字都假定為前導零。第一個數字選擇設置使用者 ID (4) 和設置組 ID (2) 和粘性 (1) 屬性。

你問什麼是“設置使用者 ID”、“設置組 ID”和“粘性”?

setuid/setgid :

setuid 和 setgid(分別是“執行時設置使用者 ID”和“執行時設置組 ID”的縮寫)是 Unix 訪問權限標誌,允許使用者以執行檔的所有者或組的權限執行執行檔。它們通常用於允許電腦系統上的使用者以臨時提升的權限執行程序,以執行特定任務。雖然提供的假定使用者 ID 或組 ID 權限並不總是提升,但至少它們是特定的。

此外,當應用於目錄時,setuid/setgid 會導致在目錄中創建的新文件分別繼承父目錄的 uid 或 gid。此行為因 unix 的風格而異。例如,linux 尊重 setgid,但忽略目錄上的 setuid。

粘性

如今,粘性位最常見的用途是在目錄上。當設置了粘性位時,只有項目的所有者、目錄的所有者或超級使用者可以重命名或刪除文件。如果沒有設置粘性位,任何對目錄具有寫入和執行權限的使用者都可以重命名或刪除包含的文件,而不管所有者是誰。通常這是在 /tmp 目錄中設置的,以防止普通使用者刪除或移動其他使用者的文件。

引用自:https://serverfault.com/questions/344544