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

[:る]

2か月の開発期間を経て 提示された システムマネージャーのリリース systemd 242。革新的な機能としては、L2TP トンネルのサポート、環境変数を使用して再起動時の systemd-logind の動作を制御する機能、/boot をマウントするための拡張 XBOOTLDR ブート パーティションのサポート、overlayfs のルート パーティションで起動する機能などが挙げられます。さまざまなタイプのユニット用の多数の新しい設定も含まれています。

主な変更点:

  • systemd-networkd は L2TP トンネルのサポートを提供します。
  • sd-boot および bootctl は、/efi または /boot/efi にマウントされる ESP パーティションに加えて、/boot にマウントされるように設計された XBOOTLDR (拡張ブート ローダー) パーティションのサポートを提供します。カーネル、設定、initrd、EFI イメージを ESP パーティションと XBOOTLDR パーティションの両方から起動できるようになりました。この変更により、ブートローダー自体が ESP に配置され、ロードされたカーネルと関連メタデータが別のセクションに配置される場合、より保守的なシナリオで sd-boot ブートローダーを使用できるようになります。
  • カーネルに渡される「systemd.volatile=overlay」オプションで起動する機能が追加されました。これにより、ルート パーティションを overlayfs に配置し、ルート ディレクトリの読み取り専用イメージの上に作業を整理し、変更内容をルート ディレクトリに書き込むことができます。 tmpfs 内の別のディレクトリ (この構成の変更は再起動後に失われます)。同様に、systemd-nspawn はコンテナーで同様の機能を使用するために「--volatile=overlay」オプションを追加しました。
  • systemd-nspawn に「--oci-bundle」オプションが追加され、ランタイム バンドルを使用して Open Container Initiative (OCI) 仕様に準拠したコンテナを分離して起動できるようになりました。コマンド ラインおよび nspawn ユニットで使用するために、OCI 仕様で説明されているさまざまなオプションのサポートが提案されています。たとえば、「--inaccessible」および「Inaccessible」オプションは、ファイル システムの一部を除外するために使用できます。標準出力ストリームと「-pipe」を設定するための「-console」オプションが追加されました。
  • 環境変数 $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP を通じて systemd-logind の動作を制御する機能が追加されました。
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU および
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY。これらの変数を使用すると、独自の再起動プロセス ハンドラー (/run/systemd/reboot-to-firmware-setup、/run/systemd/reboot-to-boot-loader-menu、および
    /run/systemd/reboot-to-boot-loader-entry) またはそれらを完全に無効にします (値が false に設定されている場合)。

  • オプション「-boot-load-menu=」と
    「—boot-loader-entry=」。再起動後に特定のブート メニュー項目またはブート モードを選択できます。

  • 新しいサンドボックス分離コマンド「RestrictSUIDSGID=」を追加しました。このコマンドは、seccomp を使用して SUID/SGID フラグを持つファイルの作成を禁止します。
  • 「NoNewPrivileges」および「RestrictSUIDSGID」制限が、動的ユーザー ID 生成モード (「DynamicUser」が有効) のサービスにデフォルトで適用されることを確認しました。
  • .link ファイルのデフォルトの MACAddressPolicy=persistent 設定は、より多くのデバイスをカバーするために変更されました。ネットワーク ブリッジ、トンネル (tun、tap)、および集約リンク (bond) のインターフェイスは、ネットワーク インターフェイスの名前以外によって自体を識別しないため、この名前が MAC アドレスと IPv4 アドレスをバインドするための基礎として使用されるようになりました。さらに、「MACAddressPolicy=random」設定が追加されました。これを使用すると、MAC アドレスと IPv4 アドレスをランダムな順序でデバイスにバインドできます。
  • systemd-fstab-generator によって生成された「.device」ユニット ファイルには、対応する「.mount」ユニットが「Wants=」セクションの依存関係として含まれなくなりました。デバイスを接続するだけではマウントするユニットが自動的に起動されなくなりましたが、そのようなユニットは、local-fs.target の一部として、または local-fs.target に依存する他のユニットへの依存関係など、他の理由で引き続き起動できます。 ;
  • 「networkctl list/status/lldp」コマンドにマスク (「*」など) のサポートを追加し、名前の一部でネットワーク インターフェースの特定のグループを除外します。
  • $PIDFILE 環境変数は、「PIDFile=;」パラメータを介してサービスで構成された絶対パスを使用して設定されるようになりました。
  • メイン DNS が明示的に定義されていない場合に使用されるバックアップ DNS サーバーの数に、パブリック Cloudflare サーバー (1.1.1.1) が追加されました。バックアップ DNS サーバーのリストを再定義するには、「-Ddns-servers=」オプションを使用できます。
  • USB デバイス コントローラーの存在を検出すると、新しい usb-gadget.target ハンドラーが自動的に起動されます (システムが USB 周辺機器で実行されている場合)。
  • ユニット ファイルの場合、「CPUQuotaPeriodSec=」設定が実装されています。これは、「CPUQuota=」設定を通じて設定される、CPU 時間クォータを測定する相対的な期間を決定します。
  • ユニット ファイルには、「ProtectHostname=」設定が実装されており、サービスが適切な権限を持っている場合でも、ホスト名に関する情報を変更することを禁止します。
  • ユニット ファイルの場合、「NetworkNamespacePath=」設定が実装されました。これにより、擬似 FS /proc でネームスペース ファイルへのパスを指定することで、ネームスペースをサービスまたはソケット ユニットにバインドできるようになります。
  • 開始コマンドの前に「:」文字を追加することで、「ExecStart=」設定を使用して起動されたプロセスの環境変数の置換を無効にする機能が追加されました。
  • タイマー (.timer ユニット) の新しいフラグ「OnClockChange=」と
    「OnTimezoneChange=」。これを使用すると、システム時間またはタイムゾーンが変更されたときにユニットコールを制御できます。

  • 新しい設定「ConditionMemory=」と「ConditionCPUs=」を追加しました。これは、メモリ サイズと CPU コア数に応じてユニットを呼び出す条件を決定します (たとえば、リソースを大量に消費するサービスは、必要な量のリソースが必要な場合にのみ起動できます) RAM は利用可能です);
  • time-sync.target ユニットを使用した外部タイム サーバーとの調整を使用せずに、ローカルに設定されたシステム時刻を受け入れる新しい time-set.target ユニットが追加されました。新しいユニットは、非同期のローカル クロックの精度を必要とするサービスで使用できます。
  • 「--show-transaction」オプションが「systemctl start」および同様のコマンドに追加されました。指定すると、要求された操作によりキューに追加されたすべてのジョブの概要が表示されます。
  • systemd-networkd は、集約リンクまたはネットワーク ブリッジの一部であるネットワーク インターフェイスの「劣化」または「キャリア」の代わりに使用される、新しい状態「エンスレーブ」の定義を実装します。プライマリ インターフェイスの場合、複合リンクの XNUMX つで問題が発生した場合に備えて、「キャリア劣化」状態が追加されました。
  • 接続が失われた場合にネットワーク設定を保存するために、.network ユニッ​​トに「IgnoreCarrierLoss=」オプションを追加しました。
  • .network ユニッ​​トの「RequiredForOnline=」設定を通じて、ネットワーク インターフェイスを「オンライン」に転送し、systemd-networkd-wait-online ハンドラーをトリガーするために必要な最小許容リンク状態を設定できるようになりました。
  • systemd-networkd-wait-online に、指定されたすべてのネットワーク インターフェイスではなくいずれかのネットワーク インターフェイスの準備が完了するまで待機する「--any」オプションと、ネットワーク インターフェイスの状態を判断するための「--operational-state=」オプションが追加されました。準備ができていることを示すリンク。
  • 「UseAutonomousPrefix=」および「UseOnLinkPrefix=」設定を .network ユニッ​​トに追加しました。これは、受信時にプレフィックスを無視するために使用できます。
    IPv6 ルーターからのアナウンスメント (RA、ルーター アドバタイズメント)。

  • .network ユニッ​​トでは、ネットワーク ブリッジの動作パラメータを変更するための「MulticastFlood=」、「NeighborSuppression=」、および「Learning=」設定が追加されました。また、TRIPLE-SAMPLING モードを変更するための「TripleSampling=」設定も追加されました。 CAN 仮想インターフェイスの数。
  • 「PrivateKeyFile=」および「PresharedKeyFile=」設定が .netdev ユニットに追加され、これを使用して WireGuard VPN インターフェイスの秘密キーと共有 (PSK) キーを指定できます。
  • Same-cpu-crypt および submit-from-crypt-cpus オプションを /etc/crypttab に追加しました。これらは、CPU コア間で暗号化関連の作業を移行するときのスケジューラの動作を制御します。
  • systemd-tmpfiles は、一時ファイルのあるディレクトリで操作を実行する前にファイルのロック処理を提供します。これにより、特定のアクションの間、古いファイルのクリーンアップ作業を無効にすることができます (たとえば、/tmp の tar アーカイブを解凍するとき、非常に古いファイルは解凍できません)。開くことはできますが、アクションが終了する前に削除することもできます)。
  • 「systemd-analyze cat-config」コマンドは、ユーザーとシステムのプリセット、tmpfiles.d と sysusers.d の内容、udev ルールなど、複数のファイルに分割された構成を分析する機能を提供します。
  • 位置カーソルをロードおよび保存するファイルを指定するための「--cursor-file=」オプションを「journalctl」に追加しました。
  • 条件演算子「ConditionVirtualization」を使用した後続の分岐のために、ACRN ハイパーバイザーと WSL サブシステム (Linux 用 Windows サブシステム) の定義を systemd-detect-virt に追加しました。
  • systemd のインストール中 (「ninja install」の実行時)、ファイル systemd-networkd.service、systemd-networkd.socket、
    systemd-resolved.service、remote-cryptsetup.target、remote-fs.target、
    systemd-networkd-wait-online.service および systemd-timesyncd.service。これらのファイルを作成するには、「systemctl preset-all」コマンドを実行する必要があります。

ソースオープンネット.ru

[:EN]

2か月の開発期間を経て 提示された システムマネージャーのリリース systemd 242。革新的な機能としては、L2TP トンネルのサポート、環境変数を使用して再起動時の systemd-logind の動作を制御する機能、/boot をマウントするための拡張 XBOOTLDR ブート パーティションのサポート、overlayfs のルート パーティションで起動する機能などが挙げられます。さまざまなタイプのユニット用の多数の新しい設定も含まれています。

主な変更点:

  • systemd-networkd は L2TP トンネルのサポートを提供します。
  • sd-boot および bootctl は、/efi または /boot/efi にマウントされる ESP パーティションに加えて、/boot にマウントされるように設計された XBOOTLDR (拡張ブート ローダー) パーティションのサポートを提供します。カーネル、設定、initrd、EFI イメージを ESP パーティションと XBOOTLDR パーティションの両方から起動できるようになりました。この変更により、ブートローダー自体が ESP に配置され、ロードされたカーネルと関連メタデータが別のセクションに配置される場合、より保守的なシナリオで sd-boot ブートローダーを使用できるようになります。
  • カーネルに渡される「systemd.volatile=overlay」オプションで起動する機能が追加されました。これにより、ルート パーティションを overlayfs に配置し、ルート ディレクトリの読み取り専用イメージの上に作業を整理し、変更内容をルート ディレクトリに書き込むことができます。 tmpfs 内の別のディレクトリ (この構成の変更は再起動後に失われます)。同様に、systemd-nspawn はコンテナーで同様の機能を使用するために「--volatile=overlay」オプションを追加しました。
  • systemd-nspawn に「--oci-bundle」オプションが追加され、ランタイム バンドルを使用して Open Container Initiative (OCI) 仕様に準拠したコンテナを分離して起動できるようになりました。コマンド ラインおよび nspawn ユニットで使用するために、OCI 仕様で説明されているさまざまなオプションのサポートが提案されています。たとえば、「--inaccessible」および「Inaccessible」オプションは、ファイル システムの一部を除外するために使用できます。標準出力ストリームと「-pipe」を設定するための「-console」オプションが追加されました。
  • 環境変数 $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP を通じて systemd-logind の動作を制御する機能が追加されました。
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU および
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY。これらの変数を使用すると、独自の再起動プロセス ハンドラー (/run/systemd/reboot-to-firmware-setup、/run/systemd/reboot-to-boot-loader-menu、および
    /run/systemd/reboot-to-boot-loader-entry) またはそれらを完全に無効にします (値が false に設定されている場合)。

  • オプション「-boot-load-menu=」と
    「—boot-loader-entry=」。再起動後に特定のブート メニュー項目またはブート モードを選択できます。

  • 新しいサンドボックス分離コマンド「RestrictSUIDSGID=」を追加しました。このコマンドは、seccomp を使用して SUID/SGID フラグを持つファイルの作成を禁止します。
  • 「NoNewPrivileges」および「RestrictSUIDSGID」制限が、動的ユーザー ID 生成モード (「DynamicUser」が有効) のサービスにデフォルトで適用されることを確認しました。
  • .link ファイルのデフォルトの MACAddressPolicy=persistent 設定は、より多くのデバイスをカバーするために変更されました。ネットワーク ブリッジ、トンネル (tun、tap)、および集約リンク (bond) のインターフェイスは、ネットワーク インターフェイスの名前以外によって自体を識別しないため、この名前が MAC アドレスと IPv4 アドレスをバインドするための基礎として使用されるようになりました。さらに、「MACAddressPolicy=random」設定が追加されました。これを使用すると、MAC アドレスと IPv4 アドレスをランダムな順序でデバイスにバインドできます。
  • systemd-fstab-generator によって生成された「.device」ユニット ファイルには、対応する「.mount」ユニットが「Wants=」セクションの依存関係として含まれなくなりました。デバイスを接続するだけではマウントするユニットが自動的に起動されなくなりましたが、そのようなユニットは、local-fs.target の一部として、または local-fs.target に依存する他のユニットへの依存関係など、他の理由で引き続き起動できます。 ;
  • 「networkctl list/status/lldp」コマンドにマスク (「*」など) のサポートを追加し、名前の一部でネットワーク インターフェースの特定のグループを除外します。
  • $PIDFILE 環境変数は、「PIDFile=;」パラメータを介してサービスで構成された絶対パスを使用して設定されるようになりました。
  • メイン DNS が明示的に定義されていない場合に使用されるバックアップ DNS サーバーの数に、パブリック Cloudflare サーバー (1.1.1.1) が追加されました。バックアップ DNS サーバーのリストを再定義するには、「-Ddns-servers=」オプションを使用できます。
  • USB デバイス コントローラーの存在を検出すると、新しい usb-gadget.target ハンドラーが自動的に起動されます (システムが USB 周辺機器で実行されている場合)。
  • ユニット ファイルの場合、「CPUQuotaPeriodSec=」設定が実装されています。これは、「CPUQuota=」設定を通じて設定される、CPU 時間クォータを測定する相対的な期間を決定します。
  • ユニット ファイルには、「ProtectHostname=」設定が実装されており、サービスが適切な権限を持っている場合でも、ホスト名に関する情報を変更することを禁止します。
  • ユニット ファイルの場合、「NetworkNamespacePath=」設定が実装されました。これにより、擬似 FS /proc でネームスペース ファイルへのパスを指定することで、ネームスペースをサービスまたはソケット ユニットにバインドできるようになります。
  • 開始コマンドの前に「:」文字を追加することで、「ExecStart=」設定を使用して起動されたプロセスの環境変数の置換を無効にする機能が追加されました。
  • タイマー (.timer ユニット) の新しいフラグ「OnClockChange=」と
    「OnTimezoneChange=」。これを使用すると、システム時間またはタイムゾーンが変更されたときにユニットコールを制御できます。

  • 新しい設定「ConditionMemory=」と「ConditionCPUs=」を追加しました。これは、メモリ サイズと CPU コア数に応じてユニットを呼び出す条件を決定します (たとえば、リソースを大量に消費するサービスは、必要な量のリソースが必要な場合にのみ起動できます) RAM は利用可能です);
  • time-sync.target ユニットを使用した外部タイム サーバーとの調整を使用せずに、ローカルに設定されたシステム時刻を受け入れる新しい time-set.target ユニットが追加されました。新しいユニットは、非同期のローカル クロックの精度を必要とするサービスで使用できます。
  • 「--show-transaction」オプションが「systemctl start」および同様のコマンドに追加されました。指定すると、要求された操作によりキューに追加されたすべてのジョブの概要が表示されます。
  • systemd-networkd は、集約リンクまたはネットワーク ブリッジの一部であるネットワーク インターフェイスの「劣化」または「キャリア」の代わりに使用される、新しい状態「エンスレーブ」の定義を実装します。プライマリ インターフェイスの場合、複合リンクの XNUMX つで問題が発生した場合に備えて、「キャリア劣化」状態が追加されました。
  • 接続が失われた場合にネットワーク設定を保存するために、.network ユニッ​​トに「IgnoreCarrierLoss=」オプションを追加しました。
  • .network ユニッ​​トの「RequiredForOnline=」設定を通じて、ネットワーク インターフェイスを「オンライン」に転送し、systemd-networkd-wait-online ハンドラーをトリガーするために必要な最小許容リンク状態を設定できるようになりました。
  • systemd-networkd-wait-online に、指定されたすべてのネットワーク インターフェイスではなくいずれかのネットワーク インターフェイスの準備が完了するまで待機する「--any」オプションと、ネットワーク インターフェイスの状態を判断するための「--operational-state=」オプションが追加されました。準備ができていることを示すリンク。
  • 「UseAutonomousPrefix=」および「UseOnLinkPrefix=」設定を .network ユニッ​​トに追加しました。これは、受信時にプレフィックスを無視するために使用できます。
    IPv6 ルーターからのアナウンスメント (RA、ルーター アドバタイズメント)。

  • .network ユニッ​​トでは、ネットワーク ブリッジの動作パラメータを変更するための「MulticastFlood=」、「NeighborSuppression=」、および「Learning=」設定が追加されました。また、TRIPLE-SAMPLING モードを変更するための「TripleSampling=」設定も追加されました。 CAN 仮想インターフェイスの数。
  • 「PrivateKeyFile=」および「PresharedKeyFile=」設定が .netdev ユニットに追加され、これを使用して WireGuard VPN インターフェイスの秘密キーと共有 (PSK) キーを指定できます。
  • Same-cpu-crypt および submit-from-crypt-cpus オプションを /etc/crypttab に追加しました。これらは、CPU コア間で暗号化関連の作業を移行するときのスケジューラの動作を制御します。
  • systemd-tmpfiles は、一時ファイルのあるディレクトリで操作を実行する前にファイルのロック処理を提供します。これにより、特定のアクションの間、古いファイルのクリーンアップ作業を無効にすることができます (たとえば、/tmp の tar アーカイブを解凍するとき、非常に古いファイルは解凍できません)。開くことはできますが、アクションが終了する前に削除することもできます)。
  • 「systemd-analyze cat-config」コマンドは、ユーザーとシステムのプリセット、tmpfiles.d と sysusers.d の内容、udev ルールなど、複数のファイルに分割された構成を分析する機能を提供します。
  • 位置カーソルをロードおよび保存するファイルを指定するための「--cursor-file=」オプションを「journalctl」に追加しました。
  • 条件演算子「ConditionVirtualization」を使用した後続の分岐のために、ACRN ハイパーバイザーと WSL サブシステム (Linux 用 Windows サブシステム) の定義を systemd-detect-virt に追加しました。
  • systemd のインストール中 (「ninja install」の実行時)、ファイル systemd-networkd.service、systemd-networkd.socket、
    systemd-resolved.service、remote-cryptsetup.target、remote-fs.target、
    systemd-networkd-wait-online.service および systemd-timesyncd.service。これらのファイルを作成するには、「systemctl preset-all」コマンドを実行する必要があります。

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

[:]

コメントを追加します