Lennart Poettering提出 在All Systems Go 2019大會上,systemd系統管理器的一個新組件, “歸巢” 這 旨在確保用戶主目錄的可移植性 並將其與系統配置分開。
該項目的主要思想是為用戶數據創建自主環境 可以在不同系統之間進行傳輸,而不必擔心標識符和隱私的同步。 主目錄環境以安裝的映像文件的形式提供,其數據已加密。
用戶憑據鏈接到主目錄, 否系統配置; 代替/ etc / passwd和/ etc / shadow, 使用JSON格式的配置文件, 存儲在〜/ .identity目錄中。
該配置文件包含必要的參數 為用戶工作, 包括有關名稱,密碼哈希,加密密鑰的信息,提供的配額和資源。 可以使用存儲在外部Yubikey令牌中的數字簽名對配置文件進行身份驗證。
它管理的每個目錄都封裝了數據存儲和用戶的用戶記錄,因此它全面描述了用戶的帳戶,因此可以自然地在系統之間進行移植,而無需其他外部元數據。
該公告還強調:
參數還可以包含其他信息,例如SSH的密鑰,用於生物特徵認證的數據,圖像,電子郵件,地址,時區,語言,進程和內存數量的限制,其他安裝標誌(nodev,noexec,nosuid),有關適用的IMAP服務器用戶信息的數據/ SMTP,家長控制啟用信息,備份選項等。
提供Varlink API來查詢和分析參數。
在附加了主目錄的每個本地系統上,都會動態分配和處理UID / GID。
使用建議的系統,用戶可以保留其主目錄。例如,在閃存驅動器上使用l並在沒有顯式創建帳戶的情況下在任何計算機上獲得工作環境(存在帶有主目錄圖像的文件會導致用戶合成)。
建議使用LUKS2子系統進行數據加密,但是systemd-homed也允許您使用其他後端,例如用於未加密的目錄,Btrfs,Fscrypt和CIFS網絡分區。
為了管理可移植目錄,建議使用homectl實用程序,該實用程序允許您創建和激活主目錄的映像,以及更改其大小和設置密碼。
在系統級別, 這項工作由以下組件提供:
- systemd-homed.service: 管理主目錄,並將JSON記錄直接嵌入主目錄圖像。
- pam_systemd: 用戶登錄時處理JSON概要文件參數,並在觸發的會話的上下文中應用它們(執行身份驗證,設置環境變量等)。
- systemd-logind.service: 當用戶登錄時處理JSON配置文件的參數,應用各種資源管理設置並設置限制。
- nss-systemd: glibc的NSS模塊基於JSON概要文件綜合了經典的NSS條目,為用戶(/ etc / password)處理提供了UNIX API支持。
- PID 1: 動態創建用戶(類似於以DynamicUser指令為單位進行合成),並使用戶對系統的其餘部分可見。
- systemd-userdbd.service: 將UNIX / glibc NSS帳戶轉換為JSON記錄,並提供統一的Varlink API來查詢和列出記錄。
提議的系統的優點包括通過以只讀模式掛載/ etc目錄來管理用戶的能力,無需在系統之間同步標識符(UID / GID),用戶與特定計算機的獨立性,鎖定使用加密和現代身份驗證方法在睡眠模式下訪問用戶數據。
最後重要的是要提到 計劃包括此新組件 “歸巢” 在systemd 244或245的主要版本中。
如果您想進一步了解此組件,可以查閱以下pdf文檔。
我怕這個。
來吧,如果您丟失或竊取了提及的閃存驅動器及其存儲的數據量,那麼您幾乎可以為自己所煩惱。
由於種種原因,這個主意在我看來是完全荒謬的。 他習慣改變我認為是行得通的事情的習慣,我懷疑看到這些人的歷史會改善安全性。
幸運的是,我現在正在使用Artix,並且擺脫了所有這些廢話,儘管我不知道免費的系統發行版可以抵抗多長時間。
我同意您的說法,從我的觀點來看,這個主意不錯,但是缺少安全性部分(某種類型的加密)
systemd很爛!