
在部署中使用安全代號、Bootstrap 代號和卷宗擁有者權限
安全代號
在安裝 macOS 10.13 或以上版本的 Mac 上,「Apple 檔案系統」(APFS)會改變「檔案保險箱」加密密鑰的產生方式。在 CoreStorage 卷宗上先前版本的 macOS 中,用於「檔案保險箱」加密程序的密鑰是當使用者或機構在 Mac 上開啟「檔案保險箱」時製作的。針對配備 APFS 卷宗的 Mac 電腦,加密密鑰則是在建立使用者、設定首位使用者的密碼期間,或 Mac 使用者的首次登入期間產生的。這種加密密鑰實行方式、產生時間,以及儲存方式皆屬安全代號的部分功能。具體來說,安全代號是封裝版本的密鑰加密密鑰(KEK),由使用者的密碼保護。
在 APFS 上部署「檔案保險箱」時,使用者可以繼續執行以下操作:
使用目前的工具和程序,例如你可使用裝置管理服務儲存的個人復原密鑰(PRK)進行託管
建立和使用指示性復原密鑰(IRK)
延遲啟用「檔案保險箱」,直到使用者登入或登出 Mac
針對安裝 macOS 11 或以上版本的 Mac,在 Mac 上設定首位使用者的初始密碼會讓該使用者獲得安全代號。在部分工作流程中這可能不是理想的結果,因為之前授予第一個安全代號會需要使用者帳號登入。若要避免這種情形發生,請在設定使用者密碼前將 ;DisabledTags;SecureToken
加入程式建立的使用者 AuthenticationAuthority
屬性,如下所示:
sudo dscl . -append /Users/<user name> AuthenticationAuthority ";DisabledTags;SecureToken"
Bootstrap 代號
針對安裝 macOS 10.15 或以上版本的 Mac,你可以使用 Bootstrap 代號來執行將安全代號授予現有使用者帳號以外的操作。在配備 Apple 晶片的 Mac 電腦上,若有 Bootstrap 代號可用且在使用裝置管理服務管理時,你便可將其用於:
監管
裝置管理服務開發者支援
針對安裝 macOS 10.15.4 或以上版本的 Mac,在已啟用安全代號的使用者首次登入時,macOS 會生成 Bootstrap 代號並將其託管至裝置管理服務。你也可以使用 profiles
命令列工具來產生 Bootstrap 代號並交由服務託管(若需要)。
針對安裝 macOS 11 或以上版本的 Mac,你可以使用 Bootstrap 代號來執行將安全代號授予現有使用者帳號以外的操作。在配備 Apple 晶片的 Mac 電腦上,若有 Bootstrap 代號可用且在使用裝置管理服務管理時,你便可將其用來:
授權安裝軟體更新。
在無提示的情況下授權「清除所有內容和設定」裝置管理指令(macOS 12.0.1 或以上版本)。
在初次使用「平台 SSO」登入時新增使用者(macOS 13 或以上版本)。
卷宗擁有者權限
配備 Apple 晶片的 Mac 電腦引進卷宗擁有者權限的概念。機構內容中的卷宗擁有者權限與真正的合法所有權或 Mac 監管鏈無關。取而代之的是,卷宗擁有者權限可以寬鬆地定義為設定 Mac 供其自身以及任何其他使用者使用,藉此首先宣告 Mac 的使用者。你需要是卷宗擁有者才能更改特定 macOS 安裝的啟動安全性規則、授權安裝 macOS 軟體更新和升級、在 Mac 上啟動「清除所有內容和設定」等等。啟動安全性規則定義了可以啟動哪些 macOS 版本的限制,以及如何且是否可以載入或管理第三方核心延伸功能。
透過設定 Mac 以供其使用,首先認領 Mac 的使用者會在配備 Apple 晶片的 Mac 上獲得一個安全代號,並成為第一個卷宗所有者。當 Bootstrap 代號可用且為使用狀態,它也會成為卷宗擁有者並接著將卷宗擁有者權限狀態授予其他帳號,因為擁有者權限會將安全代號授予帳號。因為第一個獲得安全代號和 Bootstrap 代號的使用者都會成為卷宗擁有者,以及 Bootstrap 代號能向其他使用者提供安全代號(因此也是卷宗擁有者權限狀態),所以卷宗擁有者權限在機構中無須受到積極管理或操縱。以前管理和授予安全代號的考量事項通常也應與卷宗擁有者權限狀態保持一致。
可以是卷宗擁有者而不是管理員,但部分作業需要對兩者進行所有權檢查。例如,修改啟動安全設定需要同時是管理員和卷宗擁有者,而授權軟體更新是由標準使用者允許的,並且只需要所有權。
若要在裝有 Apple 晶片的 Mac 電腦上檢視卷宗擁有者的最新列表,你可以執行以下指令:
sudo diskutil apfs listUsers /
diskutil
指令輸出中列出的「本機 Open Directory 使用者」類型的 GUID 映射回 Open Directory 中用戶記錄的GeneratedUID
。若要透過 GeneratedUID
,請使用下列指令:
dscl . -search /Users GeneratedUID <GUID>
你也可以使用下列指令一起查看用使用者名稱和 GUID:
sudo fdesetup list -extended
擁有者權限會由「安全隔離區」中受保護的加密備份。如需更多資訊,請參閱:
命令列工具使用
命令列工具可用於管理 Bootstrap 代號和安全代號。在服務告知 Mac 其支援功能後,macOS 通常會在 macOS 設定程序期間產生 Bootstrap 代號並將其託管到裝置管理服務。然而,你也可以在已部署的 Mac 上產生 Bootstrap 代號。針對安裝 macOS 10.15.4 或以上版本的 Mac,任何已啟用安全代號的使用者初次登入時,macOS 會產生 Bootstrap 代號並交由服務託管(如果服務支援此功能)。這麼做可減少設定裝置後使用 profiles
命令列工具來產生 Bootstrap 代號並交由服務託管的必要性。
profiles
命令列工具有多個選項可與 Bootstrap 代號互動:
sudo profiles install -type bootstraptoken
:此指令會產生新的 Bootstrap 代號並交由裝置管理服務託管。此指令需要現有的安全代號管理員資訊以產生最初的 Bootstrap 代號,而且服務需要支援此功能。sudo profiles remove -type bootstraptoken
:移除 Mac 和裝置管理服務上的現有 Bootstrap 代號。sudo profiles status -type bootstraptoken
:回報裝置管理服務是否支援 Bootstrap 代號功能,以及 Mac 上的 Bootstrap 代號目前狀態為何。sudo profiles validate -type bootstraptoken
:回報裝置管理服務是否支援 Bootstrap 代號功能,以及 Mac 上的 Bootstrap 代號目前狀態為何。
sysadminctl 命令列工具
sysadminctl
命令列工具可用來專門修改 Mac 電腦上使用者帳號的安全代號狀態。執行時需要謹慎,並且只在需要時執行。使用 sysadminctl
更改使用者的安全代號狀態一律需要目前已啟用安全代號的管理員之使用者名稱和密碼,無論是以互動方式執行或透過指令上的適當旗標。sysadminctl
和「系統設定」(macOS 13 或以上版本)或「系統偏好設定」(macOS 12.0.1 或較早版本)都會防止刪除 Mac 上的最後一個管理員或已啟用安全代號的使用者。如果使用 sysadminctl
撰寫建立其他本機使用者的指令碼,若要為這些使用者啟用安全代號,必須提供目前啟用安全代號的管理員憑證(透過互動選項,或直接使用含有 -adminUser
和 -adminPassword
旗標的 sysadminctl
)。
針對安裝 macOS 11 或以上版本的 Mac,若 macOS 在建立安全代號時未將其授予使用者,而且若可從裝置管理服務取得 Bootstrap 代號,macOS 會在本機使用者登入時將安全代號授予對方。使用 sysadminctl -h
以取得其他使用指示。