systemd gestore di sistema versione 249

Dopo tre mesi di sviluppo, viene presentato il rilascio del gestore di sistema systemd 249. Il nuovo rilascio fornisce la possibilità di definire utenti/gruppi in formato JSON, stabilizza il protocollo Journal, semplifica l'organizzazione del caricamento delle successive partizioni del disco, aggiunge la possibilità di collega i programmi BPF ai servizi e implementa la mappatura degli identificatori degli utenti nelle partizioni montate, viene offerta gran parte delle nuove impostazioni di rete e opportunità per il lancio di contenitori.

Principali modifiche:

  • Il protocollo Journal è documentato e può essere utilizzato nei client al posto del protocollo syslog per la consegna locale dei record di log. Il protocollo Journal è implementato da molto tempo ed è già utilizzato in alcune librerie client, tuttavia il suo supporto ufficiale è stato appena annunciato.
  • Userdb e nss-systemd forniscono supporto per la lettura di definizioni utente aggiuntive situate nelle directory /etc/userdb/, /run/userdb/, /run/host/userdb/ e /usr/lib/userdb/, specificate in formato JSON. Va notato che questa funzionalità fornirà un meccanismo aggiuntivo per la creazione di utenti nel sistema, fornendogli la piena integrazione con NSS e /etc/shadow. Il supporto JSON per le voci di utenti/gruppi consentirà inoltre di collegare varie gestioni delle risorse e altre impostazioni agli utenti riconosciuti da pam_systemd e systemd-logind.
  • nss-systemd fornisce la sintesi delle voci di utenti/gruppi in /etc/shadow utilizzando password con hash da systemd-homed.
  • È stato implementato un meccanismo che semplifica l'organizzazione degli aggiornamenti utilizzando partizioni del disco che si sostituiscono a vicenda (una partizione è attiva e la seconda è di riserva: l'aggiornamento viene copiato nella partizione di riserva, dopodiché diventa attiva). Se ci sono due partizioni root o /usr nell'immagine del disco e udev non ha rilevato la presenza del parametro 'root=' o sta elaborando le immagini del disco specificate tramite l'opzione "--image" in systemd-nspawn e systemd -sezionare le utilità, la partizione di avvio può essere calcolata confrontando le etichette GPT (assumendo che l'etichetta GPT menzioni il numero di versione del contenuto della partizione e systemd selezionerà la partizione con le modifiche più recenti).
  • Ai file di servizio è stata aggiunta l'impostazione BPFProgram, con la quale è possibile organizzare il caricamento dei programmi BPF nel kernel e gestirli con il collegamento a specifici servizi di systemd.
  • Systemd-fstab-generator e systemd-repart aggiungono la possibilità di eseguire l'avvio da dischi che hanno solo una partizione /usr e nessuna partizione root (la partizione root verrà generata da systemd-repart durante il primo avvio).
  • In systemd-nspawn, l'opzione "--private-user-chown" è stata sostituita dall'opzione più generica "--private-user-ownership", che può accettare valori "chown" come equivalenti di "-- private-user-chown", "off" per disabilitare la vecchia impostazione, "map" per mappare gli ID utente sui filesystem montati e "auto" per selezionare "map" se la funzionalità richiesta è presente nel kernel (5.12+) o fallback altrimenti a una chiamata ricorsiva a "chown". Utilizzando la mappatura, puoi mappare i file di un utente su una partizione esterna montata su un altro utente sul sistema corrente, semplificando la condivisione di file tra diversi utenti. Nel meccanismo delle directory home portatili systemd-homed, la mappatura consentirà agli utenti di spostare le proprie directory home su supporti esterni e utilizzarle su computer diversi che non hanno lo stesso layout dell'ID utente.
  • In systemd-nspawn, l'opzione "--private-user" ora può utilizzare il valore "identity" per riflettere direttamente gli ID utente durante l'impostazione di uno spazio dei nomi utente, ad es. L'UID 0 e l'UID 1 nel contenitore si rifletteranno nell'UID 0 e nell'UID 1 sul lato host, per ridurre i vettori di attacco (il contenitore riceverà solo funzionalità di processo nel suo spazio dei nomi).
  • L'opzione "--bind-user" è stata aggiunta a systemd-nspawn per inoltrare al contenitore un account utente esistente nell'ambiente host (la directory home viene montata nel contenitore, viene aggiunta una voce utente/gruppo e la mappatura UID viene eseguito tra il contenitore e l'ambiente host).
  • Aggiunto il supporto per richiedere l'impostazione di password su systemd-ask-password e systemd-sysusers (passwd.hashed-password. e passwd.password in testo semplice. ) utilizzando il meccanismo introdotto in systemd 247 per trasferire in modo sicuro i dati sensibili utilizzando file intermedi in una directory separata. Per impostazione predefinita, le credenziali vengono accettate dal processo con PID1, che le riceve, ad esempio, dal gestore della gestione del contenitore, che consente di configurare la password dell'utente al primo avvio.
  • systemd-firstboot aggiunge il supporto per l'utilizzo del meccanismo di trasferimento sicuro dei dati sensibili per interrogare vari parametri di sistema, che possono essere utilizzati per inizializzare le impostazioni di sistema al primo avvio di un'immagine contenitore che non dispone delle impostazioni necessarie nella directory /etc.
  • Il processo PID 1 garantisce che durante l'avvio vengano visualizzati sia il nome dell'unità che la descrizione. È possibile modificare l'output tramite il parametro "StatusUnitFormat=combined" in system.conf o l'opzione della riga di comando del kernel "systemd.status-unit-format=combined"
  • L'opzione "--image" è stata aggiunta alle utilità systemd-machine-id-setup e systemd-repart per trasferire un file con un ID macchina a un'immagine disco o per aumentare la dimensione di un'immagine disco.
  • È stato aggiunto un parametro MakeDirectories al file di configurazione della partizione utilizzato dall'utilità systemd-repart, che può essere utilizzato per creare directory arbitrarie nel file system creato prima di riflettersi nella tabella delle partizioni (ad esempio, per creare directory per punti di montaggio in la partizione root in modo da poter montare immediatamente la partizione in modalità di sola lettura). Per controllare i flag GPT nelle sezioni create, sono stati aggiunti i parametri Flags, ReadOnly e NoAuto corrispondenti. Il parametro CopyBlocks ha un valore "auto" per selezionare automaticamente la partizione di avvio corrente come origine durante la copia dei blocchi (ad esempio, quando è necessario trasferire la propria partizione root su un nuovo supporto).
  • GPT implementa il flag "grow-file-system", che è simile all'opzione di montaggio x-systemd.growfs e fornisce l'espansione automatica della dimensione FS fino ai limiti del dispositivo a blocchi se la dimensione FS è inferiore alla partizione. Il flag è applicabile ai file system Ext3, XFS e Btrfs e può essere applicato alle partizioni rilevate automaticamente. Il flag è abilitato per impostazione predefinita per le partizioni scrivibili create automaticamente tramite systemd-repart. È stata aggiunta l'opzione GrowFileSystem per configurare il flag in systemd-repart.
  • Il file /etc/os-release fornisce il supporto per le nuove variabili IMAGE_VERSION e IMAGE_ID per determinare la versione e l'ID delle immagini aggiornate atomicamente. Gli specificatori %M e %A vengono proposti per sostituire i valori specificati in vari comandi.
  • All'utility Portablectl è stato aggiunto il parametro “--extension” per attivare le immagini delle estensioni del sistema portatile (ad esempio, attraverso di esse è possibile distribuire immagini con servizi aggiuntivi integrati nella partizione root).
  • L'utilità systemd-coredump fornisce l'estrazione delle informazioni sull'ID build ELF durante la generazione di un core dump di un processo, che può essere utile per determinare a quale pacchetto appartiene un processo in errore se sono state create informazioni sul nome e sulla versione dei pacchetti deb o rpm nei file ELF.
  • Una nuova base hardware per i dispositivi FireWire (IEEE 1394) è stata aggiunta a udev.
  • In udev, sono state aggiunte tre modifiche allo schema di selezione del nome dell'interfaccia di rete “net_id” che violano la compatibilità con le versioni precedenti: i caratteri errati nei nomi delle interfacce vengono ora sostituiti con “_”; I nomi degli slot PCI hotplug per i sistemi s390 vengono elaborati in formato esadecimale; È consentito l'utilizzo di un massimo di 65535 dispositivi PCI integrati (in precedenza i numeri superiori a 16383 erano bloccati).
  • systemd-resolved aggiunge il dominio "home.arpa" all'elenco NTA (Negative Trust Anchors), consigliato per le reti domestiche locali, ma non utilizzato in DNSSEC.
  • Il parametro CPUAffinity fornisce l'analisi degli identificatori "%".
  • Un parametro ManageForeignRoutingPolicyRules è stato aggiunto ai file .network, che può essere utilizzato per escludere systemd-networkd dall'elaborazione delle policy di routing di terze parti.
  • Il parametro RequiredFamilyForOnline è stato aggiunto ai file “.network” per determinare la presenza di un indirizzo IPv4 o IPv6 come segno che l'interfaccia di rete è nello stato “online”. Networkctl fornisce una visualizzazione dello stato "online" per ciascun collegamento.
  • Aggiunto il parametro OutgoingInterface ai file .network per definire le interfacce in uscita durante la configurazione dei bridge di rete.
  • Un parametro Gruppo è stato aggiunto ai file ".network", consentendo di configurare un gruppo Multipath per le voci nella sezione "[NextHop]".
  • Aggiunte le opzioni "-4" e "-6" a systemd-network-wait-online per limitare le attese di connessione solo a IPv4 o IPv6.
  • Un parametro RelayTarget è stato aggiunto alle impostazioni del server DHCP, che commuta il server in modalità DHCP Ralay. Per un'ulteriore configurazione dell'inoltro DHCP, vengono offerte le opzioni RelayAgentCircuitId e RelayAgentRemoteId.
  • Al server DHCP è stato aggiunto il parametro ServerAddress che permette di impostare esplicitamente l'indirizzo IP del server (altrimenti l'indirizzo viene selezionato automaticamente).
  • Il server DHCP implementa la sezione [DHCPServerStaticLease], che consente di configurare i collegamenti di indirizzi statici (lease DHCP), specificando collegamenti IP fissi agli indirizzi MAC e viceversa.
  • L'impostazione RestrictAddressFamilies supporta il valore "none", il che significa che il servizio non avrà accesso ai socket di alcuna famiglia di indirizzi.
  • Nei file ".network" nelle sezioni [Address], [DHCPv6PrefixDelegation] e [IPv6Prefix], è implementato il supporto per l'impostazione RouteMetric, che consente di specificare la metrica per il prefisso di route creato per l'indirizzo specificato.
  • nss-myhostname e systemd-resolved forniscono una sintesi dei record DNS con indirizzi per host con nome speciale “_outbound”, per i quali viene sempre rilasciato un IP locale, scelto in base ai percorsi predefiniti utilizzati per le connessioni in uscita.
  • Nei file .network, nella sezione "[DHCPv4]", è stata aggiunta un'impostazione attiva predefinita RoutesToNTP, che richiede l'aggiunta di un percorso separato attraverso l'interfaccia di rete corrente per accedere all'indirizzo del server NTP ottenuto per questa interfaccia utilizzando DHCP (simile a DNS , l'impostazione consente di garantire che il traffico verso il server NTP venga instradato attraverso l'interfaccia attraverso la quale è stato ricevuto questo indirizzo).
  • Aggiunte le impostazioni SocketBindAllow e SocketBindDeny per controllare l'accesso ai socket associati al servizio corrente.
  • Per i file unit è stata implementata un'impostazione condizionale denominata ConditionFirmware, che consente di creare controlli che valutano le funzioni del firmware, come il lavoro su sistemi UEFI e device.tree, nonché verificare la compatibilità con determinate funzionalità di device-tree.
  • Implementata l'opzione ConditionOSRelease per controllare i campi nel file /etc/os-release. Quando si definiscono le condizioni per il controllo dei valori dei campi, gli operatori “=”, “!=”, “<“, “<=”, “>=”, “>” sono accettabili.
  • Nell'utilità hostnamectl, comandi come "get-xyz" e "set-xyz" vengono liberati dai prefissi "get" e "set", ad esempio, invece di "hostnamectl get-hostname" e "hostnamectl "set-hostname" è possibile utilizzare il comando “hostnamectl hostname” ”, l'assegnazione di un valore in cui è determinata specificando un argomento aggiuntivo (“hostnamectl hostname value”). Il supporto per i comandi precedenti è stato mantenuto per garantire la compatibilità.
  • L'utilità systemd-detect-virt e l'impostazione ConditionVirtualization garantiscono la corretta identificazione degli ambienti Amazon EC2.
  • L'impostazione LogLevelMax nei file unit ora si applica non solo ai messaggi di registro generati dal servizio, ma anche ai messaggi di processo PID 1 che menzionano il servizio.
  • Fornita la possibilità di includere dati SBAT (UEFI Secure Boot Advanced Targeting) nei file EFI PE di systemd-boot.
  • /etc/crypttab implementa nuove opzioni "headless" e "password-echo": la prima consente di saltare tutte le operazioni associate alla richiesta interattiva di password e PIN da parte dell'utente, e la seconda consente di configurare il metodo per visualizzare l'immissione della password (non mostrare nulla, mostrare carattere per carattere e visualizzare asterischi). L'opzione "--echo" è stata aggiunta a systemd-ask-password per scopi simili.
  • systemd-cryptenroll, systemd-cryptsetup e systemd-homed hanno esteso il supporto per lo sblocco delle partizioni LUKS2 crittografate utilizzando i token FIDO2. Aggiunte nuove opzioni “--fido2-with-user-presence”, “--fido2-with-user-verification” e “-fido2-with-client-pin” per controllare la verifica della presenza fisica dell'utente, la verifica e la necessità di entrare un codice PIN.
  • Aggiunte le opzioni “--user”, “--system”, “--merge” e “--file” a systemd-journal-gatewayd, simili alle opzioni journalctl.
  • Oltre alle dipendenze dirette tra le unità specificate tramite i parametri OnFailure e Slice, è stato aggiunto il supporto per le dipendenze inverse implicite OnFailureOf e SliceOf, che possono essere utili, ad esempio, per determinare tutte le unità incluse nello slice.
  • Aggiunti nuovi tipi di dipendenze tra le unità: OnSuccess e OnSuccessOf (l'opposto di OnFailure, richiamato in caso di completamento positivo); PropagatesStopTo e StopPropagedFrom (consentono di propagare l'evento di arresto di un'unità a un'altra unità); Upholds e UpheldBy (alternativa a Restart).
  • L'utilità systemd-ask-password ora dispone di un'opzione "--emoji" per controllare l'aspetto del simbolo del lucchetto (🔐) nella riga di immissione della password.
  • Aggiunta documentazione sulla struttura ad albero dei sorgenti systemd.
  • Per le unità è stata aggiunta la proprietà MemoryAvailable che mostra la quantità di memoria rimasta nell'unità prima di raggiungere il limite impostato tramite i parametri MemoryMax, MemoryHigh o MemoryAvailable.

Fonte: opennet.ru

Aggiungi un commento