Nach fünf Monaten Entwicklung wurde der Systemmanager veröffentlicht . In der neuen Version wurde die Unterstützung für das Einfrieren von Einheiten implementiert, die Möglichkeit zur Verifizierung des Images der Root-Disk anhand einer digitalen Signatur, die Unterstützung für das Komprimieren von Protokollen und Core-Dumps mittels des ZSTD-Algorithmus, die Möglichkeit zur Entsperrung von tragbaren Heimatverzeichnissen mithilfe von FIDO2-Tokens sowie die Unterstützung zur Entsperrung von Microsoft BitLocker-Partitionen über /etc/crypttab. Zusätzlich wurde die Umbenennung von BlackList in DenyList vorgenommen.
Haupt :
- Die Unterstützung für den Ressourcencontroller Freezer auf Basis von cgroups v2 wurde hinzugefügt, mit dem Prozesse gestoppt und vorübergehend einige Ressourcen (CPU, Ein-/Ausgabe und potenziell sogar Speicher) freigegeben werden können, um andere Aufgaben auszuführen. Das Management des Einfrierens und Auftauens von Einheiten erfolgt über den neuen Befehl „systemctl freeze“ oder über D-Bus.
- Die Unterstützung zur Verifizierung des Images der Root-Disk anhand einer digitalen Signatur wurde hinzugefügt. Die Überprüfung erfolgt mithilfe neuer Einstellungen in den Diensteinheiten: RootHash (der Root-Hash zur Verifizierung des Disk-Images, das über die Option RootImage angegeben ist) und RootHashSignature (digitale Signatur im PKCS#7-Format für den Root-Hash).
- Im PID 1 Handler wurde die Möglichkeit implementiert, vorcompilierte AppArmor-Regeln (/etc/apparmor/earlypolicy) während des Bootvorgangs automatisch zu laden.
- Neue Einstellungen für Unit-Dateien hinzugefügt: ConditionPathIsEncrypted und AssertPathIsEncrypted zur Überprüfung, ob der angegebene Pfad auf einem Blockgerät liegt, das Verschlüsselung (dm-crypt/LUKS) verwendet, sowie ConditionEnvironment und AssertEnvironment zur Überprüfung von Umgebungsvariablen (z. B. die von PAM oder bei der Containerkonfiguration festgelegten).
- Für *.mount Einheiten wurde die Einstellung ReadWriteOnly implementiert, die das Mounten einer Partition im Nur-Lese-Modus verbietet, wenn es nicht möglich war, sie im Lese- und Schreibmodus zu mounten. In /etc/fstab wird dieser Modus über die Option „x-systemd.rw-only“ konfiguriert.
- Für *.socket Einheiten wurde die Einstellung PassPacketInfo hinzugefügt, die das Hinzufügen zusätzlicher Metadaten durch den Kernel für jedes Paket, das aus dem Socket gelesen wird, aktiviert (einschließlich der Modi IP_PKTINFO, IPV6_RECVPKTINFO und NETLINK_PKTINFO für den Socket).
- Für Dienste (Einheiten *.service) wurden die Einstellungen CoredumpFilter vorgeschlagen (bestimmt, welche Speicherabschnitte in die Core Dumps aufgenommen werden sollen) und
TimeoutStartFailureMode/TimeoutStopFailureMode (definiert das Verhalten (SIGTERM, SIGABRT oder SIGKILL), wenn beim Starten oder Stoppen eines Dienstes ein Timeout auftritt). - Die meisten Optionen unterstützen nun die Angabe von hexadezimalen Werten, die mit dem Prefix „0x“ angegeben werden.
- In verschiedenen Kommandozeilenparametern und Konfigurationsdateien, die mit der Konfiguration von Schlüsseln oder Zertifikaten verbunden sind, wurde die Möglichkeit hinzugefügt, den Pfad zu Unix-Sockets (AF_UNIX) für die Übertragung von Schlüsseln und Zertifikaten über IPC-Dienste anzugeben, wenn es ungewünscht ist, Zertifikate auf unverschlüsselten Speichermedien abzulegen.
- Sechs neue Spezifizierer wurden unterstützt, die in unit-Dateien, tmpfiles.d/, sysusers.d/ und anderen Konfigurationsdateien verwendet werden können: %a zur Einfügung der aktuellen Architektur, %o/%w/%B/%W zur Einfügung von Feldern mit Identifikatoren aus /etc/os-release und %l zur Einfügung des kurzen Hostnamens.
- In unit-Dateien wurde die Unterstützung der Syntax „.include“ eingestellt, die vor 6 Jahren als veraltet erklärt wurde.
- In den Einstellungen für Standardfehler und Standardausgabe wurde die Unterstützung der Werte „syslog“ und „syslog-console“ eingestellt, die automatisch in „journal“ und „journal+console“ konvertiert werden.
- Für automatisch erstellte Montagepunkte auf Basis von tmpfs (/tmp, /run, /dev/shm usw.) werden Grenzwerte für die Größe und Anzahl der Inodes festgelegt, die 50 % des RAMs für /tmp und /dev/shm und 10 % des RAMs für alle anderen entsprechenden Bereiche entsprechen.
- Neue Kernel-Parameter für die Befehlszeile hinzugefügt: systemd.hostname zur Festlegung des Hostnamens in der Anfangsphase des Bootvorgangs, udev.blockdev_read_only zur Einschränkung aller mit physischen Speichermedien verbundenen Blockgeräte auf den Nur-Lesen-Modus (für selektives Zurücksetzen kann der Befehl „blockdev —setrw“ verwendet werden), systemd.swap zur Deaktivierung der automatischen Aktivierung der Auslagerungspartition, systemd.clock-usec zur Einstellung der Systemuhr in Mikrosekunden, systemd.condition-needs-update und systemd.condition-first-boot zur Überschreibung der Überprüfungen ConditionNeedsUpdate und ConditionFirstBoot.
- Standardmäßig wird sysctl fs.suid_dumpable auf den Wert 2 („suidsafe“) festgelegt, was das Speichern von Core-Dumps für Prozesse mit dem suid-Flag ermöglicht.
- Aus der Geräte-Datenbank von ChromiumOS wurde die Datei /usr/lib/udev/hwdb.d/60-autosuspend.hwdb übernommen, die Informationen über PCI- und USB-Geräte enthält, die den automatischen Wechsel in den Energiesparmodus unterstützen.
- In der networkd.conf wurde die Einstellung ManageForeignRoutes hinzugefügt, durch die systemd-networkd die Verwaltung aller Routen übernimmt, die von anderen Diensten konfiguriert wurden.
- In die .network-Dateien wurde der Abschnitt «[SR-IOV]» für die Konfiguration von Netzwerkgeräten mit Unterstützung für SR-IOV (Single Root I/O Virtualization) hinzugefügt.
- In systemd-networkd wurde in den Abschnitt «[Network]» die Einstellung IPv4AcceptLocal hinzugefügt, um den Empfang von Paketen auf der Netzwerkschnittstelle zu erlauben, die von lokalen Quelladressen stammen.
- In systemd-networkd wurde die Möglichkeit hinzugefügt, die Priorisierungsdisziplinen HTB über die Abschnitte [HierarchyTokenBucket] und
[HierarchyTokenBucketClass], «pfifo» über [PFIFO], «GRED» über [GenericRandomEarlyDetection], «SFB» über [StochasticFairBlue], «cake»
über [CAKE], «PIE» über [PIE], «DRR» über [DeficitRoundRobinScheduler] und
[DeficitRoundRobinSchedulerClass], «BFIFO» über [BFIFO],
«PFIFOHeadDrop» über [PFIFOHeadDrop], «PFIFOFast» über [PFIFOFast], «HHF»
über [HeavyHitterFilter], «ETS» über [EnhancedTransmissionSelection],
«QFQ» über [QuickFairQueueing] und [QuickFairQueueingClass]. - In systemd-networkd wurde im Abschnitt [DHCPv4] die Einstellung UseGateway hinzugefügt, um die Verwendung von Gateway-Informationen, die über DHCP erhalten wurden, zu deaktivieren.
- In systemd-networkd wurden in den Abschnitten [DHCPv4] und [DHCPServer] die Einstellungen SendVendorOption hinzugefügt, um zusätzliche Herstelleroptionen zu setzen und zu verarbeiten.
- In systemd-networkd wurde im Abschnitt [DHCPServer] eine neue Reihe von Optionen implementiert: EmitPOP3/POP3, EmitSMTP/SMTP und EmitLPR/LPR, um Informationen über die POP3-, SMTP- und LPR-Server hinzuzufügen.
- In systemd-networkd gibt es jetzt in den .netdev-Dateien im Abschnitt [Bridge] die Einstellung VLANProtocol zur Auswahl des verwendeten VLAN-Protokolls.
- In systemd-networkd wurde in den .network-Dateien im Abschnitt [Link] die Einstellung Group zur Verwaltung von Linkgruppen implementiert.
- Die Einstellungen BlackList wurden in DenyList umbenannt (um die Abwärtskompatibilität zu gewährleisten, bleibt die Verarbeitung des alten Namens erhalten).
- In systemd-networkd wurden zahlreiche neue Einstellungen im Zusammenhang mit IPv6 und DHCPv6 hinzugefügt.
- In networkctl wurde der Befehl 'forcerenew' hinzugefügt, um alle Adresszuweisungen (leases) zwangsweise zu aktualisieren.
- In systemd-resolved gibt es in der DNS-Einstellung die Möglichkeit, eine Portnummer und einen Hostnamen zur Verifizierung des DNS-over-TLS-Zertifikats anzugeben. In der Implementierung von DNS-over-TLS wurde die Unterstützung für die Überprüfung von SNI hinzugefügt.
- In systemd-resolved wurde die Möglichkeit hinzugefügt, die Weiterleitung von einteiligen DNS-Namen (single-label, aus einem Hostnamen) zu konfigurieren.
- In systemd-journald wird die Unterstützung des zstd-Algorithmus für die Kompression großer Felder in Protokollen bereitgestellt. Es wurden Maßnahmen zum Schutz vor Kollisionen in den Hash-Tabellen, die in den Protokollen verwendet werden, durchgeführt.
- In journalctl wurden klickbare URLs mit Links zur Dokumentation in den Protokollmeldungen hinzugefügt.
- In journald.conf wurde die Einstellung Audit zur Steuerung der Aktivierung des Audits während der Initialisierung von systemd-journald hinzugefügt.
- In systemd-coredump wurde die Möglichkeit zur Kompression von Core-Dumps mittels des zstd-Algorithmus hinzugefügt.
- In systemd-repart wurde die Einstellung UUID zur Zuweisung einer UUID an die neu erstellte Partition hinzugefügt.
- Im Dienst systemd-homed, der die Verwaltung tragbarer Home-Verzeichnisse ermöglicht, wurde die Möglichkeit zur Entsperrung von Home-Verzeichnissen mit FIDO2-Token hinzugefügt. Im Backend für die Verschlüsselung der LUKS-Partitionen wurde die Unterstützung für die automatische Rückgabe leerer Blöcke im Dateisystem nach Beendigung der Sitzung hinzugefügt. Es wurde ein Schutz gegen doppelte Datenverschlüsselung hinzugefügt, wenn festgestellt wird, dass für die Partition /home im System bereits eine Verschlüsselung aktiv ist.
- In /etc/crypttab wurden die Einstellungen „keyfile-erase“ zum Löschen des Schlüssels nach der Verwendung und „try-empty-password“ zum Versuch, die Partition mit einem leeren Passwort zu entsperren, bevor der Benutzer zur Eingabe eines Passworts aufgefordert wird, hinzugefügt (nützlich zur Installation von verschlüsselten Images mit der Festlegung des Passworts nach dem ersten Start, nicht während der Installation).
- In systemd-cryptsetup wurde während des Bootvorgangs die Unterstützung für das Entsperren von Microsoft BitLocker-Partitionen über /etc/crypttab realisiert. Zudem wurde die Möglichkeit zur Lesung
von Schlüsseln zur automatischen Entsperrung von Partitionen aus den Dateien /etc/cryptsetup-keys.d/<volume>.key und /run/cryptsetup-keys.d/<volume>.key hinzugefügt. - Ein systemd-xdg-autostart-generator wurde hinzugefügt, um Unit-Dateien aus .desktop-Startdateien zu erstellen.
- In „bootctl“ wurde der Befehl „reboot-to-firmware“ hinzugefügt.
- In systemd-firstboot wurden die Optionen „—image“ zum Angabe des Disk-Images zum Booten, „—kernel-command-line“ zur Initialisierung der Datei /etc/kernel/cmdline, „—root-password-hashed“ zur Vorgabe des root-Passwort-Hashes und „—delete-root-password“ zum Löschen des root-Passworts hinzugefügt.
Quelle: opennet.ru
