Permissions
umask 設置預設權限 750
我正在處理來自Unix The Textbook 的問題。
我正在嘗試解決這個問題*(第 8 章,#15,第 207 頁)*:
- 給出一個命令行來設置預設訪問模式,這樣你就有讀、寫和執行權限,你的組有讀和執行權限,你的組有讀和執行權限,其他人都沒有新創建的執行檔的權限或目錄。您將如何對其進行測試以確保其正常工作?
我最初的回答是使用
umask 027
,但我發現創建一個新文件時使用touch
或vim
從未按預期工作,因為執行權限umask
應用於666
not777
。由於我的最終目標是獲得它的權限值,
750
因此在我看來,使用該umask
命令是不可能的,因為任何umask
應用於666
不會導致750
.鑑於本節中的所有問題都與問題相關,
chmod
並且umask
問題是否存在缺陷,因為您無法使用umask
?
好吧,問題包含這部分:
對於新創建的執行檔或目錄。
新創建的執行檔和目錄可能是使用 0777 模式創建的,因此它們也可以根據需要獲得執行權限。所以這個問題似乎是正確的,應該使用 027 的 umask。
根據這些文件,您可以通過從 777 中減去來確定任何 umask(建議文件使用 666,因為它們預設情況下不可執行)。
所以你可以像
PERM=750 UMASK=$(expr 777 - $PERM) echo $UMASK >>> 27
請注意,它缺少前導零,這在某些情況下可能是一個問題,但如果您只想