Linux

“umask”變數可以包含大於“7”的數字嗎?

  • January 25, 2022

我了解我們使用“umask”來設置不同的安全級別:

我們可以將 umask 設置為028或任何其他值,使其包含大於“7”的數字嗎?

shell 的umask命令將權限遮罩作為八進制數,以 8 為基數。Base 8 只有 0 到 7 的八位數字,與十進制(十位)或十六進制(十六位)不同。

所以,不,你不能umask 028在 shell 中使用,這沒有任何意義。當然,umask 只是一堆位,一個數字,它也可以用十進製或十六進製表示。例如,在 C 程式碼中,022(八進制)與(十進制)是相同的數字18,因此設置 umask 為的系統呼叫022可以寫為umask(18).

但是考慮到有三個權限位(rwx),並且三個位可以代表八個不同的值,八進制是表示權限位的一種相當有用的方式。

此外,考慮 umask 值對於授予其他使用者的權限的含義可能很有用,而不是單個單詞的描述。

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