在 macOS 中自訂 umask

Mac 上的每個檔案和檔案夾都有一組權限。當你建立新的檔案或檔案夾時,umask 會判斷這些權限。

這些進階步驟主要是為系統管理者及其他熟悉命令列的人員提供。更改檔案權限和 umask 時,請務必謹慎。如果輸入有誤,可能會降低 Mac 上檔案、檔案夾或 App 的安全性,或導致 App 無法正常運作。

關於權限和 umask

權限。Mac 上儲存的每個檔案、檔案夾或 App 都具有權限設定,能判斷哪些使用者帳號可以讀取、寫入或執行該檔案、檔案夾或 App。這些權限包括 POSIX 權限和「連線權限控制列表」(ACL)。若要將使用者的 POSIX 權限設得較為嚴格或寬鬆,你可以調整權限的 umask 值。

Umask。三位數數字代表檔案的 POSIX 權限。在「終端機」中檢視權限時,可能會看到這樣的表示方式。每個數字介於 0 到 7 之間。當你建立檔案時,系統會將預設值(通常檔案為 666,檔案夾為 777)減去 umask 值,藉此判斷新檔案或新檔案夾的權限。例如,若預設的 umask 值為 022,新檔案的權限就是 644,而新檔案夾的權限則是 755。

你可以在多個位置設置 umask,每個位置分別影響不同的 App。若 umask 設定錯誤,你可能會失去檔案存取權限,或將權限授予其他使用者。如需更多資訊,請參閱 chmod(1) 說明頁的「MODES」部分。

使用者 App 的 umask

以管理者身分登入,並在「終端機」中輸入以下指令,將 nnn 替換成 umask 值,例如 027 或 002。這個指令會設定該使用者開啟之所有 App 的 umask,包括他們從命令列存取的 App 以及這些 App 建立的新檔案。輸入這個指令後,可能需要重新啟動 Mac。

sudo launchctl config user umask nnn

如果「終端機」回應「Could not write configuration: No such file or directory」(無法寫入配置:沒有類似的檔案或目錄),請確認你的啟動磁碟有一個位在 /private/var/db/com.apple.xpc.launchd/config 的檔案夾。如果缺少 config 檔案夾,請輸入以下指令建立檔案夾,然後再試一次:

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

系統程序的 umask

以管理者身分登入,並在「終端機」中輸入以下指令,將 nnn 替換成 umask 值,例如 027 或 002。這個指令會設定該使用者在系統環境中執行之所有服務程式的 umask。極力建議你不要這樣做,因為它會變更該系統所使用檔案的權限。權限設定過於嚴格可能讓軟體無法運作,過於寬鬆會有安全疑慮。輸入這個指令後,可能需要重新啟動 Mac。

sudo launchctl config system umask nnn

如果「終端機」回應「Could not write configuration: No such file or directory」(無法寫入配置:沒有類似的檔案或目錄),請確認你的啟動磁碟有一個位在 /private/var/db/com.apple.xpc.launchd/config 的檔案夾。如果缺少 config 檔案夾,請輸入以下指令建立檔案夾,然後再試一次:

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

更多內容

如需深入了解設定 umask 的方式,請在「終端機」中輸入 man launchctl

發佈日期: