systemd 系統管理器版本 249

經過三個月的開發,系統管理器systemd 249發布了,新版本提供了以JSON格式定義使用者/群組的能力,穩定了Journal協議,簡化了載入連續磁碟分割的組織,增加了將BPF 程式連結到服務,並在已安裝的分區中實現標識符映射用戶,提供了大量新的網路設定和啟動容器的機會。

主要變化:

  • Journal 協定已記錄在案,可以在客戶端中取代 syslog 協定用於日誌記錄的本機傳送。 Journal協議已經實現很長時間了,並且已經在一些客戶端庫中使用,但是,它的官方支援才剛剛宣布。
  • Userdb 和 nss-systemd 支援讀取位於 /etc/userdb/、/run/userdb/、/run/host/userdb/ 和 /usr/lib/userdb/ 目錄中的其他使用者定義(以 JSON 格式指定)。值得注意的是,此功能將為在系統中建立使用者提供額外的機制,使其與 NSS 和 /etc/shadow 完全整合。對使用者/群組條目的 JSON 支援還允許將各種資源管理和其他設定附加到 pam_systemd 和 systemd-logind 識別的使用者。
  • nss-systemd 使用來自 systemd-homed 的雜湊密碼來綜合 /etc/shadow 中的使用者/群組條目。
  • 已經實現了一種機制,該機制使用相互替換的磁碟分區來簡化更新的組織(一個分區是活動分區,第二個分區是備用分區 - 更新被複製到備用分區,然後變為活動分區)。如果磁碟映像中有兩個 root 或 /usr 分割區,且 udev 未偵測到 'root=' 參數的存在,或正在處理透過 systemd-nspawn 和 systemd 中的「--image」選項指定的磁碟映像-dissect 實用程序,可以透過比較GPT 標籤來計算引導分區(假設GPT 標籤提到分區內容的版本號,並且systemd 將選擇具有最新更改的分區)。
  • 服務文件中新增了 BPFProgram 設定,您可以使用該設定將 BPF 程式載入到核心中,並透過綁定到特定的 systemd 服務來管理它們。
  • Systemd-fstab-generator 和 systemd-repart 現在能夠從只有 /usr 分割區而沒有根分割區的磁碟啟動(根分割區將在第一次啟動時由 systemd-repart 產生)。
  • 在systemd-nspawn中,「--private-user-chown」選項已被更通用的「--private-user-ownership」選項取代,該選項可以接受「chown」值,相當於「--」 private- user-chown”,“off”停用舊設置,“map”在已安裝的檔案系統上映射用戶ID,“auto”選擇“map”(如果核心(5.12+)中存在所需的功能或回退)否則遞歸呼叫“chown”。使用映射,您可以將已安裝的外部分割區上的一個使用者的檔案對應到目前系統上的另一個用戶,從而更輕鬆地在不同使用者之間共用檔案。在 systemd-homed 便攜式主目錄機制中,映射將允許使用者將其主目錄移至外部介質,並在不具有相同使用者 ID 佈局的不同電腦上使用它們。
  • 在systemd-nspawn中,「--private-user」選項現在可以在設定使用者命名空間時使用值「identity」來直接反映使用者ID,即容器中的UID 0和UID 1將反映在主機端的UID 0和UID 1中,以減少攻擊向量(容器將僅接收其命名空間中的進程能力)。
  • systemd-nspawn 中新增了「--bind-user」選項,用於將主機環境中存在的使用者帳戶轉送至容器(將主目錄掛載到容器中,新增使用者/群組條目,以及 UID 對應)在容器和主機環境之間執行)。
  • 新增了向 systemd-ask-password 和 systemd-sysusers 請求設定密碼的支援(passwd.hashed-password)。和 passwd.明文密碼。 )使用 systemd 247 中引入的機制,使用單獨目錄中的中間檔案安全地傳輸敏感資料。預設情況下,從具有 PID1 的進程接受憑證,該進程會從容器管理管理員接收憑證,該管理員允許您在首次啟動時配置使用者密碼。
  • systemd-firstboot 新增了使用敏感資料安全傳輸機制來查詢各種系統參數的支持,可用於在首次啟動 /etc 目錄中沒有必要設定的容器映像時初始化系統設定。
  • PID 1 進程可確保在開機期間顯示單元名稱和描述。您可以透過 system.conf 中的「StatusUnitFormat=combined」參數或核心命令列選項「systemd.status-unit-format=combined」來變更輸出
  • 「--image」選項已新增至 systemd-machine-id-setup 和 systemd-repart 公用程式中,用於將具有電腦 id 的檔案傳輸到磁碟映像或增加磁碟映像的大小。
  • systemd-repart 實用程式使用的分區設定檔中新增了 MakeDirectories 參數,可用於在反映到分區表中之前在建立的檔案系統中建立任意目錄(例如,為掛載點建立目錄)根分區,以便您可以立即以唯讀模式掛載該分割區)。為了控制已建立的節中的 GPT 標誌,新增了對應的 Flags、ReadOnly 和 NoAuto 參數。 CopyBlocks 參數的值為“auto”,以便在複製區塊時自動選擇目前引導分割區作為來源(例如,當您需要將自己的根分割區傳輸到新媒體時)。
  • GPT 實作了「grow-file-system」標誌,該標誌類似於 x-systemd.growfs 掛載選項,並且如果 FS 大小小於分區,則可以自動將 FS 大小擴展到區塊裝置的邊界。此標誌適用於 Ext3、XFS 和 Btrfs 檔案系統,並且可以套用於自動偵測到的分割區。預設情況下,對於透過 systemd-repart 自動建立的可寫入分區啟用該標誌。新增了 GrowFileSystem 選項來設定 systemd-repart 中的標誌。
  • /etc/os-release 檔案提供對新 IMAGE_VERSION 和 IMAGE_ID 變數的支持,以確定原子更新的映像的版本和 ID。建議使用 %M 和 %A 說明符將指定值替換到各種命令中。
  • 「--extension」參數已新增至 portablectl 公用程式中,以啟動可移植系統擴充映像(例如,透過它們,您可以將映像與整合到根分割區中的附加服務一起分發)。
  • systemd-coredump 實用程式在生成進程的核心轉儲時提供 ELF build-id 信息的提取,如果構建了有關 deb 或 rpm 包的名稱和版本的信息,這對於確定失敗進程屬於哪個包非常有用到ELF 文件中。
  • udev 中新增了適用於 FireWire (IEEE 1394) 裝置的新硬體基礎。
  • 在 udev 中,「net_id」網路介面名稱選擇方案中新增了三項更改,這些更改違反了向後相容性:介面名稱中的錯誤字元現在被替換為「_」; s390系統的PCI熱插拔插槽名稱以十六進位形式處理;允許使用最多 65535 個內建 PCI 裝置(之前超過 16383 個的數字被封鎖)。
  • systemd-resolved 將「home.arpa」網域新增至 NTA(負信任錨)清單中,建議用於本機家庭網絡,但未在 DNSSEC 中使用。
  • CPUAffinity 參數提供「%」說明符的解析。
  • ManageForeignRoutingPolicyRules 參數已新增至 .network 檔案中,可用於排除 systemd-networkd 處理第三方路由策略。
  • requiredFamilyForOnline 參數已新增至「.network」檔案中,以確定是否存在 IPv4 或 IPv6 位址,作為網路介面處於「線上」狀態的標誌。 Networkctl 提供每個連結的「線上」狀態的顯示。
  • 在 .network 檔案中新增了 OutgoingInterface 參數,以在配置網橋時定義傳出介面。
  • 群組參數已新增至「.network」檔案中,可讓您為「[NextHop]」部分中的項目配置多路徑組。
  • 在 systemd-network-wait-online 中新增了選項“-4”和“-6”,以將連線等待限制為僅 IPv4 或 IPv6。
  • RelayTarget 參數已新增至 DHCP 伺服器設定中,該參數可將伺服器切換至 DHCP Ralay 模式。對於 DHCP 中繼的其他配置,提供了 RelayAgentCircuitId 和 RelayAgentRemoteId 選項。
  • ServerAddress 參數已新增至 DHCP 伺服器中,可讓您明確設定伺服器 IP 位址(否則將自動選擇該位址)。
  • DHCP 伺服器實作 [DHCPServerStaticLease] 部分,它允許您設定靜態位址綁定(DHCP 租用),指定固定 IP 綁定到 MAC 位址,反之亦然。
  • RestrictAddressFamilies 設定支援「none」值,這表示該服務將無法存取任何位址族的套接字。
  • 在「.network」檔案的[Address]、[DHCPv6PrefixDelegation]和[IPv6Prefix]部分中,實作了對RouteMetric設定的支持,它允許您指定為指定位址建立的路由前綴的度量。
  • nss-myhostname 和 systemd-resolved 提供 DNS 記錄與具有特殊名稱「_outbound」的主機位址的綜合,始終為其頒發本機 IP,根據用於傳出連線的預設路由進行選擇。
  • 在 .network 檔案中的「[DHCPv4]」部分中,新增了預設活動的 RoutesToNTP 設定,該設定需要透過目前網路介面新增單獨的路由,以存取使用 DHCP 為該介面取得的 NTP 伺服器位址(類似於 DNS ,此設定可讓您保證到NTP 伺服器的流量將透過接收該位址的介面進行路由)。
  • 新增了 SocketBindAllow 和 SocketBindDeny 設定來控制對綁定到目前服務的套接字的存取。
  • 對於單元文件,已經實現了名為 ConditionFirmware 的條件設置,它允許您創建評估韌體功能的檢查,例如在 UEFI 和 device.tree 系統上的工作,以及檢查與某些設備樹功能的兼容性。
  • 實作了 ConditionOSRelease 選項來檢查 /etc/os-release 檔案中的欄位。定義檢查欄位值的條件時,可以使用運算子「=」、「!=」、「<」、「<=」、「>=」、「>」。
  • 例如,在 hostnamectl 實用程式中,「get-xyz」和「set-xyz」等指令不再使用「get」和「set」前綴,而不是「hostnamectl get-hostname」和「hostnamectl “set-hostname」您可以使用命令“hostnamectl主機名稱”,其中的值的分配是透過指定附加參數(“hostnamectl主機名稱值”)來確定的。保留了對舊命令的支援以確保相容性。
  • systemd-detect-virt 實用程式和 ConditionVirtualization 設定可確保正確識別 Amazon EC2 環境。
  • 單元檔案中的 LogLevelMax 設定現在不僅適用於服務產生的日誌訊息,也適用於提及該服務的 PID 1 流程訊息。
  • 提供了在 systemd 啟動 EFI PE 檔案中包含 SBAT(UEFI 安全啟動進階目標)資料的能力。
  • /etc/crypttab 實現了新選項「headless」和「password-echo」 - 第一個選項可讓您跳過與互動式提示使用者輸入密碼和PIN 相關的所有操作,第二個選項可讓您設定顯示密碼輸入的方法(不顯示任何內容,逐個字元顯示並顯示星號)。出於類似目的,「--echo」選項已新增至 systemd-ask-password 中。
  • systemd-cryptenroll、systemd-cryptsetup 和 systemd-homed 擴展了對使用 FIDO2 令牌解鎖加密 LUKS2 分區的支援。新增了新選項「--fido2-with-user-presence」、「--fido2-with-user-verification」和「-fido2-with-client-pin」來控制使用者物理存在驗證、驗證以及是否需要進入PIN 碼。
  • 在 systemd-journal-gatewayd 中加入了「--user」、「--system」、「--merge」和「--file」選項,類似於journalctl選項。
  • 除了透過 OnFailure 和 Slice 參數指定的單元之間的直接依賴關係之外,還添加了對 OnFailureOf 和 SliceOf 隱式反向依賴關係的支持,這對於確定切片中包含的所有單元等很有用。
  • 在單元之間新增了新類型的依賴關係:OnSuccess 和 OnSuccessOf(與 OnFailure 相反,在成功完成時呼叫); PropagatesStopTo 和 StopPropagatedFrom(允許您將一個單元的停止事件傳播到另一個單元); Upholds 和 UpheldBy(重新啟動的替代方案)。
  • systemd-ask-password 實用程式現在有一個「--emoji」選項來控制密碼輸入行中掛鎖符號 (🔐) 的外觀。
  • 新增了有關 systemd 來源樹結構的文件。
  • 對於單元,新增了 MemoryAvailable 屬性,顯示單元在達到透過 MemoryMax、MemoryHigh 或 MemoryAvailable 參數設定的限制之前還剩餘多少記憶體。

來源: opennet.ru

添加評論