systemd 259: Musl-Unterstützung, run0 empower und Abschied von System V

Wichtige Punkte:
  • Teilweise Unterstützung für Musl libc (erfordert manuelle Konfiguration in Meson).
  • run0 --empower ermöglicht privilegierte Aktionen, ohne die Benutzer-UID zu ändern.
  • Die Abschaffung der System V-Skripte und die erhöhten Systemanforderungen (Kernel 5.10+) wurden bestätigt.
  • libsystemd lädt externe Bibliotheken jetzt mit dlopen(), um Abhängigkeiten zu reduzieren.
  • Die Journalspeicherung ist jetzt standardmäßig „persistent“.

systemd

Nach etwas mehr als drei Monaten Entwicklungszeit der Start von die neue Version von systemd259. Dieses Update beinhaltet Änderungen an der Systemarchitektur und unterstreicht die Offenheit für alternative Standardbibliotheken, ein strengeres Rechtemanagement sowie strengere technische Anforderungen für zukünftige Versionen.

Eine der meistdiskutierten Entwicklungen in diesem Zyklus ist der Übergang zu größerer Modularität und die Beseitigung von Altlastenabhängigkeiten. Dies ebnet den Weg für ein Linux-Ökosystem, das sich endgültig von den Standards vergangener Jahrzehnte entfernt.

Hauptneufunktionen von systemd 259

Die neue systemd-Version 259 zeichnet sich dadurch aus, dass sie die erste Version mit teilweiser Kompatibilität zu MuslDie beliebte C-Standardbibliothek in schlanken Distributionen und eingebetteten Umgebungen. Diese Integration Die Verwaltung erfolgt über die libc-Option im Meson-Buildsystem. Da Musl jedoch die NSS-Funktionalität (Name Service Switch) nicht implementiert, bleiben in dieser Konfiguration mehrere systemd-Komponenten deaktiviert.

Unter den abemerkenswerte Abwesenheiten bei der Zusammenstellung mit Musl gefunden nss-systemd, nss-resolve, systemd-homed, systemd-userdbd und der Parameter DynamicUserDes Weiteren ist es unter dieser Bibliothek nicht möglich, systemd-nspawn ohne Administratorrechte auszuführen. Die Entwickler weisen darauf hin, dass die Beibehaltung dieser Unterstützung in zukünftigen Versionen von der Nachfrage der Community und der Stabilität etwaiger zusätzlich entwickelter Kompatibilitätsschichten abhängt.

Eine weitere Neuerung der neuen Version ist im run0-Dienstprogramm, das als moderne und sichere Alternative zu sudo konzipiert wurde und die neue Option – stärken. Diese Funktion Es ermöglicht Ihnen, sich mit erhöhten Berechtigungen anzumelden. ohne die Benutzerkennung (UID) auf root ändern zu müssen.

Außerdem, statt die vollständige Kontrolle zu delegieren Durch Benutzerwechsel nutzt –empower Kernel-Fähigkeitsindikatoren wie CAP_SYS_ADMIN, um die unbedingt notwendigen Genehmigungen zu erteilen um privilegierte Systemaufrufe durchzuführen. Darüber hinaus werden die resultierenden Prozesse in eine spezifische Gruppe integriert, die ihnen Zugriff auf Polkit-Aktionen gewährt, wodurch eine robustere Trennung der Berechtigungen als beim traditionellen sudo-Modell gewährleistet wird.

Das Ende einer Ära: Abschied von System V und neue Anforderungen

systemd 259 markiert den Anfang vom Ende für Kompatibilität mit dem System V-DienstskripteEs wurde angekündigt, dass in der nächsten Version ältere Komponenten wie systemd-sysv-generator, systemd-rc-local-generator und systemd-sysv-install dauerhaft entfernt werden.

Parallel zur Bereinigung des alten Codes wurden die Mindestanforderungen an die Software für das systemd-Ökosystem deutlich angehoben:

  • Linux-Kernel: Mindestversion 5.10.
  • Glibc: 2.34.
  • OpenSSL: 3.0.0.
  • Util-linux: 2.37.
  • Sonstiges: Python 3.9.0, cryptsetup 2.4.0 und libseccomp 2.4.0.

Modularität und dynamisches Laden in libsystemd

Como Teil einer Initiative zur Reduzierung von Abhängigkeiten direkt beim Start, libsystemd verwendet jetzt dynamisches Laden über dlopen() Bibliotheken wie libacl, libblkid, libseccomp, libselinux und libmount werden vom System nur dann in den Speicher geladen, wenn ihre spezifischen Funktionen von einem Prozess benötigt werden. Dadurch wird die Ressourcennutzung optimiert. Zusätzlich wurde die Funktionalität von libcap direkt in libsystemd integriert, was die Abhängigkeitskette vereinfacht.

El Die Protokollverarbeitung hat ihre Standardkonfiguration geändert: der Journalspeichermodus (Journal) Änderung von „automatisch“ auf „dauerhaft“unabhängig davon, ob das Verzeichnis /var/log/journal zuvor existierte.

Im Bereich Netzwerke und Virtualisierung:

  • systemd-networkd und systemd-nspawn: Die Unterstützung für NAT-Regeln mit iptables wurde entfernt, sodass nftables die einzig kompatible Option bleibt.
  • systemd-resolved: Es ermöglicht nun die Verwendung lokaler Hooks (hooks) in /run/systemd/resolve.hook/, um in Namensauflösungsanfragen einzugreifen.
  • systemd-importiert: Die Logik für die Arbeit mit TAR-Dateien wurde nativ integriert. Darüber hinaus können sowohl `imported` als auch `machined` nun auf Benutzerebene ausgeführt werden, was die Image-Verwaltung im lokalen Verzeichnis des Benutzers (`~/.local/state/machines/`) ermöglicht.

Andere Innovationen

Die protokollbasierte API Varlink wurde erweitert, um den Zugriff auf Diensteinstellungen und IPC-Aufrufe zu ermöglichen. wie beispielsweise Reload() und Reexecute(). Für Systemadministratoren ist die Einbindung der OOMKills-Eigenschaft in Dienste sehr nützlich, da sie damit direkt über systemd-Tools nachverfolgen können, wie oft ein Prozess aufgrund von Speichermangel beendet wurde.

Schließlich wird der Systemstartvorgang durch den Wegfall der Unterstützung für TPM 1.2 in systemd-boot moderner, da alle Sicherheitsbemühungen auf den TPM 2.0-Standard konzentriert werden.

Wenn Sie daran interessiert sind, mehr darüber zu erfahren, können Sie die konsultieren Details im folgenden Link.