Version des Systemmanagers systemd 249

Nach drei Monaten Entwicklung wurde die Version des Systemmanagers systemd 249 vorgestellt. In dieser neuen Version ist es möglich, Benutzer/Gruppen im JSON-Format zu definieren, das Journal-Protokoll wurde stabilisiert, die Organisation des Bootens von abwechselnden Festplattenpartitionen wurde vereinfacht, die Bindung von BPF-Programmen an Dienste wurde hinzugefĂŒgt und es wurde ein Mapping von Benutzeridentifikatoren in gemounteten Partitionen implementiert. Zudem wurden eine Vielzahl neuer Netzwerkeinstellungen und Möglichkeiten zum Starten von Containern angeboten.

HauptÀnderungen:

  • Das Journal-Protokoll wurde dokumentiert, das in Clients anstelle des Syslog-Protokolls zur lokalen Lieferung von ProtokolleintrĂ€gen verwendet werden kann. Das Journal-Protokoll wurde bereits vor einiger Zeit implementiert und wird in einigen Client-Bibliotheken verwendet; dennoch wird die offizielle UnterstĂŒtzung erst jetzt bekannt gegeben.
  • In userdb und nss-systemd wurde das Lesen zusĂ€tzlicher Benutzerdefinitionen ermöglicht, die in den Verzeichnissen /etc/userdb/, /run/userdb/, /run/host/userdb/ und /usr/lib/userdb/ im JSON-Format abgelegt sind. Es wird darauf hingewiesen, dass diese Möglichkeit einen zusĂ€tzlichen Mechanismus zur Erstellung von Benutzern im System bietet, was eine vollstĂ€ndige Integration mit NSS und /etc/shadow gewĂ€hrleisten wird. Die UnterstĂŒtzung des JSON-Formats fĂŒr Benutzer/Gruppenaufzeichnungen wird es ebenfalls ermöglichen, verschiedene Ressourcenkontrollparameter und andere Einstellungen anzuhĂ€ngen, die pam_systemd und systemd-logind erkennen.
  • In nss-systemd wurde die Synthese von Benutzergruppenaufzeichnungen in /etc/shadow unter Verwendung von gehashten Passwörtern aus systemd-homed gewĂ€hrleistet.
  • Ein Mechanismus wurde implementiert, der die Organisation von Updates unter Verwendung von abwechselnden Festplattenpartitionen (eine Partition aktiv und die andere Reserve – das Update wird auf die Reservepartition kopiert, die dann aktiv wird) vereinfacht. Wenn im Disk-Image zwei Root- oder /usr-Partitionen vorhanden sind und udev den ‚root=‘-Parameter nicht erkannt hat oder die Verarbeitung von Disk-Images erfolgt, die ĂŒber die Option „—image“ in den Dienstprogrammen systemd-nspawn und systemd-dissect angegeben sind, kann die zu ladende Partition durch den Vergleich von GPT-Labels berechnet werden (es wird davon ausgegangen, dass im GPT-Label die Versionsnummer des Inhalts der Partition erwĂ€hnt wird und systemd die Partition mit den aktuelleren Änderungen auswĂ€hlen wird).
  • In den Servicedateien wurde die Einstellung BPFProgram hinzugefĂŒgt, mit der das Laden von BPF-Programmen in den Kernel und deren Verwaltung in Verbindung mit bestimmten systemd-Diensten organisiert werden kann.
  • In systemd-fstab-generator und systemd-repart wurde die Möglichkeit hinzugefĂŒgt, von Festplatten zu booten, auf denen nur die Partition /usr vorhanden ist und keine Root-Partition (die Root-Partition wird von der Utility systemd-repart beim ersten Booten generiert).
  • In systemd-nspawn wurde die Option "—private-user-chown" durch die universellere Option "—private-user-ownership" ersetzt, die die Werte „chown“ als Äquivalent zu „—private-user-chown“, „off“ zum Deaktivieren der alten Einstellung, „map“ fĂŒr das Mapping von Benutzeridentifikatoren in gemounteten Dateisystemen und „auto“ zur Auswahl von „map“ bei vorhandener benötigter FunktionalitĂ€t im Kernel (5.12+) oder zum ZurĂŒckfallen auf den rekursiven Aufruf von „chown“ im anderen Fall annehmen kann. Durch das Mapping können Dateien eines Benutzers auf einem gemounteten fremden Volume einem anderen Benutzer im aktuellen System zugeordnet werden, was die gemeinsame Nutzung von Dateien zwischen verschiedenen Benutzern erleichtert. Im Mechanismus der portablen Home-Verzeichnisse systemd-homed ermöglicht das Mapping den Benutzern, ihre Home-Verzeichnisse auf externen Speichermedien zu verschieben und sie auf verschiedenen Computern zu verwenden, deren Benutzeridentifikatoren nicht ĂŒbereinstimmen.
  • In systemd-nspawn kann jetzt in der Option „—private-user“ der Wert „identity“ verwendet werden, um die Benutzeridentifikatoren direkt bei der Konfiguration des Namensraums (user namespace) abzubilden, d. h. UID 0 und UID 1 im Container werden in UID 0 und UID 1 auf der Host-Seite abgebildet, um Angriffsvektoren zu reduzieren (der Container erhĂ€lt die Berechtigungen des Prozesses nur in seinem eigenen Namensraum).
  • In systemd-nspawn wurde die Option „—bind-user“ hinzugefĂŒgt, um ein Benutzerkonto aus der Host-Umgebung in den Container durchzureichen (das Home-Verzeichnis wird in den Container gemountet, ein Benutzer-/Gruppeneintrag wird hinzugefĂŒgt und eine UID-Zuordnung zwischen Container und Host-Umgebung wird durchgefĂŒhrt).
  • In systemd-ask-password und systemd-sysusers wurde die UnterstĂŒtzung fĂŒr die Abfrage von festgelegten Passwörtern (passwd.hashed-password.<user> und passwd.plaintext-password.<user>) durch den in der Version systemd 247 eingefĂŒhrten Mechanismus zur sicheren Übertragung vertraulicher Daten mittels temporĂ€rer Dateien in einem separaten Verzeichnis hinzugefĂŒgt. StandardmĂ€ĂŸig werden die Anmeldeinformationen von dem Prozess mit PID1 akzeptiert, der sie beispielsweise vom Containerverwaltungsmanager erhĂ€lt, wodurch es möglich wird, das Benutzerpasswort beim ersten Booten einzurichten.
  • In systemd-firstboot wurde die Verwendung des Mechanismus zur sicheren Übertragung vertraulicher Daten zur Abfrage verschiedener Systemparameter hinzugefĂŒgt, was zur Initialisierung von Systemeinstellungen beim ersten Booten eines Container-Images verwendet werden kann, fĂŒr das im Verzeichnis /etc keine erforderlichen Einstellungen vorhanden sind.
  • Im Prozess mit PID 1 wĂ€hrend des Bootens wird gleichzeitig der Name und die Beschreibung der Einheit angezeigt. Die Ausgabe kann ĂŒber den Parameter „StatusUnitFormat=combined“ in der system.conf oder die Kernel-Befehlszeilenoption „systemd.status-unit-format=combined“ geĂ€ndert werden.
  • In den Dienstprogrammen systemd-machine-id-setup und systemd-repart wurde die Option „—image“ hinzugefĂŒgt, um eine Datei mit der Maschinen-ID in Disk-Images zu ĂŒbertragen oder die GrĂ¶ĂŸe des Disk-Images zu erhöhen.
  • In die Konfigurationsdatei fĂŒr Partitionen, die von dem Dienstprogramm systemd-repart verwendet wird, wurde der Parameter MakeDirectories hinzugefĂŒgt, der zum Erstellen beliebiger Verzeichnisse im erstellten Dateisystem in der Phase vor der Spiegelung in der Partitionstabelle verwendet werden kann (z. B. zum Erstellen von Verzeichnissen fĂŒr EinhĂ€ngepunkte im Wurzelverzeichnis, um das sofortige EinhĂ€ngen der Partition im Nur-Lese-Modus zu ermöglichen). Zum Verwalten von GPT-Flags in den erstellten Partitionen wurden die entsprechenden Parameter Flags, ReadOnly und NoAuto hinzugefĂŒgt. Im Parameter CopyBlocks wurde der Wert „auto“ implementiert, um beim Kopieren von Blöcken automatisch die aktuelle Boot-Partition als Quelle auszuwĂ€hlen (z. B. wenn es notwendig ist, die eigene Wurzelpartition auf ein neues Medium zu ĂŒbertragen).
  • Im GPT wurde das Flag "grow-file-system" implementiert, das der x-systemd.growfs-Mount-Option entspricht und eine automatische Erweiterung der DateisystemgrĂ¶ĂŸe bis zu den Grenzen des BlockgerĂ€ts ermöglicht, wenn die DateisystemgrĂ¶ĂŸe kleiner als die Partition ist. Das Flag ist anwendbar auf die Dateisysteme Ext3, XFS und Btrfs und kann auf automatisch erkannten Partitionen verwendet werden. Das Flag ist standardmĂ€ĂŸig fĂŒr beschreibbare Partitionen aktiviert, die automatisch ĂŒber systemd-repart erstellt werden. FĂŒr die Konfiguration des Flags wurde in systemd-repart die Option GrowFileSystem hinzugefĂŒgt.
  • In der Datei /etc/os-release wurde die UnterstĂŒtzung neuer Variablen IMAGE_VERSION und IMAGE_ID implementiert, um die Version und die Identifikation atomar aktualisierbarer Images zu bestimmen. FĂŒr die Platzierung der angegebenen Werte in verschiedenen Befehlen wurden die Spezifizierer %M und %A vorgeschlagen.
  • In das Utility portablectl wurde der Parameter "—extension" hinzugefĂŒgt, um tragbare Systemerweiterungs-Images zu aktivieren (zum Beispiel, um Images mit zusĂ€tzlichen Diensten zu verbreiten, die in die Root-Partition integriert sind).
  • In dem Dienstsystemd-coredump wird beim Erstellen eines Core-Dumps des Prozesses die ELF-Information build-id extrahiert, was nĂŒtzlich sein kann, um zu bestimmen, zu welchem Paket der fehlerhafte Prozess gehört, wenn die Informationen ĂŒber Name und Version von deb- oder rpm-Paketen in die ELF-Dateien eingebettet wurden.
  • In udev wurde eine neue Hardware-Datenbank fĂŒr FireWire (IEEE 1394) GerĂ€te hinzugefĂŒgt.
  • In udev wurden drei Änderungen in das Namensauswahl-Schema fĂŒr Netzwerkschnittstellen "net_id" eingefĂŒhrt, die nicht abwĂ€rtskompatibel sind: ungĂŒltige Zeichen in den Schnittstellennamen werden jetzt durch "_" ersetzt; die Namen der PCI-Hotplug-Slots fĂŒr s390-Systeme werden in Form von Hexadezimalzahlen verarbeitet; die Verwendung von bis zu 65535 integrierten PCI-GerĂ€ten ist erlaubt (frĂŒhere Nummern ĂŒber 16383 wurden gesperrt).
  • In systemd-resolved wurde die Domain "home.arpa" in die Liste der NTA (Negative Trust Anchors) aufgenommen, die fĂŒr lokale Heimnetzwerke empfohlen wird, jedoch nicht in DNSSEC verwendet wird.
  • Im Parameter CPUAffinity wurde die Parsing-Logik fĂŒr die Spezifizierer "%" sichergestellt.
  • In die Dateien " .network" wurde der Parameter ManageForeignRoutingPolicyRules hinzugefĂŒgt, der verwendet werden kann, um die Verarbeitung von Drittanbieter-Routingpraktiken in systemd-networkd auszuschließen.
  • In die Dateien ".network" wurde der Parameter RequiredFamilyForOnline hinzugefĂŒgt, um das Vorhandensein einer IPv4- oder IPv6-Adresse als Indikator fĂŒr den Online-Status des Netzwerkinterfaces zu bestimmen. In networkctl wird der Status "online" fĂŒr jede Verbindung angezeigt.
  • In die Dateien „.network“ wurde der Parameter OutgoingInterface hinzugefĂŒgt, um die ausgehenden Schnittstellen bei der Konfiguration von NetzwerkbrĂŒcken zu bestimmen.
  • In die Dateien „.network“ wurde der Parameter Group hinzugefĂŒgt, der es ermöglicht, eine Multipath-Gruppe fĂŒr EintrĂ€ge im Abschnitt „[NextHop]“ einzurichten.
  • In systemd-network-wait-online wurden die Optionen „-4“ und „-6“ hinzugefĂŒgt, um die Wartezeit auf eine Verbindung nur auf IPv4 oder IPv6 zu beschrĂ€nken.
  • In die Einstellungen des DHCP-Servers wurde der Parameter RelayTarget hinzugefĂŒgt, der den Server in den Modus DHCP Relay versetzt. FĂŒr die zusĂ€tzliche Konfiguration des DHCP-Relays wurden die Optionen RelayAgentCircuitId und RelayAgentRemoteId angeboten.
  • Im DHCP-Server wurde der Parameter ServerAddress hinzugefĂŒgt, der es ermöglicht, die IP-Adresse des Servers ausdrĂŒcklich festzulegen (ansonsten wird die Adresse automatisch gewĂ€hlt).
  • Im DHCP-Server wurde der Abschnitt [DHCPServerStaticLease] implementiert, der statische Adressbindungen (DHCP-Leases) ermöglicht, indem feste IPs an MAC-Adressen und umgekehrt zugewiesen werden.
  • In der Konfiguration RestrictAddressFamilies wurde die UnterstĂŒtzung des Wertes „none“ implementiert, bei dem dem Dienst keine Sockets eines Adressfamilie zur VerfĂŒgung stehen.
  • In den Dateien „.network“ wurde in den Abschnitten [Address], [DHCPv6PrefixDelegation] und [IPv6Prefix] die UnterstĂŒtzung fĂŒr die Konfiguration von RouteMetric implementiert, die eine Metrik fĂŒr das Route-PrĂ€fix angibt, das fĂŒr die angegebene Adresse erstellt wird.
  • In nss-myhostname und systemd-resolved wurde die Synthese von DNS-EintrĂ€gen mit Adressen fĂŒr Hosts mit dem speziellen Namen „_outbound“ gewĂ€hrleistet, fĂŒr die immer eine lokale IP-Adresse vergeben wird, die gemĂ€ĂŸ den Standardrouten verwendet wird, die fĂŒr ausgehende Verbindungen verwendet werden.
  • In die Dateien .network wurde in den Abschnitt „[DHCPv4]“ eine standardmĂ€ĂŸig aktivierte Einstellung RoutesToNTP hinzugefĂŒgt, die vorschreibt, dass eine separate Route ĂŒber die aktuelle Netzwerkschnittstelle fĂŒr den Zugriff auf die NTP-Serveradresse, die fĂŒr diese Schnittstelle mittels DHCP erhalten wurde, hinzugefĂŒgt werden muss (analog zur DNS-Konfiguration wird sichergestellt, dass der Datenverkehr zum NTP-Server ĂŒber die Schnittstelle geleitet wird, ĂŒber die diese Adresse erhalten wurde).
  • Es wurden die Einstellungen SocketBindAllow und SocketBindDeny hinzugefĂŒgt, um den Zugriff auf die mit dem aktuellen Dienst verbundenen Sockets zu verwalten.
  • FĂŒr die Unit-Dateien wurde die bedingte Einstellung ConditionFirmware implementiert, die es ermöglicht, PrĂŒfungen zu erstellen, die die Funktionen der Firmware bewerten, wie z. B. das Funktionieren auf UEFI-Systemen und device.tree sowie die KompatibilitĂ€t mit bestimmten Funktionen des device-tree.
  • Die Option ConditionOSRelease wurde implementiert, um die Felder in der Datei /etc/os-release zu ĂŒberprĂŒfen. FĂŒr die Bedingungsermittlung sind die Operatoren „=“, „!=“, „<“, „=“ und „>“ zulĂ€ssig.
  • In dem Dienstprogramm hostnamectl wurden die Befehle der Form „get-xyz“ und „set-xyz“ von den PrĂ€fixen „get“ und „set“ befreit. Beispielsweise kann anstelle von „hostnamectl get-hostname“ und „hostnamectl set-hostname“ der Befehl „hostnamectl hostname“ verwendet werden, wobei die Wertzuweisung durch Angabe eines zusĂ€tzlichen Arguments erfolgt („hostnamectl hostname value“). Die UnterstĂŒtzung der alten Befehle bleibt zur Wahrung der KompatibilitĂ€t erhalten.
  • Im Dienstprogramm systemd-detect-virt und der Einstellung ConditionVirtualization wurde eine korrekte Identifizierung von Amazon EC2-Umgebungen sichergestellt.
  • Die Einstellung LogLevelMax in den Unit-Dateien gilt jetzt nicht nur fĂŒr die vom Dienst erstellten Log-Nachrichten, sondern auch fĂŒr Nachrichten des Prozesses PID 1, in denen der Dienst erwĂ€hnt wird.
  • Es wurde die Möglichkeit geschaffen, SBAT-Daten (UEFI Secure Boot Advanced Targeting) in die systemd-boot EFI PE-Dateien aufzunehmen.
  • In /etc/crypttab wurden die neuen Optionen „headless“ und „password-echo“ implementiert – die erste ermöglicht es, alle mit der interaktiven Abfrage von Passwörtern und PINs beim Benutzer verbundenen Operationen zu ĂŒberspringen, wĂ€hrend die zweite die Möglichkeit bietet, die Eingabemethode fĂŒr Passwörter einzustellen (nichts anzeigen, zeichenweise anzeigen und Sternchen anzeigen). FĂŒr Ă€hnliche Zwecke wurde in systemd-ask-password die Option „—echo“ hinzugefĂŒgt.
  • In systemd-cryptenroll, systemd-cryptsetup und systemd-homed wurde die UnterstĂŒtzung fĂŒr das Entsperren von verschlĂŒsselten LUKS2-Partitionen mit FIDO2-Token erweitert. Neue Optionen „—fido2-with-user-presence“, „—fido2-with-user-verification“ und „—fido2-with-client-pin“ wurden hinzugefĂŒgt, um die ÜberprĂŒfung der physischen Anwesenheit des Benutzers, die Verifizierung und die Notwendigkeit zur Eingabe eines PIN-Codes zu steuern.
  • In systemd-journal-gatewayd wurden die Optionen „—user“, „—system“, „—merge“ und „—file“ hinzugefĂŒgt, die den entsprechenden Optionen von journalctl entsprechen.
  • ZusĂ€tzlich zu den direkten AbhĂ€ngigkeiten zwischen den Einheiten, die ĂŒber die Parameter OnFailure und Slice definiert werden, wurde die UnterstĂŒtzung fĂŒr implizite RĂŒckwĂ€rtsabhĂ€ngigkeiten OnFailureOf und SliceOf hinzugefĂŒgt, die nĂŒtzlich sein können, um beispielsweise alle Einheiten in einem Slice zu bestimmen.
  • Neue Arten von AbhĂ€ngigkeiten zwischen Einheiten wurden hinzugefĂŒgt: OnSuccess und OnSuccessOf (das Gegenteil von OnFailure, das bei erfolgreichem Abschluss ausgelöst wird); PropagatesStopTo und StopPropagatedFrom (erlauben es, das Stop-Event einer Einheit auf eine andere Einheit auszubreiten); Upholds und UpheldBy (eine Alternative zu Restart).
  • In der Utility systemd-ask-password gibt es die Option „—emoji“, um das Erscheinungsbild des Schloss-Symbols (🔐) im Passwort-Eingabefeld zu steuern.
  • Die Dokumentation zur Struktur der Quelltexte von systemd wurde hinzugefĂŒgt.
  • FĂŒr Units wurde die Eigenschaft MemoryAvailable hinzugefĂŒgt, die zeigt, wie viel Speicher dem Unit bis zur Erreichung des ĂŒber die Parameter MemoryMax, MemoryHigh oder MemoryAvailable festgelegten Limits zur VerfĂŒgung steht.

Quelle: opennet.ru

60GB SSD 8Gb DDR4