在 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

如果終端機回應「無法寫入設定:沒有此檔案或目錄」,請確保你的啟動磁碟在 /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

如果終端機回應「無法寫入設定:沒有此檔案或目錄」,請確保你的啟動磁碟在 /private/var/db/com.apple.xpc.launchd/config 中有資料夾。如果沒有 config 資料夾,請在輸入以下指令來建立資料夾後再試一次:

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

更多內容

如想深入了解如何設定 umask,請在終端機輸入 man launchctl

發佈日期: