Systemd 245 mit der Implementierung tragbarer Home-Verzeichnisse ist verfügbar

Nach drei Monaten Entwicklung vorgestellt der Veröffentlichung des Systemmanagers systemd 245. In der neuen Ausgabe wurden neue Komponenten von systemd-homed und systemd-repart hinzugefügt, die Unterstützung für tragbare Benutzerprofile im JSON-Format bieten, und die Möglichkeit zur Definition von Namensräumen in systemd-journald wurde sichergestellt. Außerdem wurde die Unterstützung für den Mechanismus „pidfd“ hinzugefügt. Komplett überarbeitet die Projektwebsite, auf dem der Großteil der verfügbaren Dokumentation zusammengetragen wurde und ein neues Logo vorgeschlagen wurde.

Systemd 245 mit der Implementierung tragbarer Home-Verzeichnisse ist verfügbar

Haupt- Änderungen:

  • Ein Dienst systemd-homed, der die Verwaltung tragbarer Home-Verzeichnisse ermöglicht, die in Form eines gemounteten Abbilds bereitgestellt werden, wobei die Daten darin verschlüsselt sind. Systemd-homed ermöglicht die Erstellung eigenständiger Umgebungen für Benutzerdaten, die zwischen verschiedenen Systemen verschoben werden können, ohne sich um die Synchronisierung von Identifikatoren und Datenschutz kümmern zu müssen. Die Benutzeranmeldedaten sind an das Home-Verzeichnis gebunden, nicht an die Systemeinstellungen — anstelle von /etc/passwd, /etc/group und /etc/shadow wird ein Profil im Format JSON. Weitere Informationen finden Sie in der der vorherigen Ankündigung angesehen werden systemd-homed.
  • Ein begleitendes systemd-homed-Komponente „userdb“ („systemd-userdb“), die UNIX/glibc NSS-Konten in JSON-Datensätze übersetzt und eine einheitliche Varlink-API zum Abfragen und Durchlaufen von Datensätzen bereitstellt. Im an das Home-Verzeichnis gebundenen JSON-Profil sind die erforderlichen Parameter für die Benutzeranwendung angegeben, einschließlich Informationen über den Namen, den Passwort-Hash, die Schlüssel zur Verschlüsselung, die Quoten und die bereitgestellten Ressourcen. Das Profil kann mit einer digitalen Signatur versehen werden, die auf einem externen Yubikey-Token gespeichert ist. Zur Verwaltung der Profile steht das Dienstprogramm „userdbctl“ zur Verfügung. Die Unterstützung für JSON-Profile wurde in verschiedene Komponenten von systemd integriert, einschließlich systemd-logind und pam-systemd, die es ermöglichen, für Benutzer tragbarer Verzeichnisse die Authentifizierung, den Login, die Konfiguration von Umgebungsvariablen, die Sitzungserstellung, die Festlegung von Einschränkungen usw. zu organisieren. In Zukunft wird die Möglichkeit erwartet, JSON-Profile über das Framework sssd zu generieren, mit der Speicherung der Benutzereinstellungen in LDAP.
  • Ein neues Dienstprogramm namens „systemd-repart“ wurde hinzugefügt, das zur Umstrukturierung von Partitionstabellen im GPT-Format dient. Die Struktur der Partitionen wird deklarativ über Dateien definiert, die beschreiben, welche Partitionen existieren müssen oder können. Bei jedem Bootvorgang wird die aktuelle Partitionstabelle mit diesen Dateien verglichen, wonach fehlende Partitionen hinzugefügt oder, wenn die in den Einstellungen angegebene relative oder absolute Größe nicht übereinstimmt, die Größe bestehender Partitionen erhöht wird. Nur inkrementelle Änderungen sind zulässig, d.h. das Löschen und Verkleinern ist nicht möglich; Partitionen können nur hinzugefügt und vergrößert werden.
    Das Dienstprogramm ist hauptsächlich für den Start aus initrd vorgesehen und erkennt automatisch die Festplatte, auf der die Root-Partition platziert ist, was keine zusätzliche Konfiguration außer den Änderungsdefinitionsdateien erfordert.

    In der Praxis kann systemd-repart für Betriebssystem-Images nützlich sein, die anfangs in minimaler Form geliefert werden und sich nach dem ersten Start auf die Größe des vorhandenen Blockgeräts erweitern oder durch zusätzliche Partitionen ergänzt werden können (z.B. kann die Root-Partition erweitert werden, um die gesamte Festplatte abzudecken oder nach dem ersten Start eine Swap-Partition oder /home erstellt werden). Eine andere Anwendung können Konfigurationen mit zwei abwechselnden Partitionen sein – zunächst könnte nur die erste Partition bereitgestellt werden, während die zweite beim ersten Start erstellt wird.

  • Es besteht die Möglichkeit, mehrere Instanzen von systemd-journald zu starten, von denen jede in ihrem eigenen Namensraum Protokolle führt. Neben dem Hauptdienst systemd-journald.service wird im .service-Verzeichnis eine Vorlage für die Erstellung zusätzlicher Instanzen angeboten, die an ihre eigenen Namensräume über die Direktive „LogNamespace“ gebunden sind. Jeder Namensraum der Protokolle wird von einem separaten Hintergrundprozess mit seiner eigenen Reihe von Einstellungen und Limits bedient. Diese Möglichkeit könnte nützlich sein, um die Last bei großen Protokollmengen zu verteilen oder die Isolation von Anwendungen zu verstärken. In journalctl wurde die Option „—namespace“ hinzugefügt, die die Abfrage auf den angegebenen Namensraum beschränkt.
  • In systemd-udevd und anderen Komponenten von systemd wurde die Unterstützung für einen Mechanismus zur Zuordnung alternativer Namen zu Netzwerkinterfaces hinzugefügt, der es ermöglicht, gleichzeitig mehrere Namen für ein einziges Interface zu verwenden. Die Namensgröße kann 128 Zeichen erreichen (zuvor war der Name eines Netzwerkinterfaces auf 16 Zeichen beschränkt). Standardmäßig weist systemd-udevd nun jedem Netzwerkinterface alle von den unterstützten Benennungsschemata generierten Namensvarianten zu. Dieses Verhalten kann über die neuen Einstellungen AlternativeName und AlternativeNamesPolicy in den .link-Dateien geändert werden. In systemd-nspawn wurde die Generierung alternativer Namen mit dem vollständigen Namen des Containers für die auf der Host-Seite erstellten veth-Links implementiert.
  • In der API sd-event.h wurde die Unterstützung für die Linux-Kernel-Subsystem «pidfd» zur Verarbeitung von Situationen mit der Wiederverwendung von PIDs hinzugefügt (pidfd ist an einen bestimmten Prozess gebunden und ändert sich nicht, während die PID nach Abschluss des aktuellen Prozesses, der mit dieser PID assoziiert ist, an einen anderen Prozess gebunden werden kann). Alle Komponenten von systemd, mit Ausnahme von PID 1, wurden auf die Verwendung von pidfds umgestellt, sofern dieses Subsystem vom aktuellen Kernel unterstützt wird.
  • In systemd-logind wird über PolicyKit eine Zugriffskontrolle für den Wechsel des virtuellen Terminals gewährleistet. Standardmäßig haben nur Benutzer, die einmal eine Sitzung an einem lokalen virtuellen Terminal begonnen haben, die Berechtigung, das aktive Terminal zu wechseln.
  • Um die Erstellung von initrd-Images mit systemd zu vereinfachen, erkennt der Handler PID 1 nun die Verwendung in initrd und lädt in diesem Fall automatisch initrd.target anstelle von default.target. Bei diesem Ansatz können sich die initrd-Images und das Hauptsystem nur durch das Vorhandensein der Datei /etc/initrd-release unterscheiden.
  • Ein neuer Kernel-Befehlszeilenparameter wurde hinzugefügt — «systemd.cpu_affinity», der der Option CPUAffinity in /etc/systemd/system.conf entspricht und es ermöglicht, eine CPU-Bindungsmaske für PID 1 und andere Prozesse zu konfigurieren.
  • Die Neuinitialisierung der SELinux-Datenbank wird zusammen mit dem Neustart von PID 1 über Befehle wie «systemctl daemon-reload» sichergestellt.
  • In den Handler PID 1 wurde die Einstellung «systemd.show-status=error» eingeführt, bei deren Aktivierung nur Fehlermeldungen und wesentliche Verzögerungen beim Booten auf der Konsole ausgegeben werden.
  • In systemd-sysusers wurde die Unterstützung für die Erstellung von Benutzern mit dem Namen der Hauptgruppe, die sich vom Benutzernamen unterscheidet, hinzugefügt.
  • In systemd-growfs wurde die Unterstützung für die Erweiterung von XFS-Partitionen über die Mount-Option x-systemd.growfs in /etc/fstab implementiert, zusätzlich zur bereits unterstützten Erweiterung von Ext4- und Btrfs-Partitionen.
  • In /etc/crypttab wurde die Option x-initrd.attach hinzugefügt, um eine bereits auf der initrd-Phase entschlüsselte Partition zu definieren.
  • In systemd-cryptsetup wurde die Unterstützung (Option pkcs11-uri in /etc/crypttab) für die Entschlüsselung von Partitionen mit Smartcards PKCS#11 hinzugefügt, zum Beispiel zur Anbindung von Festplattenverschlüsselungen an YubiKey-Token.
  • In /etc/fstab wurden die neuen Mount-Optionen „x-systemd.required-by“ und „x-systemd.wanted-by“ hinzugefügt, um eine explizite Konfiguration von Units vorzunehmen, die Mount-Operationen anstelle von local-fs.target und remote-fs.target definieren.
  • Eine neue Sandbox-Isolationsoption für Services wurde hinzugefügt – ProtectClock, die das Schreiben in die Systemzeit einschränkt (Zugriff wird auf der Ebene /dev/rtc, Systemaufrufen und Berechtigungen CAP_SYS_TIME/CAP_WAKE_ALARM blockiert).
  • In die Spezifikation Entdeckbare Partitionen und systemd-gpt-auto-generator wurde die Definition von Partitionen aufgenommen.
    /var и /var/tmp.
  • In „systemctl list-unit-files“ wurde beim Anzeigen der Liste von Units eine neue Spalte eingeführt, die den Aktivierungsstatus zeigt, wie er in den Werkseinstellungen für diesen Einheitstyp vorgeschlagen wird.
  • In „systemctl“ wurde die Option „—with-dependencies“ hinzugefügt, sodass bei der Ausführung von Befehlen wie „systemctl status“ und „systemctl cat“ nicht nur alle entsprechenden Units, sondern auch die Units, von denen sie abhängen, angezeigt werden.
  • In systemd-networkd wurde die Konfiguration qdisc um die Möglichkeit zur Einstellung der Parameter TBF (Token Bucket Filter), SFQ (Stochastic Fairness Queuing), CoDel (Controlled-Delay Active Queue Management) und FQ (Fair Queue) erweitert.
  • In systemd-networkd wurde die Unterstützung für Netzwerkgeräte IFB (Intermediate Functional Block).
  • In systemd-networkd wurde im Abschnitt [Route] der Parameter MultiPathRoute zur Konfiguration von Multi-Pfad-Routen implementiert.
  • In systemd-networkd wurde für den DHCPv4-Client die Option SendDecline hinzugefügt, wodurch nach dem Empfang der DHCP-Antwort mit einer Adresse eine Überprüfung auf Adressduplikate erfolgt, und im Falle eines Konflikts wird die zugewiesene Adresse abgelehnt. Für den DHCPv4-Client wurde ebenfalls die Option RouteMTUBytes hinzugefügt, mit der die Größe des MTU für Routen bestimmt werden kann, die aus IP-Adressbindungen (Leases) generiert werden.
  • Die Konfiguration PrefixRoute im Abschnitt „[Address]“ von .network-Dateien wurde als veraltet erklärt. Neu eingeführt wurde die Konfiguration „AddPrefixRoute“, die eine entgegengesetzte Bedeutung hat.
  • In den .network-Dateien wurde in der Gateway-Konfiguration des Abschnitts „[Route]“ die Unterstützung für den neuen Wert „_dhcp“ hinzugefügt, bei dessen Einstellung eine statische Route basierend auf dem über DHCP konfigurierten Gateway ausgewählt wird.
  • In den .network-Dateien gibt es im Abschnitt „[RoutingPolicyRule]“ neue Einstellungen.
    User und SuppressPrefixLength zur Festlegung der Quellrouting auf Basis von UID-Bereichen und der Präfixgröße.
  • In networkctl wurde der Befehl „status“ so erweitert, dass die Protokolle für jede Netzwerk-Schnittstelle angezeigt werden können.
  • In systemd-networkd-wait-online wurde die Unterstützung zur Festlegung der maximalen Wartezeit für die Aktivierung der Schnittstelle und das Warten auf den Verlust der Schnittstelle hinzugefügt.
  • Die Verarbeitung von .link- und .network-Dateien mit einem leeren oder kommentierten Abschnitt „[Match]“ wurde eingestellt.
  • In den .link- und .network-Dateien wurde im Abschnitt „[Match]“ die Einstellung „PermanentMACAddress“ hinzugefügt, um die Überprüfung der permanenten MAC-Adresse von Geräten im Fall der Verwendung einer generierten zufälligen MAC zu ermöglichen.
  • Der Abschnitt „[TrafficControlQueueingDiscipline]“ in den .network-Dateien wurde in „[NetworkEmulator]“ umbenannt, und der Präfix „NetworkEmulator“ wurde aus den Bezeichnungen der zugehörigen Einstellungen entfernt.
  • In systemd-resolved wurde die Unterstützung für SNI-Prüfungen bei DNS-over-TLS hinzugefügt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4