引入了 systemd-homed 來管理便攜式主目錄

倫納特·珀特林 引進 (PDF)在 All Systems Go 2019 大會上,系統管理員 systemd 的新元件 - 系統宿主,旨在使用戶主目錄可移植並與系統設定分開。 該專案的主要想法是為用戶資料創建自給自足的環境,可以在不同系統之間傳輸,而無需擔心標識符同步和機密性。

主目錄環境以已安裝映像檔的形式出現,其中的資料已加密。 使用者憑證與主目錄而不是系統設定相關聯 - 而不是 /etc/passwd 和 /etc/shadow 輪廓 JSON格式,儲存於~/.identity目錄下。 設定檔包含使用者工作所需的參數,包括有關名稱、密碼雜湊、加密金鑰、配額和分配資源的資訊。 此設定檔可以透過儲存在外部 Yubikey 令牌上的數位簽章進行認證。

參數還可能包括附加信息,例如SSH 密鑰、生物識別身份驗證數據、圖像、電子郵件、地址、時區、語言、進程和內存限制、附加安裝標誌(nodev、noexec、nosuid)、有關使用的用戶IMAP /SMTP 伺服器的資訊、啟用家長監護、備份選項等的資訊。 提供API來請求和解析參數 瓦林克.

UID/GID 分配和處理是在主目錄所連接的每個本機系統上動態完成的。 使用所提出的系統,使用者可以隨身攜帶他的主目錄,例如在閃存驅動器上,並在任何計算機上獲得工作環境,而無需在其上明確創建帳戶(存在帶有主目錄圖像的文件)導致用戶的綜合)。

建議使用 LUKS2 子系統進行資料加密,但 systemd-homed 也允許使用其他後端,例如用於未加密的目錄、Btrfs、Fscrypt 和 CIFS 網路分割區。 為了管理可移植目錄,建議使用 homectl 實用程序,它允許您建立和啟動主目錄的映像,以及更改其大小和設定密碼。

在系統層面,工作由以下組件保證:

  • systemd-homed.service - 管理主目錄並將 JSON 記錄直接嵌入主目錄映像中;
  • pam_systemd - 當使用者登入時處理來自 JSON 設定檔的參數,並將它們套用到啟動的會話的上下文中(執行身份驗證、配置環境變數等);
  • systemd-logind.service - 當使用者登入時處理來自 JSON 設定檔的參數,套用各種資源管理設定並設定限制;
  • nss-systemd - glibc 的 NSS 模組,基於 JSON 設定檔合成經典的 NSS 記錄,提供與 UNIX 使用者處理 API (/etc/password) 的向後相容性;
  • PID 1 - 動態建立使用者(透過使用 DynamicUser 指令以單位進行類比合成)並使它們對系統的其餘部分可見;
  • systemd-userdbd.service - 將 UNIX/glibc NSS 帳戶轉換為 JSON 記錄,並提供統一的 Varlink API 用於查詢和迭代記錄。

所提出的系統的優點包括以唯讀模式掛載 /etc 目錄時管理使用者的能力、無需在系統之間同步識別碼 (UID/GID)、使用者獨立於特定電腦、阻止使用者資料在睡眠模式下,使用加密和現代身份驗證方法。 Systemd-homed 計劃在版本 244 或 245 中納入 systemd 主流。

JSON 使用者設定檔範例:

「自動登入」:正確,
「捆綁」 : {
«15e19cd24e004b949ddaac60c74aa165» : {
“檔案系統類型”:“ext4”
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
「gid」:60232,
"homeDirectory" : "/home/test",
"imagePath" : "/home/test.home",
“luksCipher”:“aes”,
“luksCipherMode”:“xts-plain64”,
«luksUUID» : «e63581ba-79fa-4226-b9de-1888393f7573»,
“luksVolumeKeySize”:32,
«partitionUUID» : «41f9ce04-c927-4b74-a981-c669f93eb4dc»,
“存儲”:“盧克斯”,
「uid」:60233
}
},
“處置”:“常規”,
“enforcePasswordPolicy”:假,
「最後更改USec」:1565951024279735,
「成員」 : [
“車輪”
],
「特權」:{
「哈希密碼」:[
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
「簽名」 : [
{
“數據”:“LU/HeVrPZSzi3M3J...==”,
"key" : "-開始公鑰-\nMCowBQADK2VwAy…=\n-結束公鑰-\n"
}
],
“用戶名”:“測試”,
「地位」 : {
«15e19cf24e004b949dfaac60c74aa165» : {
“良好的身份驗證計數器”:16,
「最後的GoodAuthenticationUSec」:1566309343044322,
「rateLimitBeginUSec」:1566309342341723,
“速率限制計數”:1,
“狀態”:“不活動”,
“服務”:“io.systemd.Home”,
“磁碟大小”:161218667776,
「磁碟天花板」:191371729408,
“磁碟層”:5242780,
「本地簽章」:true
}
}

來源: opennet.ru

添加評論