systemd システムマネージャーリリース 250

250 か月の開発を経て、システム マネージャー systemd XNUMX のリリースが発表されました。この新しいリリースでは、資格情報を暗号化された形式で保存する機能が導入され、デジタル署名を使用して自動的に検出された GPT パーティションの検証が実装され、遅延の原因に関する情報が改善されました。サービスの開始、および特定のファイル システムおよびネットワーク インターフェイスへのサービス アクセスを制限するオプションの追加、dm-integrity モジュールを使用したパーティション整合性監視のサポートが提供され、sd-boot 自動更新のサポートが追加されています。

主な変更点:

  • 暗号化および認証された資格情報のサポートが追加されました。これは、SSL キーやアクセス パスワードなどの機密資料を安全に保管するのに役立ちます。資格情報の復号化は、必要な場合にのみ、ローカルのインストールまたは機器に関連して実行されます。データは対称暗号化アルゴリズムを使用して自動的に暗号化されます。そのキーはファイル システム、TPM2 チップ内、または組み合わせスキームに配置できます。サービスが開始されると、資格情報は自動的に復号化され、通常の形式でサービスで使用できるようになります。暗号化された資格情報を操作するために、「systemd-creds」ユーティリティが追加され、サービスに対して LoadCredentialEncrypted および SetCredentialEncrypted 設定が提案されました。
  • EFI ファームウェアが Linux カーネルをロードできるようにする EFI 実行可能ファイルである sd-stub は、LINUX_EFI_INITRD_MEDIA_GUID EFI プロトコルを使用したカーネルのブートをサポートするようになりました。また、sd-stub には、認証情報と sysext ファイルを cpio アーカイブにパッケージ化し、このアーカイブを initrd とともにカーネルに転送する機能も追加されています (追加のファイルは /.extra/ ディレクトリに配置されます)。この機能を使用すると、sysexts と暗号化された認証データによって補完された、検証可能で不変の initrd 環境を使用できるようになります。
  • Discoverable Partitions 仕様が大幅に拡張され、GPT (GUID Partition Table) を使用してシステム パーティションを識別、マウント、アクティブ化するためのツールが提供されています。以前のリリースと比較して、この仕様では、UEFI を使用しないプラットフォームを含むほとんどのアーキテクチャで root パーティションと /usr パーティションがサポートされるようになりました。

    Discoverable Partitions では、PKCS#7 デジタル署名を使用して dm-verity モジュールによって整合性が検証されるパーティションのサポートも追加され、完全に認証されたディスク イメージの作成が容易になります。検証サポートは、systemd-nspawn、systemd-sysext、systemd-dissect、RootImage サービス、systemd-tmpfiles、systemd-sysusers などのディスク イメージを操作するさまざまなユーティリティに統合されています。

  • 起動や停止に時間がかかるユニットについては、アニメーションプログレスバーの表示に加えて、現在サービスで何が起こっているのか、システム管理者がどのサービスを担当しているのかを正確に把握できるステータス情報を表示することができます。現在完了を待っています。
  • DefaultOOMScoreAdjust パラメータを /etc/systemd/system.conf および /etc/systemd/user.conf に追加しました。これにより、systemd がシステムとユーザーに対して開始するプロセスに適用される、メモリ不足の OOM キラーしきい値を調整できるようになります。デフォルトでは、システム サービスの比重はユーザー サービスの比重よりも高くなります。メモリが不足すると、システムサービスよりもユーザーサービスが終了する可能性が高くなります。
  • RestrictFileSystems 設定が追加されました。これにより、特定の種類のファイル システムへのサービスのアクセスを制限できます。利用可能なファイル システムの種類を表示するには、「systemd-analyze filesystems」コマンドを使用します。同様に、RestrictNetworkInterfaces オプションが実装されており、特定のネットワーク インターフェイスへのアクセスを制限できます。この実装は、プロセスのグループのカーネル オブジェクトへのアクセスを制限する BPF LSM モジュールに基づいています。
  • 新しい /etc/integritytab 設定ファイルと systemd-integritysetup ユーティリティを追加しました。これらは、セクター レベルでデータの整合性を制御するように dm-integrity モジュールを設定します。たとえば、暗号化されたデータの不変性を保証します (認証された暗号化により、データ ブロックが回りくどい方法で変更されていません)。 /etc/integritytab ファイルの形式は、dm-crypt および dm-verity の代わりに dm-integrity が使用されることを除いて、/etc/crypttab ファイルおよび /etc/veritytab ファイルと似ています。
  • 新しいユニット ファイル systemd-boot-update.service が追加されました。アクティブ化されて sd-boot ブートローダーがインストールされると、systemd は sd-boot ブートローダーのバージョンを自動的に更新し、ブートローダー コードを常に最新の状態に保ちます。 sd-boot 自体は、SBAT (UEFI Secure Boot Advanced Targeting) メカニズムをサポートするようにデフォルトで構築されるようになりました。これにより、UEFI セキュア ブートの証明書失効に関する問題が解決されます。さらに、sd-boot は、Microsoft Windows のブート設定を解析して、Windows のブート パーティションの名前を正しく生成し、Windows のバージョンを表示する機能を提供します。

    sd-boot は、ビルド時にカラースキームを定義する機能も提供します。起動プロセス中に、「r」キーを押して画面解像度を変更するためのサポートが追加されました。ファームウェア設定インターフェイスに移動するためのホットキー「f」を追加しました。前回の起動時に選択したメニュー項目に対応するシステムを自動的に起動するモードを追加しました。 ESP (EFI システム パーティション) セクションの /EFI/systemd/drivers/ ディレクトリにある EFI ドライバーを自動的にロードする機能が追加されました。

  • 新しいユニット ファイル Factory-reset.target が含まれています。これは、再起動、電源オフ、サスペンド、休止状態の操作と同様の方法で systemd-logind で処理され、出荷時設定へのリセットを実行するためのハンドラーの作成に使用されます。
  • systemd で解決されたプロセスは、127.0.0.54 に加えて 127.0.0.53 にも追加の待機ソケットを作成するようになりました。 127.0.0.54 に到着するリクエストは常に上流の DNS サーバーにリダイレクトされ、ローカルでは処理されません。
  • libgcrypt の代わりに OpenSSL ライブラリを使用して systemd-importd および systemd-resolved をビルドする機能が提供されました。
  • Loongson プロセッサで使用される LoongArch アーキテクチャの初期サポートが追加されました。
  • systemd-gpt-auto-generator は、LUKS2 サブシステムによって暗号化されたシステム定義のスワップ パーティションを自動的に構成する機能を提供します。
  • systemd-nspawn、systemd-dissect、および同様のユーティリティで使用される GPT イメージ解析コードは、他のアーキテクチャのイメージをデコードする機能を実装しており、systemd-nspawn を使用して他のアーキテクチャのエミュレータでイメージを実行できるようになります。
  • ディスク イメージを検査するときに、systemd-dissect は、UEFI 経由での起動やコンテナーでの実行の適合性など、パーティションの目的に関する情報を表示するようになりました。
  • 「SYSEXT_SCOPE」フィールドが system-extension.d/ ファイルに追加され、システム イメージのスコープ (「initrd」、「system」、または「portable」) を指定できるようになりました。
  • 「PORTABLE_PREFIXES」フィールドが os-release ファイルに追加され、ポータブル イメージでサポートされているユニット ファイル プレフィックスを決定するために使用できます。
  • systemd-logind には、新しい設定 HandlePowerKeyLongPress、HandleRebootKeyLongPress、HandleSuspendKeyLongPress、および HandleHibernateKeyLongPress が導入されています。これらの設定は、特定のキーが 5 秒以上押し続けられた場合に何が起こるかを決定するために使用できます (たとえば、Suspend キーを素早く押すと、スタンバイ モードになるように構成できます) 、長押しするとスリープ状態になります)。
  • ユニットの場合、StartupAllowedCPUs および StartupAllowedMemoryNodes 設定が実装されます。これらは、起動およびシャットダウン段階でのみ適用される点で、Startup プレフィックスのない同様の設定とは異なります。これにより、起動中に他のリソース制限を設定できるようになります。
  • [Condition|Assert][Memory|CPU|IO]Pressure チェックを追加しました。これにより、PSI メカニズムがシステムのメモリ、CPU、および I/O に対する重い負荷を検出した場合に、ユニットのアクティベーションをスキップまたは失敗できるようになります。
  • デフォルトの最大 i ノード制限は、/dev パーティションでは 64k から 1M に、/tmp パーティションでは 400k から 1M に増加されました。
  • サービスに対して ExecSearchPath 設定が提案されており、ExecStart などの設定を通じて起動される実行可能ファイルを検索するためのパスを変更できるようになります。
  • RuntimeRandomizedExtraSec 設定を追加しました。これにより、RuntimeMaxSec タイムアウトにランダムな偏差を導入でき、ユニットの実行時間を制限できます。
  • RuntimeDirectory、StateDirectory、CacheDirectory、および LogsDirectory 設定の構文が拡張され、コロンで区切って追加の値を指定することで、特定のディレクトリへのシンボリック リンクの作成を整理して、複数のパスに沿ったアクセスを整理できるようになりました。
  • サービスの場合、TTY デバイスの行数と列数を設定するための TTYRows および TTYColumns 設定が提供されます。
  • ExitType 設定が追加されました。これにより、サービスの終了を決定するロジックを変更できるようになります。デフォルトでは、systemd はメインプロセスの終了のみを監視しますが、ExitType=cgroup が設定されている場合、システムマネージャーは cgroup 内の最後のプロセスが完了するまで待機します。
  • systemd-cryptsetup の TPM2/FIDO2/PKCS11 サポートの実装は、cryptsetup プラグインとしても構築されるようになり、通常の cryptsetup コマンドを使用して暗号化されたパーティションのロックを解除できるようになります。
  • systemd-cryptsetup/systemd-cryptsetup の TPM2 ハンドラーは、非 ECC チップとの互換性を向上させるために、ECC キーに加えて RSA プライマリ キーのサポートを追加します。
  • token-timeout オプションが /etc/crypttab に追加されました。これにより、PKCS#11/FIDO2 トークン接続を待機する最大時間を定義できます。その後、パスワードまたは回復キーの入力を求められます。
  • systemd-timesyncd は SaveIntervalSec 設定を実装します。これにより、現在のシステム時刻を定期的にディスクに保存できます。たとえば、RTC のないシステムに単調クロックを実装できます。
  • systemd-analyze ユーティリティにオプションが追加されました。指定されたイメージまたはルート ディレクトリ内のユニット ファイルをチェックするための「--image」および「--root」、エラー時に依存ユニットを考慮するための「--recursive-errors」です。ディスクに保存されたユニット ファイルを個別に確認する場合は「--offline」、JSON 形式で出力する場合は「--json」、重要でないメッセージを無効にする場合は「-quiet」、ポータブル プロファイルにバインドする場合は「-profile」を使用します。また、ELF 形式のコア ファイルを解析するための Inspection-elf コマンドと、この名前がファイル名と一致するかどうかに関係なく、指定されたユニット名のユニット ファイルをチェックする機能も追加されました。
  • systemd-networkd は、コントローラー エリア ネットワーク (CAN) バスのサポートを拡張しました。 CAN モードを制御するための設定が追加されました: Loopback、OneShot、PresumeAck、ClassicDataLengthCode。 CAN インターフェイスのビット同期を制御するために、TimeQuantaNSec、PropagationSegment、PhaseBufferSegment1、PhaseBufferSegment2、SyncJumpWidth、DataTimeQuantaNSec、DataPropagationSegment、DataPhaseBufferSegment1、DataPhaseBufferSegment2、および DataSyncJumpWidth オプションを .network ファイルの [CAN] セクションに追加しました。
  • Systemd-networkd には、DHCPv4 クライアントのラベル オプションが追加されました。これにより、IPv4 アドレスの構成時に使用されるアドレス ラベルを構成できるようになります。
  • 「ethtool」の systemd-udevd は、バッファ サイズをハードウェアでサポートされる最大値に設定する特別な「max」値のサポートを実装します。
  • systemd-udevd の .link ファイルで、ネットワーク アダプターを組み合わせたり、ハードウェア ハンドラーを接続したり (オフロード) するためのさまざまなパラメーターを構成できるようになりました。
  • systemd-networkd は、デフォルトで新しい .network ファイルを提供します。 80-container-vb.network は、systemd-nspawn を「--network-bridge」または「--network-zone」オプションで実行するときに作成されるネットワーク ブリッジを定義します。 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 を指定します。
  • WoL が「SecureOn」モードで実行されているときにパスワードを決定するために、「[Link]」セクションの .link ファイルに WakeOnLanPassword 設定が追加されました。
  • AutoRateIngress、CompensationMode、FlowIsolationMode、NAT、MPUBytes、PriorityQueueingPreset、FirewallMark、Wash、SplitGSO、および UseRawPacketSize 設定を .network ファイルの「[CAKE]」セクションに追加して、CAKE (Common Applications Kept Enhanced) ネットワーク キュー管理メカニズムのパラメーターを定義しました。 。
  • IgnoreCarrierLoss 設定が .network ファイルの「[Network]」セクションに追加され、キャリア信号の損失に反応するまでの待機時間を決定できるようになりました。
  • Systemd-nspawn、homectl、machinectl、および systemd-run は、「--setenv」パラメーターの構文を拡張しました。変数名のみが指定された場合 (「=」なし)、値は対応する環境変数から取得されます。たとえば、「--setenv=FOO」を指定すると、値は $FOO 環境変数から取得され、コンテナーに設定されている同じ名前の環境変数で使用されます。
  • systemd-nspawn には、コンテナ作成時に sync()/fsync()/fdatasync() システム コールを無効にする「--suppress-sync」オプションが追加されました (速度が優先され、失敗した場合のビルド アーティファクトの保持が重要ではない場合に便利です)いつでも再作成できるので重要です)。
  • 新しい 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」オプションを追加しました。

出所: オープンネット.ru

コメントを追加します