systemd 系統管理器版本 250

經過五個月的開發,系統管理器 systemd 250 發布了。新版本引入了以加密形式存儲憑證的能力,使用數位簽名實現了自動檢測到的 GPT 分區的驗證,改進了有關延遲原因的信息。啟動服務,並添加了限制服務存取某些檔案系統和網路介面的選項,提供了使用dm-integrity 模組進行分區完整性監控的支持,並添加了對sd-boot 自動更新的支援。

主要變化:

  • 新增了對加密和經過身份驗證的憑證的支持,這對於安全儲存 SSL 金鑰和存取密碼等敏感資料非常有用。僅在必要時並且與本機安裝或裝置相關時才執行憑證解密。資料使用對稱加密演算法自動加密,其金鑰可以位於檔案系統、TPM2 晶片中或使用組合方案。當服務啟動時,憑證會自動解密並以其正常形式可供服務使用。為了使用加密憑證,新增了「systemd-creds」實用程序,並為服務建議了 LoadCredentialEncrypted 和 SetCredentialEncrypted 設定。
  • sd-stub 是允許 EFI 韌體載入 Linux 核心的 EFI 可執行文件,現在支援使用 LINUX_EFI_INITRD_MEDIA_GUID EFI 協定啟動核心。 sd-stub 還添加了將憑證和 sysext 檔案打包到 cpio 存檔中並將該存檔與 initrd 一起傳輸到核心的功能(其他檔案放置在 /.extra/ 目錄中)。此功能可讓您使用可驗證的、不可變的 initrd 環境,並輔以 sysexts 和加密的身份驗證資料。
  • 可發現分割區規範已顯著擴展,提供了使用 GPT(GUID 分割區表)識別、安裝和啟動系統分割區的工具。與先前的版本相比,該規範現在支援大多數架構的根分區和 /usr 分區,包括不使用 UEFI 的平台。

    Discoverable Partitions 也增加了對分割區的支持,其完整性由 dm-verity 模組使用 PKCS#7 數位簽章進行驗證,更輕鬆地建立經過完全驗證的磁碟映像。驗證支援整合到操作磁碟映像的各種實用程式中,包括 systemd-nspawn、systemd-sysext、systemd-dissect、RootImage 服務、systemd-tmpfiles 和 systemd-sysusers。

  • 對於需要很長時間才能啟動或停止的單元,除了顯示動畫進度條之外,還可以顯示狀態信息,讓您了解服務此刻到底發生了什麼以及系統管理器正在執行哪個服務目前正在等待完成。
  • 在 /etc/systemd/system.conf 和 /etc/systemd/user.conf 中新增了 DefaultOOMScoreAdjust 參數,該參數可讓您調整記憶體不足的 OOM-killer 閾值,適用於 systemd 為系統和使用者啟動的進程。預設情況下,系統服務的權重高於使用者服務的權重,即當記憶體不足時,用戶服務終止的機率高於系統服務終止的機率。
  • 新增了 RestrictFileSystems 設置,該設置允許您限制服務對某些類型的檔案系統的存取。若要查看可用的檔案系統類型,可以使用「systemd-analyze filesystems」命令。以此類推,RestrictNetworkInterfaces選項已經實現,它允許您限制對某些網路介面的存取。此實作基於 BPF LSM 模組,該模組限制一組程序對核心物件的存取。
  • 新增了新的/etc/integritytab 設定檔和systemd-integritysetup 實用程序,用於配置dm-integrity 模組以控製磁區層級的資料完整性,例如,確保加密資料的不變性(經過驗證的加密,確保資料塊具有沒有以迂迴的方式修改)。 /etc/integritytab 檔案的格式與 /etc/crypttab 和 /etc/veritytab 檔案類似,只不過使用 dm-integrity 而不是 dm-crypt 和 dm-verity。
  • 新增了新的單元檔案 systemd-boot-update.service,當啟動並安裝 sd-boot 引導程式時,systemd 將自動更新 sd-boot 引導程式的版本,使引導程式程式碼始終保持最新。 sd-boot 本身現在預設建置為支援 SBAT(UEFI 安全啟動進階目標)機制,該機制解決了 UEFI 安全啟動的憑證撤銷問題。此外,sd-boot 還提供了解析 Microsoft Windows 啟動設定的功能,以正確產生 Windows 啟動分割區的名稱並顯示 Windows 版本。

    sd-boot 還提供在建置時定義配色方案的能力。在啟動過程中,新增了對透過按下「r」鍵更改螢幕解析度的支援。新增熱鍵“f”進入韌體配置介面。新增了根據上次啟動時選擇的選單項目自動啟動系統的模式。新增了自動載入位於 ESP(EFI 系統分割區)部分的 /EFI/systemd/drivers/ 目錄中的 EFI 驅動程式的功能。

  • 其中包含一個新的單元檔案factory-reset.target,該檔案在systemd-logind中以與重新啟動、關機、掛起和休眠操作類似的方式進行處理,並用於建立執行恢復出廠設定的處理程序。
  • 除了 127.0.0.54 之外,systemd 解析的程序現在還在 127.0.0.53 處建立了一個額外的偵聽套接字。到達 127.0.0.54 的請求始終會重定向到上游 DNS 伺服器,並且不會在本地進行處理。
  • 提供了使用 OpenSSL 函式庫而不是 libgcrypt 建置 systemd-importd 和 systemd-resolved 的能力。
  • 增加了對龍芯處理器中使用的LoongArch架構的初步支援。
  • systemd-gpt-auto-generator 提供自動配置由 LUKS2 子系統加密的系統定義交換分割區的功能。
  • systemd-nspawn、systemd-dissect 和類似實用程式中使用的 GPT 影像解析程式碼實現了為其他架構解碼影像的能力,允許使用 systemd-nspawn 在其他架構的模擬器上運行映像。
  • 檢查磁碟映像時,systemd-dissect 現在會顯示有關分割區用途的信息,例如是否適合透過 UEFI 啟動或在容器中運行。
  • 「SYSEXT_SCOPE」欄位已新增至 system-extension.d/ 檔案中,可讓您指示系統映像的範圍 - “initrd”、“system”或“portable”。
  • os-release 檔案中新增了「PORTABLE_PREFIXES」字段,可在便攜式映像中使用此欄位來確定支援的單元檔案前綴。
  • systemd-logind 引入了新設定 HandlePowerKeyLongPress、HandleRebootKeyLongPress、HandleSuspendKeyLongPress 和 HandleHibernateKeyLongPress,可用於確定按住某些按鍵超過 5 秒時會發生什麼情況(例如,快速按下 Suspend 鍵可配置為進入待機鍵可配置為進入待機模式) 按住時,它將進入睡眠狀態)。
  • 對於單元,實現了 StartupAllowedCPUs 和 StartupAllowedMemoryNodes 設置,這與沒有 Startup 前綴的類似設置不同,因為它們僅在啟動和關閉階段應用,這允許您在啟動期間設置其他資源限制。
  • 新增了[條件|斷言][記憶體|CPU|IO]壓力檢查,如果PSI機制檢測到系統中記憶體、CPU和I/O負載過重,則允許跳過或失敗單元啟動。
  • /dev 分割區的預設最大 inode 限制已從 64k 增加到 1M,/tmp 分割區的預設最大 inode 限制已從 400k 增加到 1M。
  • 已為服務提出了 ExecSearchPath 設置,這使得可以更改搜尋透過 ExecStart 等設定啟動的可執行檔的路徑。
  • 新增了 RuntimeRandomizedExtraSec 設置,該設置可讓您將隨機偏差引入 RuntimeMaxSec 逾時,從而限制單元的執行時間。
  • RuntimeDirectory、StateDirectory、CacheDirectory 和 LogsDirectory 設定的語法已擴展,其中透過指定以冒號分隔的附加值,您現在可以組織建立到給定目錄的符號鏈接,以便組織沿著多個路徑的存取。
  • 對於服務,提供 TTYRows 和 TTYColumns 設定來設定 TTY 裝置中的行數和列數。
  • 新增了 ExitType 設置,該設置允許您更改確定服務結束的邏輯。預設情況下,systemd僅監視主進程的死亡,但如果設定了ExitType=cgroup,則系統管理員將等待cgroup中的最後一個進程完成。
  • systemd-cryptsetup 對 TPM2/FIDO2/PKCS11 支援的實作現在也建構為 cryptsetup 插件,允許使用正常的 cryptsetup 命令來解鎖加密分區。
  • systemd-cryptsetup/systemd-cryptsetup 中的 TPM2 處理程序除了 ECC 金鑰之外還添加了對 RSA 主金鑰的支持,以提高與非 ECC 晶片的兼容性。
  • 令牌逾時選項已新增至 /etc/crypttab,它允許您定義等待 PKCS#11/FIDO2 令牌連接的最長時間,之後系統將提示您輸入密碼或恢復金鑰。
  • systemd-timesyncd 實現了 SaveIntervalSec 設置,它允許您定期將當前系統時間保存到磁碟,例如,在沒有 RTC 的系統上實現單調時鐘。
  • systemd-analyze 實用程式中新增了選項:「--image」和「--root」用於檢查給定映像或根目錄內的單元文件,「--recursive-errors」用於在出現錯誤時考慮依賴單元檢測到,“--offline”用於單獨檢查保存到磁碟的單元文件,“--json”用於以JSON 格式輸出,“--quiet”用於禁用不重要的消息,“--profile”用於綁定到便攜式設定檔。還添加了inspect-elf命令,用於解析ELF格式的核心文件,以及檢查具有給定單元名稱的單元文件的能力,無論該名稱是否與文件名稱匹配。
  • systemd-networkd 擴展了對控制器區域網路 (CAN) 匯流排的支援。新增了控制 CAN 模式的設定:Loopback、OneShot、PresumeAck 和 ClassicDataLengthCode。在 .network 檔案的 [CAN] 部分加入了 TimeQuantaNSec、PropagationSegment、PhaseBufferSegment1、PhaseBufferSegment2、SyncJumpWidth、DataTimeQuantaNSec、DataPropagationSegment、DataPhaseBufferSegment1、DataTimeQuantaNSec、DataPropagationSegment、DataPhaseBufferSegment2、DataTimeQuantaNSec、DataPropagationSegment、DataPhaseBufferSegmentXNUMX、DataTimeQuantaNSec、DataPropagationSegment、DataPhaseBufferSegmentXNUMX、DataPhaseBufferSegment.
  • Systemd-networkd 為 DHCPv4 用戶端新增了一個 Label 選項,可讓您設定在設定 IPv4 位址時所使用的位址標籤。
  • 「ethtool」的 systemd-udevd 實現了對特殊「max」值的支持,這些值將緩衝區大小設為硬體支援的最大值。
  • 在 systemd-udevd 的 .link 檔案中,您現在可以設定用於組合網路介面卡和連接硬體處理程序(卸載)的各種參數。
  • systemd-networkd 預設提供新的 .network 檔案: 80-container-vb.network 來定義使用「--network-bridge」或「--network-zone」選項執行 systemd-nspawn 時所建立的網橋; 80-6rd-tunnel.network 用於定義在接收具有 6RD 選項的 DHCP 回應時自動建立的隧道。
  • Systemd-networkd 和 systemd-udevd 新增了對 InfiniBand 介面上的 IP 轉送的支持,其中「[IPoIB]」部分已新增至 systemd.netdev 檔案中,並且「ipoib」值的處理已在 Kind 中實現環境。
  • systemd-networkd 為AllowedIPs 參數中指定的位址提供自動路由配置,可透過[WireGuard] 和[WireGuardPeer] 部分中的RouteTable 和RouteMetric 參數進行配置。
  • systemd-networkd 為 batadv 和網橋介面自動產生不變的 MAC 位址。若要停用此行為,您可以在 .netdev 檔案中指定 MACAddress=none。
  • WakeOnLanPassword 設定已新增至 .link 檔案的「[Link]」部分,以確定 WoL 在「SecureOn」模式下執行時的密碼。
  • 在 .network 檔案的「[CAKE]」部分新增了 AutoRateIngress、CompensationMode、FlowIsolationMode、NAT、MPUBytes、PriorityQueueingPreset、FirewallMark、Wash、SplitGSO 和 UseRawPacketSize 設定,以定義 CAKE(佇列應用程式管理機制功能增強功能的一般機制) 。
  • 在 .network 檔案的「[Network]」部分新增了 IgnoreCarrierLoss 設置,讓您確定在對載波訊號遺失做出反應之前等待多長時間。
  • Systemd-nspawn、homectl、machinectl 和 systemd-run 擴展了「--setenv」參數的語法 - 如果僅指定變數名稱(不含「=」),則將從相應的環境變數中取得值(例如,當指定「--setenv=FOO」時,該值將從$FOO 環境變數中獲取,並在容器中設定的同名環境變數中使用)。
  • systemd-nspawn 新增了一個「--suppress-sync」選項,用於在建立容器時停用sync()/fsync()/fdatasync()系統呼叫(當速度是優先考慮的並且在失敗時保留建置工件不是有用的)很重要,因為它們可以隨時重新創建)。
  • 新增了新的hwdb資料庫,其中包括各種類型的訊號分析儀(萬用電表、協定分析儀、示波器等)。 hwdb 中有關攝影機的資訊已擴展為包含有關攝影機類型(常規或紅外線)和鏡頭位置(前置或後置)資訊的欄位。
  • 為 Xen 中使用的網路前端設備啟用了不變的網路介面名稱的產生。
  • 基於 libdw/libelf 庫的 systemd-coredump 實用程式對核心檔案的分析現在在單獨的進程中執行,並隔離在沙箱環境中。
  • systemd-importd 新增了對環境變數 $SYSTEMD_IMPORT_BTRFS_SUBVOL、$SYSTEMD_IMPORT_BTRFS_QUOTA、$SYSTEMD_IMPORT_SYNC 的支持,使用它們可以停用 Btrfs 子分割區的生成,以及配置配額和磁碟同步。
  • 在 systemd-journald 中,在支援寫入時複製模式的檔案系統上,為存檔日誌重新啟用了 COW 模式,從而允許使用 Btrfs 對其進行壓縮。
  • systemd-journald 在單一訊息中實現相同欄位的重複資料刪除,這是在將訊息放入日誌之前的階段執行的。
  • 在 shutdown 指令中新增了「--show」選項以顯示計畫的關閉。

來源: opennet.ru

添加評論