在 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

發佈日期: