Permissions

umask 設置預設權限 750

  • September 1, 2021

我正在處理來自Unix The Textbook 的問題。

我正在嘗試解決這個問題*(第 8 章,#15,第 207 頁)*:

  1. 給出一個命令行來設置預設訪問模式,這樣你就有讀、寫和執行權限,你的組有讀和執行權限,你的組有讀和執行權限,其他人都沒有新創建的執行檔的權限或目錄。您將如何對其進行測試以確保其正常工作?

我最初的回答是使用umask 027,但我發現創建一個新文件時使用touchvim從未按預期工作,因為執行權限umask應用於666not 777

由於我的最終目標是獲得它的權限值,750因此在我看來,使用該umask命令是不可能的,因為任何umask應用於666不會導致750.

鑑於本節中的所有問題都與問題相關,chmod並且umask問題是否存在缺陷,因為您無法使用umask?

好吧,問題包含這部分:

對於新創建的執行檔或目錄。

新創建的執行檔和目錄可能是使用 0777 模式創建的,因此它們也可以根據需要獲得執行權限。所以這個問題似乎是正確的,應該使用 027 的 umask。

根據這些文件,您可以通過從 777 中減去來確定任何 umask(建議文件使用 666,因為它們預設情況下不可執行)。

所以你可以像

PERM=750
UMASK=$(expr 777 - $PERM)
echo $UMASK
>>> 27

請注意,它缺少前導零,這在某些情況下可能是一個問題,但如果您只想

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