systemd Systemmanager Version 249

Nach drei Monaten Entwicklungszeit wird die Veröffentlichung des Systemmanagers systemd 249 vorgestellt. Die neue Version bietet die Möglichkeit, Benutzer/Gruppen im JSON-Format zu definieren, stabilisiert das Journal-Protokoll, vereinfacht die Organisation des Ladens aufeinanderfolgender Festplattenpartitionen und fügt die Möglichkeit hinzu Durch die Verknüpfung von BPF-Programmen mit Diensten und die Implementierung von Identifier-Mapping-Benutzern in gemounteten Partitionen werden zahlreiche neue Netzwerkeinstellungen und Möglichkeiten zum Starten von Containern angeboten.

Wichtigste Änderungen:

  • Das Journal-Protokoll ist dokumentiert und kann in Clients anstelle des Syslog-Protokolls für die lokale Übermittlung von Protokolldatensätzen verwendet werden. Das Journal-Protokoll ist seit langem implementiert und wird bereits in einigen Client-Bibliotheken verwendet, seine offizielle Unterstützung wurde jedoch gerade erst angekündigt.
  • Userdb und nss-systemd bieten Unterstützung für das Lesen zusätzlicher Benutzerdefinitionen in den Verzeichnissen /etc/userdb/, /run/userdb/, /run/host/userdb/ und /usr/lib/userdb/, angegeben im JSON-Format. Es wird darauf hingewiesen, dass diese Funktion einen zusätzlichen Mechanismus zum Erstellen von Benutzern im System bietet und eine vollständige Integration mit NSS und /etc/shadow ermöglicht. Durch die JSON-Unterstützung für Benutzer-/Gruppeneinträge können außerdem verschiedene Ressourcenverwaltungs- und andere Einstellungen an Benutzer angehängt werden, die pam_systemd und systemd-logind erkennen.
  • nss-systemd bietet eine Synthese von Benutzer-/Gruppeneinträgen in /etc/shadow unter Verwendung gehashter Passwörter von systemd-homed.
  • Es wurde ein Mechanismus implementiert, der die Organisation von Updates mithilfe von Festplattenpartitionen vereinfacht, die sich gegenseitig ersetzen (eine Partition ist aktiv und die zweite ist eine Ersatzpartition – das Update wird auf die Ersatzpartition kopiert und wird dann aktiv). Wenn das Festplatten-Image zwei Root- oder /usr-Partitionen enthält und udev das Vorhandensein des Parameters „root=“ nicht erkannt hat oder Festplatten-Images verarbeitet, die über die Option „--image“ in systemd-nspawn und systemd angegeben wurden -dissect-Dienstprogramme kann die Startpartition durch Vergleichen von GPT-Labels berechnet werden (vorausgesetzt, das GPT-Label gibt die Versionsnummer des Inhalts der Partition an und systemd wählt die Partition mit den neueren Änderungen aus).
  • Den Dienstdateien wurde eine BPFProgram-Einstellung hinzugefügt, mit der Sie das Laden von BPF-Programmen in den Kernel organisieren und sie mit Bindung an bestimmte Systemd-Dienste verwalten können.
  • Systemd-fstab-generator und systemd-repart bieten die Möglichkeit, von Festplatten zu booten, die nur eine /usr-Partition und keine Root-Partition haben (die Root-Partition wird von systemd-repart beim ersten Booten generiert).
  • In systemd-nspawn wurde die Option „--private-user-chown“ durch die allgemeinere Option „--private-user-ownership“ ersetzt, die „chown“-Werte als Äquivalent von „--“ akzeptieren kann. private-user-chown“, „off“, um die alte Einstellung zu deaktivieren, „map“, um Benutzer-IDs auf gemounteten Dateisystemen zuzuordnen und „auto“, um „map“ auszuwählen, wenn die erforderliche Funktionalität im Kernel (5.12+) vorhanden ist oder zurückfällt andernfalls zu einem rekursiven Aufruf von „chown“. Mithilfe der Zuordnung können Sie die Dateien eines Benutzers auf einer gemounteten Fremdpartition einem anderen Benutzer auf dem aktuellen System zuordnen und so die gemeinsame Nutzung von Dateien zwischen verschiedenen Benutzern vereinfachen. Beim Systemd-Homed-Mechanismus für tragbare Home-Verzeichnisse ermöglicht die Zuordnung Benutzern, ihre Home-Verzeichnisse auf externe Medien zu verschieben und sie auf verschiedenen Computern zu verwenden, die nicht über dasselbe Benutzer-ID-Layout verfügen.
  • In systemd-nspawn kann die Option „--private-user“ jetzt den Wert „identity“ verwenden, um Benutzer-IDs beim Einrichten eines Benutzernamensraums direkt wiederzugeben, d. h. UID 0 und UID 1 im Container werden in UID 0 und UID 1 auf der Hostseite widergespiegelt, um Angriffsvektoren zu reduzieren (der Container erhält nur Prozessfunktionen in seinem Namespace).
  • Die Option „--bind-user“ wurde zu systemd-nspawn hinzugefügt, um ein in der Host-Umgebung vorhandenes Benutzerkonto an den Container weiterzuleiten (das Home-Verzeichnis wird in den Container gemountet, ein Benutzer-/Gruppeneintrag wird hinzugefügt und eine UID-Zuordnung durchgeführt). wird zwischen dem Container und der Host-Umgebung durchgeführt).
  • Unterstützung für die Anforderung festgelegter Passwörter für systemd-ask-password und systemd-sysusers (passwd.hashed-password) hinzugefügt. und passwd.plaintext-password. ) nutzt den in systemd 247 eingeführten Mechanismus, um vertrauliche Daten mithilfe von Zwischendateien in einem separaten Verzeichnis sicher zu übertragen. Standardmäßig werden Anmeldeinformationen vom Prozess mit PID1 akzeptiert, der sie beispielsweise vom Container-Management-Manager erhält, wodurch Sie das Benutzerkennwort beim ersten Start konfigurieren können.
  • systemd-firstboot fügt Unterstützung für die Verwendung des Mechanismus zur sicheren Übertragung sensibler Daten zur Abfrage verschiedener Systemparameter hinzu, der zum Initialisieren von Systemeinstellungen beim ersten Booten eines Container-Images verwendet werden kann, das nicht über die erforderlichen Einstellungen im Verzeichnis /etc verfügt.
  • Der PID 1-Prozess stellt sicher, dass beim Booten sowohl der Gerätename als auch die Beschreibung angezeigt werden. Sie können die Ausgabe über den Parameter „StatusUnitFormat=combined“ in system.conf oder die Kernel-Befehlszeilenoption „systemd.status-unit-format=combined“ ändern.
  • Die Option „--image“ wurde den Dienstprogrammen systemd-machine-id-setup und systemd-repart hinzugefügt, um eine Datei mit einer Maschinen-ID auf ein Disk-Image zu übertragen oder die Größe eines Disk-Images zu erhöhen.
  • Der vom Dienstprogramm systemd-repart verwendeten Partitionskonfigurationsdatei wurde ein MakeDirectories-Parameter hinzugefügt, mit dem beliebige Verzeichnisse im erstellten Dateisystem erstellt werden können, bevor sie in der Partitionstabelle angezeigt werden (z. B. zum Erstellen von Verzeichnissen für Einhängepunkte in die Root-Partition, sodass Sie die Partition sofort im schreibgeschützten Modus mounten können). Um GPT-Flags in erstellten Abschnitten zu steuern, wurden die entsprechenden Parameter Flags, ReadOnly und NoAuto hinzugefügt. Der Parameter CopyBlocks hat den Wert „auto“, um beim Kopieren von Blöcken automatisch die aktuelle Boot-Partition als Quelle auszuwählen (z. B. wenn Sie Ihre eigene Root-Partition auf ein neues Medium übertragen müssen).
  • GPT implementiert das Flag „grow-file-system“, das der Mount-Option x-systemd.growfs ähnelt und eine automatische Erweiterung der FS-Größe bis zu den Grenzen des Blockgeräts ermöglicht, wenn die FS-Größe kleiner als die Partition ist. Das Flag gilt für Ext3-, XFS- und Btrfs-Dateisysteme und kann auf automatisch erkannte Partitionen angewendet werden. Das Flag ist standardmäßig für beschreibbare Partitionen aktiviert, die automatisch über systemd-repart erstellt werden. Die Option GrowFileSystem wurde hinzugefügt, um das Flag in systemd-repart zu konfigurieren.
  • Die Datei /etc/os-release bietet Unterstützung für die neuen Variablen IMAGE_VERSION und IMAGE_ID, um die Version und ID atomar aktualisierter Bilder zu bestimmen. Die Spezifizierer %M und %A werden vorgeschlagen, um bestimmte Werte in verschiedenen Befehlen zu ersetzen.
  • Der Parameter „--extension“ wurde zum Dienstprogramm portablectl hinzugefügt, um portable Systemerweiterungs-Images zu aktivieren (über sie können Sie beispielsweise Images mit zusätzlichen Diensten verteilen, die in die Root-Partition integriert sind).
  • Das Dienstprogramm systemd-coredump ermöglicht die Extraktion von ELF-Build-ID-Informationen beim Generieren eines Core-Dumps eines Prozesses. Dies kann nützlich sein, um zu bestimmen, zu welchem ​​Paket ein fehlerhafter Prozess gehört, wenn Informationen über den Namen und die Version von Deb- oder RPM-Paketen erstellt wurden in die ELF-Dateien.
  • Eine neue Hardwarebasis für FireWire-Geräte (IEEE 1394) wurde zu udev hinzugefügt.
  • In udev wurden drei Änderungen zum Auswahlschema für Netzwerkschnittstellennamen „net_id“ hinzugefügt, die die Abwärtskompatibilität verletzen: Falsche Zeichen in Schnittstellennamen werden jetzt durch „_“ ersetzt; PCI-Hotplug-Steckplatznamen für s390-Systeme werden in hexadezimaler Form verarbeitet; Die Verwendung von bis zu 65535 eingebauten PCI-Geräten ist erlaubt (bisher waren Nummern über 16383 gesperrt).
  • systemd-resolved fügt die Domäne „home.arpa“ zur NTA-Liste (Negative Trust Anchors) hinzu, die für lokale Heimnetzwerke empfohlen, aber in DNSSEC nicht verwendet wird.
  • Der CPUAffinity-Parameter ermöglicht das Parsen der „%“-Bezeichner.
  • Den .network-Dateien wurde ein Parameter „ManageForeignRoutingPolicyRules“ hinzugefügt, der verwendet werden kann, um systemd-networkd von der Verarbeitung von Routing-Richtlinien Dritter auszuschließen.
  • Der Parameter „RequiredFamilyForOnline“ wurde zu den „.network“-Dateien hinzugefügt, um das Vorhandensein einer IPv4- oder IPv6-Adresse als Zeichen dafür zu ermitteln, dass sich die Netzwerkschnittstelle im „Online“-Zustand befindet. Networkctl bietet eine Anzeige des „Online“-Status für jeden Link.
  • Parameter „OutgoingInterface“ zu .network-Dateien hinzugefügt, um beim Konfigurieren von Netzwerkbrücken ausgehende Schnittstellen zu definieren.
  • Den „.network“-Dateien wurde ein Gruppenparameter hinzugefügt, mit dem Sie eine Multipath-Gruppe für Einträge im Abschnitt „[NextHop]“ konfigurieren können.
  • Optionen „-4“ und „-6“ zu systemd-network-wait-online hinzugefügt, um Verbindungswartezeiten nur auf IPv4 oder IPv6 zu beschränken.
  • Den DHCP-Servereinstellungen wurde ein RelayTarget-Parameter hinzugefügt, der den Server in den DHCP-Ralay-Modus schaltet. Zur weiteren Konfiguration des DHCP-Relays werden die Optionen RelayAgentCircuitId und RelayAgentRemoteId angeboten.
  • Der Parameter ServerAddress wurde zum DHCP-Server hinzugefügt, sodass Sie die Server-IP-Adresse explizit festlegen können (andernfalls wird die Adresse automatisch ausgewählt).
  • Der DHCP-Server implementiert den Abschnitt [DHCPServerStaticLease], der es Ihnen ermöglicht, statische Adressbindungen (DHCP-Leases) zu konfigurieren und feste IP-Bindungen an MAC-Adressen anzugeben und umgekehrt.
  • Die Einstellung „RestrictAddressFamilies“ unterstützt den Wert „none“, was bedeutet, dass der Dienst keinen Zugriff auf Sockets einer Adressfamilie hat.
  • In den „.network“-Dateien in den Abschnitten [Address], [DHCPv6PrefixDelegation] und [IPv6Prefix] ist die Unterstützung für die RouteMetric-Einstellung implementiert, mit der Sie die Metrik für das für die angegebene Adresse erstellte Routenpräfix angeben können.
  • nss-myhostname und systemd-resolved ermöglichen die Synthese von DNS-Einträgen mit Adressen für Hosts mit einem speziellen Namen „_outbound“, für den immer eine lokale IP vergeben wird, die gemäß den für ausgehende Verbindungen verwendeten Standardrouten ausgewählt wird.
  • In .network-Dateien wurde im Abschnitt „[DHCPv4]“ eine standardmäßige aktive RoutesToNTP-Einstellung hinzugefügt, die das Hinzufügen einer separaten Route über die aktuelle Netzwerkschnittstelle erfordert, um über DHCP (ähnlich wie DNS) auf die für diese Schnittstelle erhaltene NTP-Serveradresse zuzugreifen Mit dieser Einstellung können Sie garantieren, dass der Datenverkehr zum NTP-Server über die Schnittstelle geleitet wird, über die diese Adresse empfangen wurde.
  • Die Einstellungen SocketBindAllow und SocketBindDeny wurden hinzugefügt, um den Zugriff auf Sockets zu steuern, die an den aktuellen Dienst gebunden sind.
  • Für Unit-Dateien wurde eine bedingte Einstellung namens ConditionFirmware implementiert, mit der Sie Prüfungen erstellen können, die Firmware-Funktionen bewerten, wie z. B. die Arbeit auf UEFI- und device.tree-Systemen, sowie die Kompatibilität mit bestimmten Gerätebaumfunktionen prüfen.
  • Die Option ConditionOSRelease wurde implementiert, um Felder in der Datei /etc/os-release zu überprüfen. Beim Definieren von Bedingungen zur Überprüfung von Feldwerten sind die Operatoren „=“, „!=“, „<“, „<=“, „>=“, „>“ zulässig.
  • Im Dienstprogramm hostnamectl werden Befehle wie „get-xyz“ und „set-xyz“ von den Präfixen „get“ und „set“ befreit, beispielsweise anstelle von „hostnamectl get-hostname“ und „hostnamectl „set-hostname“. Sie können den Befehl „hostnamectl hostname“ verwenden, wobei die Zuweisung eines Wertes durch die Angabe eines zusätzlichen Arguments („hostnamectl hostname value“) festgelegt wird. Die Unterstützung älterer Befehle wurde beibehalten, um die Kompatibilität sicherzustellen.
  • Das Dienstprogramm systemd-detect-virt und die Einstellung ConditionVirtualization stellen die korrekte Identifizierung von Amazon EC2-Umgebungen sicher.
  • Die LogLevelMax-Einstellung in Unit-Dateien gilt jetzt nicht nur für vom Dienst generierte Protokollmeldungen, sondern auch für PID 1-Prozessmeldungen, die den Dienst erwähnen.
  • Bietet die Möglichkeit, SBAT-Daten (UEFI Secure Boot Advanced Targeting) in systemd-boot EFI PE-Dateien einzubinden.
  • /etc/crypttab implementiert die neuen Optionen „headless“ und „password-echo“ – mit der ersten können Sie alle Vorgänge überspringen, die mit der interaktiven Aufforderung zur Eingabe von Passwörtern und PINs durch den Benutzer verbunden sind, und mit der zweiten können Sie die Methode zur Anzeige der Passworteingabe konfigurieren (nichts anzeigen, Zeichen für Zeichen anzeigen und Sternchen anzeigen). Für ähnliche Zwecke wurde systemd-ask-password die Option „--echo“ hinzugefügt.
  • systemd-cryptenroll, systemd-cryptsetup und systemd-homed haben die Unterstützung für das Entsperren verschlüsselter LUKS2-Partitionen mithilfe von FIDO2-Tokens erweitert. Neue Optionen „--fido2-with-user-presence“, „--fido2-with-user-verification“ und „-fido2-with-client-pin“ hinzugefügt, um die Überprüfung der physischen Anwesenheit des Benutzers, die Verifizierung und die Notwendigkeit des Zutritts zu steuern einen PIN-Code.
  • „--user“, „--system“, „--merge“ und „--file“-Optionen zu systemd-journal-gatewayd hinzugefügt, ähnlich den Journalctl-Optionen.
  • Zusätzlich zu den direkten Abhängigkeiten zwischen Einheiten, die über die Parameter „OnFailure“ und „Slice“ angegeben werden, wurde Unterstützung für implizite inverse Abhängigkeiten „OnFailureOf“ und „SliceOf“ hinzugefügt, die beispielsweise für die Bestimmung aller in Slice enthaltenen Einheiten nützlich sein können.
  • Neue Arten von Abhängigkeiten zwischen Einheiten hinzugefügt: OnSuccess und OnSuccessOf (das Gegenteil von OnFailure, wird nach erfolgreichem Abschluss aufgerufen); PropagatesStopTo und StopPropagatedFrom (ermöglichen die Weitergabe des Stoppereignisses einer Einheit an eine andere Einheit); Upholds und UpheldBy (Alternative zu Restart).
  • Das Dienstprogramm systemd-ask-password verfügt jetzt über die Option „--emoji“, um das Erscheinen des Vorhängeschlosssymbols (🔐) in der Passworteingabezeile zu steuern.
  • Dokumentation zur Systemd-Quellbaumstruktur hinzugefügt.
  • Für Einheiten wurde eine MemoryAvailable-Eigenschaft hinzugefügt, die anzeigt, wie viel Speicher die Einheit noch hat, bevor sie den durch die Parameter MemoryMax, MemoryHigh oder MemoryAvailable festgelegten Grenzwert erreicht.

Source: opennet.ru

Kommentar hinzufügen