systemd Systemmanager Version 242

[: ru]

Nach zwei Monaten Entwicklungszeit eingereicht Systemmanager-Release System 242. Zu den neuen Funktionen gehören die Unterstützung von L2TP-Tunneln, die Möglichkeit, das Verhalten von systemd-logind beim Neustart über Umgebungsvariablen zu steuern, Unterstützung für erweiterte XBOOTLDR-Bootpartitionen zum Mounten von /boot, die Möglichkeit, mit der Root-Partition in Overlayfs zu booten, und vieles mehr neuer Einstellungen für verschiedene Gerätetypen.

Wichtigste Änderungen:

  • systemd-networkd bietet Unterstützung für L2TP-Tunnel;
  • sd-boot und bootctl unterstützen XBOOTLDR-Partitionen (Extended Boot Loader), die auf /boot gemountet sind, zusätzlich zu ESP-Partitionen, die auf /efi oder /boot/efi gemountet sind. Kernel, Einstellungen, initrd- und EFI-Images können jetzt sowohl von ESP- als auch von XBOOTLDR-Partitionen geladen werden. Diese Änderung ermöglicht die Verwendung des sd-boot-Bootloaders in konservativeren Szenarien, wenn der Bootloader selbst im ESP platziert wird und die bootfähigen Kernel und die zugehörigen Metadaten in einen separaten Abschnitt verschoben werden;
  • Es wurde die Möglichkeit hinzugefügt, mit der an den Kernel übergebenen Option „systemd.volatile=overlay“ zu booten, wodurch Sie die Root-Partition in overlayfs platzieren und die Arbeit auf einem schreibgeschützten Image des Root-Verzeichnisses organisieren können, wobei Änderungen in a geschrieben werden separates Verzeichnis in tmpfs (Änderungen in dieser Konfiguration gehen nach einem Neustart verloren) . Analog dazu wurde systemd-nspawn die Option „--volatile=overlay“ hinzugefügt, um ähnliche Funktionen in Containern zu nutzen;
  • Option „--oci-bundle“ zu systemd-nspawn hinzugefügt, um die Verwendung von Laufzeitpaketen zu ermöglichen und so die isolierte Ausführung von Containern zu ermöglichen, die der Open Container Initiative (OCI)-Spezifikation entsprechen. Für die Verwendung in der Befehlszeile und bei nspawn-Einheiten wird Unterstützung für verschiedene in der OCI-Spezifikation beschriebene Optionen vorgeschlagen. Beispielsweise können die Einstellungen „--inaccessible“ und „Inaccessible“ verwendet werden, um Teile des Dateisystems auszuschließen, und die Einstellungen „--inaccessible“ und „Inaccessible“. -console“-Optionen wurden hinzugefügt, um Standardausgabeströme und „—pipe“ zu konfigurieren;
  • Möglichkeit hinzugefügt, das Verhalten von systemd-logind über Umgebungsvariablen zu steuern: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_MENU und
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Mithilfe dieser Variablen können Sie Ihre eigenen Neustartprozess-Handler (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu und) verbinden
    /run/systemd/reboot-to-boot-loader-entry) oder deaktivieren Sie sie ganz (wenn auf „false“ gesetzt);

  • „--boot-load-menu="-Optionen zum Befehl „systemctl reboot" hinzugefügt und
    „--boot-loader-entry=", damit Sie nach dem Neustart einen bestimmten Startmenüpunkt oder Startmodus auswählen können;

  • Es wurde ein neuer Sandbox-Isolationsbefehl „RestrictSUIDSGID=" hinzugefügt, der seccomp verwendet, um die Erstellung von Dateien mit SUID/SGID-Flags zu verhindern;
  • Standardeinschränkungen „NoNewPrivileges“ und „RestrictSUIDSGID“ in Diensten mit aktivierter dynamischer Benutzer-ID-Generierung („DynamicUser“) implementiert;
  • Die Standardeinstellung MACAddressPolicy=persistent in .link-Dateien wurde geändert, um mehr Geräte abzudecken. Schnittstellen von Netzwerkbrücken, Tunneln (Tun, Tap) und aggregierten Links (Bond) identifizieren sich nur durch den Namen der Netzwerkschnittstelle, daher wird dieser Name jetzt als Grundlage für die Bindung von MAC- und IPv4-Adressen verwendet. Darüber hinaus wurde die Einstellung „MACAddressPolicy=random“ hinzugefügt, mit der MAC- und IPv4-Adressen in zufälliger Reihenfolge an Geräte gebunden werden können;
  • „.device“-Einheitsdateien, die über systemd-fstab-generator generiert wurden, enthalten die entsprechenden „.mount“-Einheiten nicht mehr als Abhängigkeiten im Abschnitt „Wants=". Durch einfaches Anschließen eines Geräts wird nicht mehr automatisch eine Mount-Einheit gestartet. Solche Einheiten können jedoch weiterhin aus anderen Gründen gestartet werden, beispielsweise als Teil von local-fs.target oder als Abhängigkeit von anderen Einheiten, die von local-fs.target abhängen.
  • Den Befehlen „networkctl list/status/lldp“ wurde Unterstützung für Masken („*“ usw.) hinzugefügt, um bestimmte Gruppen von Netzwerkschnittstellen anhand eines Teils ihres Namens herauszufiltern.
  • Die Umgebungsvariable $PIDFILE wird jetzt unter Verwendung des absoluten Pfads festgelegt, der in den Diensten über die Option „PIDFile=;“ konfiguriert wurde.
  • Öffentliche Cloudflare-Server (1.1.1.1) wurden zur Anzahl der verwendeten Backup-DNS-Server hinzugefügt, wenn der primäre DNS nicht explizit definiert ist. Um die Liste der Backup-DNS-Server zu überschreiben, können Sie die Option „-Ddns-servers=" verwenden;
  • Wenn ein USB-Gerätecontroller erkannt wird, wird automatisch ein neuer usb-gadget.target-Handler gestartet (wenn das System auf einem USB-Peripheriegerät läuft);
  • Für Unit-Dateien ist die Einstellung „CPUQuotaPeriodSec=" implementiert, die den Zeitraum bestimmt, relativ zu dem das CPU-Zeitkontingent gemessen wird, festgelegt durch die Einstellung „CPUQuota=";
  • Für Unit-Dateien ist die Einstellung „ProtectHostname=" implementiert, die es Diensten verbietet, Informationen über den Hostnamen zu ändern, selbst wenn sie über die entsprechenden Berechtigungen verfügen;
  • Für Unit-Dateien ist die Einstellung „NetworkNamespacePath=" implementiert, die es Ihnen ermöglicht, den Namespace an Dienste oder Socket-Units zu binden, indem Sie den Pfad zur Namespace-Datei im /proc-Pseudo-FS angeben;
  • Es wurde die Möglichkeit hinzugefügt, die Ersetzung von Umgebungsvariablen für Prozesse zu deaktivieren, die mit der Einstellung „ExecStart=" gestartet wurden, indem das Zeichen „:" vor dem Startbefehl hinzugefügt wird;
  • Für Timer (.timer-Einheiten) gibt es neue Flags „OnClockChange=" und
    „OnTimezoneChange=", mit dem Sie den Aufruf des Geräts bei Änderung der Systemzeit oder Zeitzone steuern können;

  • Neue Einstellungen „ConditionMemory=" und „ConditionCPUs=" hinzugefügt, die die Bedingungen für den Aufruf einer Einheit abhängig von der Größe des Speichers und der Anzahl der CPU-Kerne festlegen (z. B. kann ein ressourcenintensiver Dienst nur gestartet werden, wenn die erforderliche Menge vorhanden ist). RAM ist verfügbar);
  • Es wurde eine neue time-set.target-Einheit hinzugefügt, die die lokal eingestellte Systemzeit akzeptiert, ohne dass eine Abstimmung mit externen exakten Zeitservern mithilfe der time-sync.target-Einheit erforderlich ist. Die neue Einheit kann von Diensten verwendet werden, die die Präzision einer unsynchronisierten lokalen Uhr benötigen;
  • Option „--show-transaction“ zu „systemctl start“ und ähnlichen Befehlen hinzugefügt, um eine Zusammenfassung aller Jobs anzuzeigen, die aufgrund des angeforderten Vorgangs zur Warteschlange hinzugefügt wurden;
  • systemd-networkd hat eine Definition für einen neuen Status implementiert: „enslaved“, der anstelle von „degraded“ oder „carrier“ für Netzwerkschnittstellen verwendet wird, die Teil aggregierter Links oder Netzwerkbrücken sind. Für primäre Schnittstellen wurde bei Problemen mit einer der Verbundverbindungen der Status „degraded-carrier“ hinzugefügt;
  • Option „IgnoreCarrierLoss=" zu .network-Einheiten hinzugefügt, um Netzwerkeinstellungen im Falle eines Verbindungsfehlers zu speichern;
  • Über die Einstellung „RequiredForOnline=“ in .network-Einheiten können Sie nun den minimal zulässigen Verbindungsstatus festlegen, der erforderlich ist, um die Netzwerkschnittstelle auf „online“ zu übertragen und den systemd-networkd-wait-online-Handler auszulösen;
  • Option „--any“ zu systemd-networkd-wait-online hinzugefügt, um darauf zu warten, dass eine der angegebenen Netzwerkschnittstellen bereit ist, und nicht alle, und Option „--operational-state=", um den Status des Links zu definieren, der dies anzeigt Es ist bereit;
  • „UseAutonomousPrefix="- und „UseOnLinkPrefix="-Einstellungen zu .network-Einheiten hinzugefügt, die zum Ignorieren von Präfixen beim Abrufen verwendet werden können
    Ankündigung von einem IPv6-Router (RA, Router Advertisement);

  • „MulticastFlood=“, „NeighborSuppression=“ und „Learning=“-Einstellungen zu .network-Einheiten hinzugefügt, um die Betriebsparameter der Netzwerkbrücke zu ändern, sowie die Einstellung „TripleSampling=“, um den TRIPLE-SAMPLING-Modus virtueller CAN-Schnittstellen zu ändern;
  • „PrivateKeyFile=“- und „PresharedKeyFile=“-Einstellungen zu .netdev-Einheiten hinzugefügt, mit denen Sie private und gemeinsam genutzte (PSK) Schlüssel für WireGuard VPN-Schnittstellen angeben können;
  • Optionen „same-cpu-crypt“ und „submit-from-crypt-cpus“ zu /etc/crypttab hinzugefügt, um das Scheduler-Verhalten bei der Migration verschlüsselungsbezogener Jobs zwischen CPU-Kernen zu steuern;
  • systemd-tmpfiles ermöglicht die Verarbeitung der Sperrdatei vor dem Ausführen von Vorgängen in Verzeichnissen mit temporären Dateien. Dadurch können Sie die Bereinigung veralteter Dateien für die Dauer bestimmter Aktionen deaktivieren (z. B. beim Entpacken eines TAR-Archivs in / tmp, sehr alt). Es können Dateien geöffnet werden, die nicht gelöscht werden können, bevor die Aktion mit ihnen beendet ist.
  • Der Befehl „systemd-analyze cat-config“ bietet die Möglichkeit, eine in mehrere Dateien aufgeteilte Konfiguration zu analysieren, beispielsweise Benutzer- und Systemvoreinstellungen, den Inhalt von tmpfiles.d und sysusers.d, udev-Regeln usw.
  • Option „--cursor-file=" zu „journalctl“ hinzugefügt, um die zu ladende Datei anzugeben und die Cursorposition zu speichern;
  • Definition des ACRN-Hypervisors und des WSL-Subsystems (Windows-Subsystem für Linux) zu systemd-detect-virt für nachfolgende Verzweigungen mit dem bedingten Operator „ConditionVirtualization“ hinzugefügt;
  • Es wurden keine symbolischen Links in /etc zu systemd-networkd.service, systemd-networkd.socket, systemd-networkd.socket erstellt.
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service und systemd-timesyncd.service. Um diese Dateien zu erstellen, müssen Sie nun den Befehl „systemctl Preset-All“ ausführen.

Quelleopennet.ru

[: En]

Nach zwei Monaten Entwicklungszeit eingereicht Systemmanager-Release System 242. Zu den neuen Funktionen gehören die Unterstützung von L2TP-Tunneln, die Möglichkeit, das Verhalten von systemd-logind beim Neustart über Umgebungsvariablen zu steuern, Unterstützung für erweiterte XBOOTLDR-Bootpartitionen zum Mounten von /boot, die Möglichkeit, mit der Root-Partition in Overlayfs zu booten, und vieles mehr neuer Einstellungen für verschiedene Gerätetypen.

Wichtigste Änderungen:

  • systemd-networkd bietet Unterstützung für L2TP-Tunnel;
  • sd-boot und bootctl unterstützen XBOOTLDR-Partitionen (Extended Boot Loader), die auf /boot gemountet sind, zusätzlich zu ESP-Partitionen, die auf /efi oder /boot/efi gemountet sind. Kernel, Einstellungen, initrd- und EFI-Images können jetzt sowohl von ESP- als auch von XBOOTLDR-Partitionen geladen werden. Diese Änderung ermöglicht die Verwendung des sd-boot-Bootloaders in konservativeren Szenarien, wenn der Bootloader selbst im ESP platziert wird und die bootfähigen Kernel und die zugehörigen Metadaten in einen separaten Abschnitt verschoben werden;
  • Es wurde die Möglichkeit hinzugefügt, mit der an den Kernel übergebenen Option „systemd.volatile=overlay“ zu booten, wodurch Sie die Root-Partition in overlayfs platzieren und die Arbeit auf einem schreibgeschützten Image des Root-Verzeichnisses organisieren können, wobei Änderungen in a geschrieben werden separates Verzeichnis in tmpfs (Änderungen in dieser Konfiguration gehen nach einem Neustart verloren) . Analog dazu wurde systemd-nspawn die Option „--volatile=overlay“ hinzugefügt, um ähnliche Funktionen in Containern zu nutzen;
  • Option „--oci-bundle“ zu systemd-nspawn hinzugefügt, um die Verwendung von Laufzeitpaketen zu ermöglichen und so die isolierte Ausführung von Containern zu ermöglichen, die der Open Container Initiative (OCI)-Spezifikation entsprechen. Für die Verwendung in der Befehlszeile und bei nspawn-Einheiten wird Unterstützung für verschiedene in der OCI-Spezifikation beschriebene Optionen vorgeschlagen. Beispielsweise können die Einstellungen „--inaccessible“ und „Inaccessible“ verwendet werden, um Teile des Dateisystems auszuschließen, und die Einstellungen „--inaccessible“ und „Inaccessible“. -console“-Optionen wurden hinzugefügt, um Standardausgabeströme und „—pipe“ zu konfigurieren;
  • Möglichkeit hinzugefügt, das Verhalten von systemd-logind über Umgebungsvariablen zu steuern: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_MENU und
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Mithilfe dieser Variablen können Sie Ihre eigenen Neustartprozess-Handler (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu und) verbinden
    /run/systemd/reboot-to-boot-loader-entry) oder deaktivieren Sie sie ganz (wenn auf „false“ gesetzt);

  • „--boot-load-menu="-Optionen zum Befehl „systemctl reboot" hinzugefügt und
    „--boot-loader-entry=", damit Sie nach dem Neustart einen bestimmten Startmenüpunkt oder Startmodus auswählen können;

  • Es wurde ein neuer Sandbox-Isolationsbefehl „RestrictSUIDSGID=" hinzugefügt, der seccomp verwendet, um die Erstellung von Dateien mit SUID/SGID-Flags zu verhindern;
  • Standardeinschränkungen „NoNewPrivileges“ und „RestrictSUIDSGID“ in Diensten mit aktivierter dynamischer Benutzer-ID-Generierung („DynamicUser“) implementiert;
  • Die Standardeinstellung MACAddressPolicy=persistent in .link-Dateien wurde geändert, um mehr Geräte abzudecken. Schnittstellen von Netzwerkbrücken, Tunneln (Tun, Tap) und aggregierten Links (Bond) identifizieren sich nur durch den Namen der Netzwerkschnittstelle, daher wird dieser Name jetzt als Grundlage für die Bindung von MAC- und IPv4-Adressen verwendet. Darüber hinaus wurde die Einstellung „MACAddressPolicy=random“ hinzugefügt, mit der MAC- und IPv4-Adressen in zufälliger Reihenfolge an Geräte gebunden werden können;
  • „.device“-Einheitsdateien, die über systemd-fstab-generator generiert wurden, enthalten die entsprechenden „.mount“-Einheiten nicht mehr als Abhängigkeiten im Abschnitt „Wants=". Durch einfaches Anschließen eines Geräts wird nicht mehr automatisch eine Mount-Einheit gestartet. Solche Einheiten können jedoch weiterhin aus anderen Gründen gestartet werden, beispielsweise als Teil von local-fs.target oder als Abhängigkeit von anderen Einheiten, die von local-fs.target abhängen.
  • Den Befehlen „networkctl list/status/lldp“ wurde Unterstützung für Masken („*“ usw.) hinzugefügt, um bestimmte Gruppen von Netzwerkschnittstellen anhand eines Teils ihres Namens herauszufiltern.
  • Die Umgebungsvariable $PIDFILE wird jetzt unter Verwendung des absoluten Pfads festgelegt, der in den Diensten über die Option „PIDFile=;“ konfiguriert wurde.
  • Öffentliche Cloudflare-Server (1.1.1.1) wurden zur Anzahl der verwendeten Backup-DNS-Server hinzugefügt, wenn der primäre DNS nicht explizit definiert ist. Um die Liste der Backup-DNS-Server zu überschreiben, können Sie die Option „-Ddns-servers=" verwenden;
  • Wenn ein USB-Gerätecontroller erkannt wird, wird automatisch ein neuer usb-gadget.target-Handler gestartet (wenn das System auf einem USB-Peripheriegerät läuft);
  • Für Unit-Dateien ist die Einstellung „CPUQuotaPeriodSec=" implementiert, die den Zeitraum bestimmt, relativ zu dem das CPU-Zeitkontingent gemessen wird, festgelegt durch die Einstellung „CPUQuota=";
  • Für Unit-Dateien ist die Einstellung „ProtectHostname=" implementiert, die es Diensten verbietet, Informationen über den Hostnamen zu ändern, selbst wenn sie über die entsprechenden Berechtigungen verfügen;
  • Für Unit-Dateien ist die Einstellung „NetworkNamespacePath=" implementiert, die es Ihnen ermöglicht, den Namespace an Dienste oder Socket-Units zu binden, indem Sie den Pfad zur Namespace-Datei im /proc-Pseudo-FS angeben;
  • Es wurde die Möglichkeit hinzugefügt, die Ersetzung von Umgebungsvariablen für Prozesse zu deaktivieren, die mit der Einstellung „ExecStart=" gestartet wurden, indem das Zeichen „:" vor dem Startbefehl hinzugefügt wird;
  • Für Timer (.timer-Einheiten) gibt es neue Flags „OnClockChange=" und
    „OnTimezoneChange=", mit dem Sie den Aufruf des Geräts bei Änderung der Systemzeit oder Zeitzone steuern können;

  • Neue Einstellungen „ConditionMemory=" und „ConditionCPUs=" hinzugefügt, die die Bedingungen für den Aufruf einer Einheit abhängig von der Größe des Speichers und der Anzahl der CPU-Kerne festlegen (z. B. kann ein ressourcenintensiver Dienst nur gestartet werden, wenn die erforderliche Menge vorhanden ist). RAM ist verfügbar);
  • Es wurde eine neue time-set.target-Einheit hinzugefügt, die die lokal eingestellte Systemzeit akzeptiert, ohne dass eine Abstimmung mit externen exakten Zeitservern mithilfe der time-sync.target-Einheit erforderlich ist. Die neue Einheit kann von Diensten verwendet werden, die die Präzision einer unsynchronisierten lokalen Uhr benötigen;
  • Option „--show-transaction“ zu „systemctl start“ und ähnlichen Befehlen hinzugefügt, um eine Zusammenfassung aller Jobs anzuzeigen, die aufgrund des angeforderten Vorgangs zur Warteschlange hinzugefügt wurden;
  • systemd-networkd hat eine Definition für einen neuen Status implementiert: „enslaved“, der anstelle von „degraded“ oder „carrier“ für Netzwerkschnittstellen verwendet wird, die Teil aggregierter Links oder Netzwerkbrücken sind. Für primäre Schnittstellen wurde bei Problemen mit einer der Verbundverbindungen der Status „degraded-carrier“ hinzugefügt;
  • Option „IgnoreCarrierLoss=" zu .network-Einheiten hinzugefügt, um Netzwerkeinstellungen im Falle eines Verbindungsfehlers zu speichern;
  • Über die Einstellung „RequiredForOnline=“ in .network-Einheiten können Sie nun den minimal zulässigen Verbindungsstatus festlegen, der erforderlich ist, um die Netzwerkschnittstelle auf „online“ zu übertragen und den systemd-networkd-wait-online-Handler auszulösen;
  • Option „--any“ zu systemd-networkd-wait-online hinzugefügt, um darauf zu warten, dass eine der angegebenen Netzwerkschnittstellen bereit ist, und nicht alle, und Option „--operational-state=", um den Status des Links zu definieren, der dies anzeigt Es ist bereit;
  • „UseAutonomousPrefix="- und „UseOnLinkPrefix="-Einstellungen zu .network-Einheiten hinzugefügt, die zum Ignorieren von Präfixen beim Abrufen verwendet werden können
    Ankündigung von einem IPv6-Router (RA, Router Advertisement);

  • „MulticastFlood=“, „NeighborSuppression=“ und „Learning=“-Einstellungen zu .network-Einheiten hinzugefügt, um die Betriebsparameter der Netzwerkbrücke zu ändern, sowie die Einstellung „TripleSampling=“, um den TRIPLE-SAMPLING-Modus virtueller CAN-Schnittstellen zu ändern;
  • „PrivateKeyFile=“- und „PresharedKeyFile=“-Einstellungen zu .netdev-Einheiten hinzugefügt, mit denen Sie private und gemeinsam genutzte (PSK) Schlüssel für WireGuard VPN-Schnittstellen angeben können;
  • Optionen „same-cpu-crypt“ und „submit-from-crypt-cpus“ zu /etc/crypttab hinzugefügt, um das Scheduler-Verhalten bei der Migration verschlüsselungsbezogener Jobs zwischen CPU-Kernen zu steuern;
  • systemd-tmpfiles ermöglicht die Verarbeitung der Sperrdatei vor dem Ausführen von Vorgängen in Verzeichnissen mit temporären Dateien. Dadurch können Sie die Bereinigung veralteter Dateien für die Dauer bestimmter Aktionen deaktivieren (z. B. beim Entpacken eines TAR-Archivs in / tmp, sehr alt). Es können Dateien geöffnet werden, die nicht gelöscht werden können, bevor die Aktion mit ihnen beendet ist.
  • Der Befehl „systemd-analyze cat-config“ bietet die Möglichkeit, eine in mehrere Dateien aufgeteilte Konfiguration zu analysieren, beispielsweise Benutzer- und Systemvoreinstellungen, den Inhalt von tmpfiles.d und sysusers.d, udev-Regeln usw.
  • Option „--cursor-file=" zu „journalctl“ hinzugefügt, um die zu ladende Datei anzugeben und die Cursorposition zu speichern;
  • Definition des ACRN-Hypervisors und des WSL-Subsystems (Windows-Subsystem für Linux) zu systemd-detect-virt für nachfolgende Verzweigungen mit dem bedingten Operator „ConditionVirtualization“ hinzugefügt;
  • Es wurden keine symbolischen Links in /etc zu systemd-networkd.service, systemd-networkd.socket, systemd-networkd.socket erstellt.
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service und systemd-timesyncd.service. Um diese Dateien zu erstellen, müssen Sie nun den Befehl „systemctl Preset-All“ ausführen.

Source: opennet.ru

[:]

Kommentar hinzufügen