Dopo tre mesi di sviluppo rilascio del gestore di sistema . Nel nuovo rilascio sono stati aggiunti nuovi componenti systemd-homed e systemd-repart, è stata attivata la supporto per profili utente portabili in formato JSON, è stata fornita la possibilità di definire gli spazi dei nomi in systemd-journald, e aggiunto il supporto per il meccanismo 'pidfd'. Completamente riprogettato , su cui è stata raccolta gran parte della documentazione disponibile e proposto un nuovo logo.

Principali :
- Aggiunto il servizio , che gestisce le directory home portabili fornite sotto forma di immagine disco montabile, i dati di cui sono crittografati. Systemd-homed consente di creare ambienti autonomi per i dati dell'utente, che possono essere trasferiti tra sistemi diversi senza preoccuparsi della sincronizzazione degli identificatori e della riservatezza. I parametri delle credenziali utente sono legati alla directory home e non alle impostazioni di sistema: invece di /etc/passwd, /etc/group e /etc/shadow, viene utilizzato un profilo in formato . Maggiori dettagli in systemd-homed.
- Aggiunto il componente accessorio systemd-homed '» («systemd-userdb»), che trasmette gli account UNIX/glibc NSS in record JSON e fornisce un'API Varlink unificata per interrogare e scorrere i record. Nel profilo JSON associato alla home directory sono specificati i parametri necessari al funzionamento dell'utente, inclusi i dati su nome, hash della password, chiavi per la crittografia, quote e risorse fornite. Il profilo può essere firmato digitalmente, con la firma memorizzata su un token esterno Yubikey. Per la gestione dei profili è stata proposta l'utility «userdbctl». Il supporto per i profili in formato JSON è stato aggiunto a vari componenti di systemd, inclusi systemd-logind e pam-systemd, consentendo l'autenticazione, l'accesso, la configurazione delle variabili ambientali, la creazione di sessioni e l'impostazione dei limiti per gli utenti con directory portabili. Si prevede in futuro la possibilità di generare profili JSON tramite il framework sssd, con memorizzazione delle impostazioni degli utenti in LDAP.
- È stata aggiunta una nuova utilità «systemd-repart», progettata per la ridistribuzione delle tabelle delle partizioni su dischi nel formato GPT. La struttura delle partizioni è definita in forma dichiarativa attraverso file che descrivono quali partizioni devono o possono esistere. Ad ogni avvio, la tabella delle partizioni attuale viene confrontata con questi file, dopodiché vengono aggiunte le partizioni mancanti oppure, se la dimensione relativa o assoluta specificata nelle impostazioni non coincide, viene aumentata la dimensione delle partizioni esistenti. Sono consentite solo modifiche incremental, ovvero la rimozione e la riduzione della dimensione non sono possibili, le partizioni possono solo essere aggiunte e aumentate.
L'utilità è principalmente progettata per l'esecuzione da initrd e determina automaticamente il disco su cui è posizionata la partizione radice, senza richiedere ulteriori configurazioni, oltre ai file che definiscono le modifiche.In pratica, systemd-repart può rivelarsi utile per le immagini del sistema operativo, che inizialmente possono essere fornite in forma minima e successivamente espandersi alla dimensione del dispositivo di blocco esistente o essere arricchite con partizioni aggiuntive (ad esempio, la partizione radice può espandersi per coprire l'intero disco o, dopo il primo avvio, può essere creata una partizione di swap o /home). Un altro utilizzo può essere configurazioni con due partizioni alternate: inizialmente può essere fornita solo la prima partizione, mentre la seconda viene creata al primo avvio.
- È ora possibile avviare più istanze di systemd-journald, ognuna delle quali tiene registri nel proprio spazio dei nomi. Oltre al servizio principale systemd-journald.service, è stato proposto un modello nella cartella .service per creare istanze aggiuntive collegate ai propri spazi dei nomi mediante la direttiva «LogNamespace». Ogni spazio dei nomi dei log è gestito da un processo in background separato con il proprio set di configurazioni e limiti. Questa funzionalità potrebbe rivelarsi utile per bilanciare il carico in caso di elevato volume di log o per aumentare l'isolamento delle applicazioni. È stata aggiunta a journalctl l'opzione «—namespace», che limita la richiesta solo allo spazio dei nomi specificato.
- In systemd-udevd and other components of systemd, support has been added for a mechanism that assigns alternative names to network interfaces, allowing multiple names to be applied to a single interface simultaneously. The name length can reach up to 128 characters (previously, the network interface name was limited to 16 characters). By default, systemd-udevd now assigns all name variants generated by supported naming schemes to each network interface. This behavior can be modified via the new AlternativeName and AlternativeNamesPolicy settings in .link files. In systemd-nspawn, the generation of alternative names including the full container name for veth links created on the host side has been implemented.
- The API sd-event.h has been updated to support the Linux kernel 'pidfd' subsystem, which handles situations of PID reuse (pidfd is associated with a specific process and does not change, while a PID can be reassigned to another process after the current process associated with that PID terminates). All components of systemd, except PID 1, have been transitioned to use pidfds if the current kernel supports this subsystem.
- In systemd-logind, access control for changing the virtual terminal is ensured through PolicyKit. By default, the authority to switch the active terminal is granted only to users who have initiated a session on the local virtual terminal at least once.
- To simplify the creation of initrd images with systemd, the PID 1 handler now recognizes the use in initrd and in this case automatically loads initrd.target instead of default.target. With this approach, initrd images and the main system can differ only by the presence of the file /etc/initrd-release.
- A new kernel command-line parameter has been added — 'systemd.cpu_affinity', equivalent to the CPUAffinity option in /etc/systemd/system.conf, allowing the CPU binding mask for PID 1 and other processes to be configured.
- The SELinux database is reloaded along with the restart of PID 1 through commands like 'systemctl daemon-reload'.
- The PID 1 handler has a setting added, 'systemd.show-status=error', which, when set, displays only error messages and significant delays during boot on the console.
- In systemd-sysusers è stata aggiunta la supporto per la creazione di utenti con un nome di gruppo principale diverso dal nome utente.
- In systemd-growfs, tramite l'opzione di montaggio x-systemd.growfs in /etc/fstab, è stata implementata la supporto per l'espansione delle partizioni XFS, oltre all'espansione già supportata delle partizioni Ext4 e Btrfs.
- In /etc/crypttab è stata aggiunta l'opzione x-initrd.attach per definire la partizione crittografata già sbloccata nella fase initrd.
- In systemd-cryptsetup è stata aggiunta la supporto (opzione pkcs11-uri in /etc/crypttab) per lo sblocco delle partizioni crittografate utilizzando smart card PKCS#11, ad esempio, per collegare la crittografia delle partizioni a chiavi YubiKeys.
- In /etc/fstab sono state aggiunte nuove opzioni di montaggio 'x-systemd.required-by' e 'x-systemd.wanted-by' per la configurazione esplicita delle unità che definiscono le operazioni di montaggio, invocate invece di local-fs.target e remote-fs.target.
- È stata aggiunta una nuova opzione di isolamento dei servizi in sandbox — ProtectClock, che limita la scrittura nell'orologio di sistema (l'accesso è bloccato a livello di /dev/rtc, chiamate di sistema e permessi CAP_SYS_TIME/CAP_WAKE_ALARM).
- Nella specifica e systemd-gpt-auto-generator è stata aggiunta la definizione delle partizioni
/var и /var/tmp. - In "systemctl list-unit-files", a new column has been added to display the default state suggested by the manufacturer for this type of units.
- The "--with-dependencies" option has been added to "systemctl", which, when enabled, commands like "systemctl status" and "systemctl cat" will output not only all associated units but also the units they depend on.
- In systemd-networkd, the configuration of qdisc has been enhanced to allow the configuration of TBF (Token Bucket Filter), SFQ (Stochastic Fairness Queuing), CoDel (Controlled-Delay Active Queue Management), and FQ (Fair Queue) parameters.
- In systemd-networkd, support for IFB network devices has been added ().
- In systemd-networkd, the MultiPathRoute parameter has been implemented in the [Route] section for configuring multi-path routes.
- In systemd-networkd, for the DHCPv4 client, the SendDecline option has been added, which, when specified, checks for address duplication after receiving a DHCP response with an address, and in case of a conflict, the issued address is declined. Additionally, the RouteMTUBytes option has been introduced for the DHCPv4 client to define the MTU size for routes generated from IP address bindings (leases).
- La configurazione PrefixRoute nella sezione «[Address]» dei file «.network» è stata deprecata. È stata sostituita dalla configurazione «AddPrefixRoute», che ha un significato opposto.
- Nei file .network, la configurazione Gateway nella sezione «[Route]» ha ricevuto supporto per un nuovo valore «_dhcp», che, se impostato, seleziona un percorso statico basato sul gateway configurato tramite DHCP.
- Nei file .network, nella sezione «[RoutingPolicyRule]» sono state aggiunte le impostazioni
User e SuppressPrefixLength per definire il routing sorgente (source routing) basato su intervalli UID e dimensione del prefisso. - In networkctl, il comando «status» ha ora la possibilità di visualizzare i log associati a ciascuna interfaccia di rete.
- In systemd-networkd-wait-online è stata aggiunta la possibilità di impostare un tempo massimo di attesa per il passaggio dell'interfaccia allo stato attivo e di attesa per la scomparsa dell'interfaccia.
- È stata interrotta l'elaborazione dei file .link e .network con sezioni «[Match]» vuote o commentate.
- Nei file .link e .network, nella sezione «[Match]», è stata introdotta l'impostazione «PermanentMACAddress» per verificare l'indirizzo MAC permanente dei dispositivi in caso di utilizzo di un MAC casuale generato.
- La sezione «[TrafficControlQueueingDiscipline]» nei file .network è stata rinominata in «[NetworkEmulator]» e il prefisso «NetworkEmulator» è stato rimosso dai nomi delle impostazioni correlate.
- In systemd-resolved è stata aggiunta la supporto per la verifica SNI in DNS-over-TLS.
Fonte: opennet.ru
