Skip to Content
Building Os映像內使用者

映像內使用者

使用者記錄位於 os.users。它們在映像內建立帳戶; 與 OpenFactory 網站帳戶或組織角色無關。

規範形狀

{ "os": { "users": [ { "username": "deploy", "full_name": "Deployment Operator", "groups": ["sudo"], "shell": "/bin/bash" } ] } }

支援的欄位包括 username、選用的 passwordfull_namegroupsshell,以及 Elster/Vyatta 映像使用的目標特定 level。包含 homecomment 的舊範例不符合規範模型,可能會被忽略。

使用者和群組名稱受限於安全的 Linux 帳戶字元和長度。shell 必須是不含空白或 shell 中繼字元的絕對路徑。

密碼行為

不設定 password 會建立密碼已鎖定的帳戶。對於僅金鑰 SSH、首次開機登錄或部署時身分整合,這是首選的配方狀態。

如果包含明文密碼,它會成為敏感建置輸入,並可能透過儲存的配方、日誌或匯出暴露。不要在配方中使用真實的正式環境憑證。Phone 配方必須在裝置上收集憑證,而不是把它們烘焙進映像。

在停用 SSH 密碼驗證之前,確認已核准的公開金鑰或其他存取方法存在且經過測試。否則,正確強化的映像可能無法進入。

群組與特權

  • sudowheel 可按發行版授予管理權限。
  • docker 通常透過守護程式通訊端授予等效於 root 的控制。
  • kvm 在存在時授予對虛擬化裝置的存取。
  • adm 可能暴露敏感日誌。

把這些當作特權群組,只授予帳戶所需的內容。發行版特定的群組名稱不可移植。

服務帳戶

對於非互動服務帳戶,選擇目標上可用的禁止登入 shell,並省略管理群組。確認產生器和服務單元保留了預期身分; 如果省略 groups,配方預設可能會新增 sudo,因此在適當時提供明確的空群組清單。

驗證

測試真正重要的屬性:

  • 帳戶存在於預期 UID 範圍內;
  • 主群組和附加群組正確;
  • 登入 shell 和密碼鎖定狀態正確;
  • 若在其他地方產生,家目錄和檔案擁有權正確;
  • 未授權的 sudo 和服務存取被拒絕; 以及
  • 已核准的登入或登錄路徑成功。

不要僅從帳戶建立推斷最小特權。