Veröffentlichung des Systemmanagers systemd 257

Nach einem halben Jahr Entwicklung wurde die Version des Systemmanagers systemd 257 veröffentlicht. Zu den wichtigsten Änderungen gehören: neue Tools systemd-sbsign und systemd-keyutil, UnterstĂŒtzung von MPTCP bei der Aktivierung ĂŒber Sockets, anfĂ€ngliche UnterstĂŒtzung fĂŒr den Aufbau mit der C-Bibliothek Musl, das Tool updatectl zur Verwaltung der Installation von Updates ĂŒber systemd-sysupdate, die Möglichkeit, Dienste in separaten PID-NamensrĂ€umen zu starten, und der Schutz vor versehentlichem Löschen von Dateien bei Verwendung von „systemd-tmpfiles —purge“.

Zu den Änderungen in der neuen Version gehören:

  • Ein neues Tool systemd-sbsign wurde hinzugefĂŒgt, um ausfĂŒhrbare Dateien im PE (Portable Executable)-Format digital zu signieren, die fĂŒr die Verwendung im EFI Secure Boot-Modus vorgesehen sind. Zum Erstellen der Signatur können Engines und Anbieter verwendet werden, die von der OpenSSL-Bibliothek bereitgestellt werden. Systemd-sbsign kann als Alternative zu den Anwendungen sbsigntool und pesign im Tool ukify verwendet werden, um universelle Kernel-Images (UKI, Unified Kernel Image) zu erstellen, die in einer Datei einen UEFI-Bootloader (UEFI boot stub), das Linux-Kernel-Image und die im Speicher geladenen Systemumgebung initrd kombinieren.
  • Ein neues Tool systemd-keyutil wurde hinzugefĂŒgt, das verschiedene Operationen mit privaten SchlĂŒsseln und X.509-Zertifikaten durchfĂŒhrt. Zum Beispiel kann systemd-keyutil verwendet werden, um die Möglichkeit der Verwendung privater SchlĂŒssel und Zertifikate zu ĂŒberprĂŒfen sowie öffentliche SchlĂŒssel im PEM-Format aus ihnen zu extrahieren.
  • In den Units „.socket“, die fĂŒr die Aktivierung von Sockets zur Anlaufmechanik verwendet werden (Prozesse bei dem Versuch zu starten, eine Netzwerkverbindung herzustellen), wurde die UnterstĂŒtzung von MPTCP (Multipath TCP) implementiert, einer Erweiterung des TCP-Protokolls zur Realisierung von TCP-Verbindungen, bei denen Pakete gleichzeitig ĂŒber mehrere Routen ĂŒber unterschiedliche Netzwerkinterfaces, die an verschiedene, verbunden werden. IP-Adressen.
  • Änderungen wurden implementiert, die notwendig sind, um mit der standardmĂ€ĂŸigen C-Bibliothek Musl zu bauen.
  • In verschiedenen Komponenten von systemd, die Fortschrittsanzeigen wĂ€hrend der DurchfĂŒhrung von Operationen ausgeben (z. B. systemd-repart, systemd-sysupdate/updatectl und importctl), wurde die Möglichkeit hinzugefĂŒgt, ANSI-Sequenzen zu verwenden, um die Fortschrittsanzeige zu animieren. Solche Sequenzen werden derzeit nur im Windows Terminal unterstĂŒtzt (es wird angenommen, dass diese Möglichkeit im Laufe der Zeit auch in Linux-Terminalemulatoren ĂŒbertragen wird).
  • Die Möglichkeiten der Komponente systemd-sysupdate, die zur automatischen Erkennung, dem Herunterladen und der Installation von Updates unter Verwendung eines atomaren Mechanismus fĂŒr den Austausch von Partitionen, Dateien oder Verzeichnissen eingesetzt wird, wurden erweitert (es werden zwei unabhĂ€ngige Partitionen/Dateien/Verzeichnisse verwendet, von denen sich eine mit den aktuellen Arbeitsressourcen und die andere mit dem nĂ€chsten Update befindet, wonach die Partitionen/Dateien/Verzeichnisse getauscht werden). In der Praxis wird systemd-sysupdate bereits in GNOME OS eingesetzt.

    ZusĂ€tzlich zum Prozess systemd-sysupdate wurde ein gleichnamiger Dienst hinzugefĂŒgt, der es ermöglicht, D-Bus zur Verwaltung von Systemupdates durch unprivilegierte Benutzer zu nutzen. Zur Verwaltung des Dienstes wurde außerdem ein neues Tool updatectl integriert. In systemd-sysupdate wurde das Flag „—offline“ hinzugefĂŒgt, um das Herunterladen von Metadaten ĂŒber das Netzwerk zu verbieten und nur bereits auf das lokale System heruntergeladene Versionen zu verwenden. FĂŒr alle Befehle wurde die UnterstĂŒtzung fĂŒr die Ausgabe im JSON-Format hinzugefĂŒgt.

  • FĂŒr Dienste wurde eine neue Eigenschaft „PrivatePIDs“ implementiert, mit der der Start von Prozessen mit PID 1 (Init-Prozess) in einem separaten Prozess-ID-Namespace organisiert werden kann. In der fĂŒr den gestarteten Prozess erstellten Umgebung sind nur die Prozesse sichtbar, die aus dem dafĂŒr geschaffenen Namensraum stammen.
  • Die udev-Regeln wurden um die UnterstĂŒtzung fĂŒr Groß- und Kleinschreibung ignorierende Zuordnungen (z. B. ‚ATTR{foo}==i„abcd“‘) erweitert. Über udev wird unprivilegierten lokalen Benutzern der Zugriff („uaccess“) auf das GerĂ€t /dev/udmabuf gewĂ€hrt, das fĂŒr die Arbeit mit IPMI-Kameras ĂŒber libcamera erforderlich ist. In udev wird die Erkennung verschiedener Hardware-Kryptogeldbörsen mit USB-Schnittstelle ermöglicht und die Eigenschaft ID_HARDWARE_WALLET fĂŒr diese festgelegt, was eine Anwendung des Modus „uaccess“ fĂŒr den Zugang unprivilegierter Benutzer erlaubt.
  • In die Datei /etc/os-release wurden neue Felder RELEASE_TYPE, EXPERIMENT und EXPERIMENT_URL aufgenommen. „RELEASE_TYPE“ kann die Werte „experimental“, „development“, „stable“ und „lts“ annehmen, um stabile Versionen von sich in der Entwicklung befindenden und experimentellen Builds zu unterscheiden. Die Parameter EXPERIMENT und EXPERIMENT_URL sind zur ErlĂ€uterung der Natur des experimentellen Builds gedacht.
  • In das Utility run0, das als Ersatz fĂŒr das Programm sudo entwickelt wurde, wurde die Option „—shell-prompt-prefix“ hinzugefĂŒgt, die die Prefix-Zeile der Befehlszeilenaufforderung definiert. StandardmĂ€ĂŸig wird als Prefix das Emoji „🩾“ ausgegeben, um die Sitzung mit erhöhten Rechten visuell hervorzuheben.
  • In systemd-tmpfiles wird, um versehentliche Löschungen falscher Dateien zu vermeiden, die Option „—purge“ jetzt nur auf Einstellungen in tmpfiles.d/ angewendet, fĂŒr die das Flag „$“ ausdrĂŒcklich gesetzt ist. FĂŒr die DurchfĂŒhrung der „—purge“-Operation ist nun ebenfalls die Angabe von mindestens einer Datei aus dem Verzeichnis tmpfiles.d/ erforderlich. FĂŒr Zeilen des Typs 'L' wurde das Flag '?' hinzugefĂŒgt, bei dessen Angabe die symbolische VerknĂŒpfung nur erstellt wird, wenn die Ziel-Datei vorhanden ist.
  • Im Dienstmanager und den zugehörigen Utilities wurde die Umstellung des Codes zur Prozessverfolgung auf die Verwendung von PIDFD anstelle von PID fortgesetzt. Der PIDFD-Identifikator ist an einen bestimmten Prozess gebunden und Ă€ndert sich nicht, wĂ€hrend der PID an einen anderen Prozess gebunden werden kann, nachdem der aktuelle Prozess, der mit diesem PID assoziiert ist, abgeschlossen ist.
  • FĂŒr Dienste wurde die Möglichkeit eingefĂŒhrt, im Parameter „RestartMode“ den Wert „debug“ anzugeben, bei dem der Neustart eines fehlgeschlagenen Dienstes im Debug-Modus durchgefĂŒhrt wird (die Umgebungsvariable DEBUG_INVOCATION=1 wird gesetzt), und der Wert von LogLevelMax vorĂŒbergehend auf das Debug-Niveau erhöht wird.
  • Im PID-Handler 1 wurde die Möglichkeit implementiert, Regeln fĂŒr das LSM-Modul IPE (Integrity Policy Enforcement) zu laden, die die IntegritĂ€tsrichtlinie fĂŒr das gesamte System definieren (welche Operationen zulĂ€ssig sind und auf welche Weise die AuthentizitĂ€t von Komponenten verifiziert werden soll).
  • In die Unit-Dateien „.timer“ wurde die Option „DeferReactivation“ eingefĂŒgt, die es ermöglicht, eine anstehende Aktivierung durch den Timer zu ĂŒberspringen, wenn der Dienst seit der letzten Aktivierung noch nicht abgeschlossen ist.
  • Im Parameter der Unit-Dateien PrivateUsers wurde die Möglichkeit eingefĂŒhrt, den Wert „identity“ anzugeben, um das Mappen von Benutzer-IDs bei der Erstellung eines Namensraums (user namespace) zu aktivieren.
  • Im Parameter der Unit-Dateien PrivateTmp wurde die UnterstĂŒtzung fĂŒr den Wert „disconnected“ hinzugefĂŒgt, bei dem fĂŒr die Verzeichnisse /tmp/ und /var/tmp/ separate Instanzen von tmpfs verwendet werden.
  • Im Parameter unit-Files ProtectControlGroups wurde die UnterstĂŒtzung fĂŒr die neuen Modi „private“ und „strict“ hinzugefĂŒgt, wobei fĂŒr den Dienst ein neuer cgroup-Namespace erstellt und cgroupfs eingebunden wird. Bei der Einstellung der Option „strict“ erfolgt das Einbinden von cgroupfs im Nur-Lese-Modus.
  • In den Parametern StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory und ConfigurationDirectory wurde die Möglichkeit hinzugefĂŒgt, das Flag ‘:ro’ zu verwenden, um den Zugriff auf die entsprechenden Verzeichnisse im Nur-Lese-Modus einzuschrĂ€nken.
  • Im Kernel-Befehlszeilenparameter „systemd.machine_id“ wurde die UnterstĂŒtzung fĂŒr den Wert „firmware“ hinzugefĂŒgt, bei dem die System-ID (machine ID) auf der Basis der UUID aus SMBIOS/DeviceTree berechnet wird.
  • Die UnterstĂŒtzung fĂŒr die Systemaufrufe mseal(), listmount() und statmount() wurde hinzugefĂŒgt, die in den letzten Versionen des Linux-Kernels erschienen sind.
  • In den Dienstprogrammen resolvectl, timedatectl und systemd-inhibit wurde die UnterstĂŒtzung fĂŒr die interaktive Authentifizierung ĂŒber Polkit hinzugefĂŒgt.
  • Im Dienstprogramm systemctl wurde die Möglichkeit hinzugefĂŒgt, das Flag „—now“ im Befehl „reenable“ zu verwenden.
  • Im Dienstprogramm systemd-mount wurde die Option „—json“ fĂŒr die Ausgabe im JSON-Format hinzugefĂŒgt (z. B. wird bei Angabe zusammen mit „—list-devices“ die Liste der GerĂ€te im JSON-Format ausgegeben).
  • Im Dienstprogramm „localectl“ wurden die Optionen „-l“ und „—full“ hinzugefĂŒgt, um das Trimmen langer Zeilen bei der Ausgabe zu deaktivieren.
  • In sleep.conf wurde die Option HibernateOnACPower hinzugefĂŒgt, die es ermöglicht, den Wechsel in den Ruhezustand auf die Trennung des GerĂ€ts von der stationĂ€ren Stromquelle zu verschieben.
  • In systemd-sysusers wurde den Zeilen „u“ die UnterstĂŒtzung fĂŒr den Modifikator „!“ hinzugefĂŒgt, mit dem vollstĂ€ndig gesperrte Benutzerkonten erstellt werden können (frĂŒher wurde zur Sperrung eines Benutzers ein ungĂŒltiges Passwort verwendet, was zum Beispiel nicht zur Sperrung bei der Authentifizierung per SSH-SchlĂŒsseln fĂŒhrte).
  • In systemd-coredump wurde die Option „EnterNamespace“ hinzugefĂŒgt, die den Zugriff auf den Mount-Namespace beliebiger abgestĂŒrzter Prozesse zur Erfassung ihrer Debug-Symbole ermöglicht. In der Praxis kann die Option nĂŒtzlich sein, um einen Backtrace von Core-Dateien von in isolierten Containern betriebenen Anwendungen zu erstellen.
  • In systemd-logind wurde die Verarbeitung der Kombination Ctrl-Alt-Shift-Esc aktiviert, um den Komponenten der Benutzerumgebung das Signal org.freedesktop.login1.SecureAttentionKey zu senden, mit der Anfrage, einen Dialog fĂŒr eine sichere Anmeldung anzuzeigen. Es wurde die Einstellung „DesignatedMaintenanceTime“ implementiert, um das automatisierte Planen der Abschaltung zu einem festgelegten Zeitpunkt zu ermöglichen. Analog zur UnterstĂŒtzung von DRM-GerĂ€ten und evdev wurde die UnterstĂŒtzung fĂŒr die Konfiguration des Zugriffs nicht privilegierter Benutzer auf hidraw-GerĂ€te (Spielcontroller und Joysticks) hinzugefĂŒgt.
  • In systemd-machined wurde die UnterstĂŒtzung fĂŒr die Registrierung durch nicht privilegierte Clients hinzugefĂŒgt. virtuelle Maschinen und Container. Der Zugriff auf die FunktionalitĂ€t von systemd-machined erfolgt ĂŒber die Varlink-API, neben D-Bus.
  • In die Konfigurationsdatei networkd.conf wurde ein neuer Abschnitt „[IPv6AddressLabel]“ hinzugefĂŒgt, um Labels und PrĂ€fixe fĂŒr IPv6-Adressen zu konfigurieren.
  • Der Befehl ‚networkctl edit‘ erhielt die Option „—stdin“, um den Inhalt einer Datei aus dem Standardstrom zu erhalten. In die Befehle ‚networkctl edit‘ und ‚networkctl cat‘ wurde die UnterstĂŒtzung fĂŒr die Bearbeitung und Anzeige von .netdev-Dateien durch Angabe des Netzwerkinterfaces hinzugefĂŒgt. Es wurde die Option „—no-ask-password“ hinzugefĂŒgt, um die interaktive Authentifizierung zu deaktivieren.
  • In die Dienstprogramme ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart und systemd-sbsign wurde die Option „—certificate-source“ hinzugefĂŒgt, um ein X.509-Zertifikat ĂŒber den OpenSSL-Anbieter zu laden, anstelle es direkt aus einer Datei zu laden.
  • In systemd-boot wurde die Möglichkeit hinzugefĂŒgt, die LautstĂ€rketasten zu verwenden, um im BootmenĂŒ nach oben und unten zu navigieren, was auf GerĂ€ten wie Smartphones nĂŒtzlich sein kann. Im Dienstprogramm bootctl wurde die UnterstĂŒtzung fĂŒr die Installation einer UEFI Secure Boot-Datenbank im ESL(db/dbx/
) Format fĂŒr systemd-boot hinzugefĂŒgt.
  • In journalctl wurde die Option „—list-invocation“ hinzugefĂŒgt, um eine Liste der Unit-Aufrufe anzuzeigen, sowie die Option „—invocation“ („-I“), um Protokolle anzuzeigen, die nur mit einem bestimmten Aufruf verbunden sind.
  • In systemd-nspawn wurde die UnterstĂŒtzung fĂŒr die unprivilegierte Nutzung von FUSE (Filesystem in Userspace) in Containern hinzugefĂŒgt. Bei Verwendung der Option „—bind-user“ wird das Durchreichen von SSH-SchlĂŒsseln des Benutzers in den Container gewĂ€hrleistet, die fĂŒr den SSH-Zugriff erforderlich sind.
  • In libsystemd wurde eine neue Programmierschnittstelle „sd-json“ eingefĂŒhrt, die das JSON-Format verwendet, sowie die Schnittstelle „sd-varlink“, die IPC Varlink nutzt.
  • Die empfohlene Basisversion des Kernels wurde auf die Version 5.4, die 2019 veröffentlicht wurde, angehoben. Im nĂ€chsten Jahr plant man, die UnterstĂŒtzung fĂŒr Ă€ltere Kernel einzustellen und die Version 5.4 als minimal unterstĂŒtzte Basisversion zu kennzeichnen.
  • Die UnterstĂŒtzung von cgroups v1 wird als veraltet angesehen und ist standardmĂ€ĂŸig deaktiviert (um sie in der Kernel-Befehlszeile zu aktivieren, muss SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 angegeben werden, zusĂ€tzlich zur Aktivierung in den systemd-Einstellungen). In der nĂ€chsten Version von systemd 258 wird geplant, den Code, der mit cgroups v1 verbunden ist, vollstĂ€ndig zu entfernen. In version systemd 258 ist auch die Entfernung der UnterstĂŒtzung fĂŒr System V-Dienstskripte vorgesehen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4