Rilascio del gestore di sistema systemd 249

Dopo tre mesi di sviluppo, è stato presentato il rilascio del gestore di sistema systemd 249. In questa nuova versione è stata garantita la possibilità di definire utenti/gruppi in formato JSON, stabilizzato il protocollo Journal, semplificata l'organizzazione del caricamento delle partizioni che si susseguono, aggiunta la possibilità di collegare programmi BPF ai servizi, implementato il mapping degli identificatori degli utenti nelle partizioni montate, e proposta una vasta gamma di nuove impostazioni di rete e opportunità per l'esecuzione di container.

Variazioni principali:

  • Documentato il protocollo Journal, che può essere utilizzato nei client al posto del protocollo syslog per la consegna locale dei log. Il protocollo Journal è stato implementato già da tempo e viene già utilizzato in alcune librerie client, tuttavia la sua ufficiale supporto è stata dichiarata solo ora.
  • In userdb e nss-systemd è garantita la lettura di definizioni aggiuntive degli utenti, collocate nelle directory /etc/userdb/, /run/userdb/, /run/host/userdb/ e /usr/lib/userdb/, specificate in formato JSON. Si segnala che questa possibilità fornirà un meccanismo aggiuntivo per la creazione di utenti nel sistema, garantendo una piena integrazione con NSS e /etc/shadow. Il supporto del formato JSON per le registrazioni di utenti/gruppi permetterà anche di allegare agli utenti diverse impostazioni di gestione delle risorse e altre configurazioni riconosciute da pam_systemd e systemd-logind.
  • In nss-systemd è garantita la sintesi delle registrazioni utente/gruppo in /etc/shadow utilizzando password hashate da systemd-homed.
  • È stato implementato un meccanismo che semplifica l'organizzazione degli aggiornamenti utilizzando partizioni che si sostituiscono a vicenda (una partizione attiva, mentre l'altra è di riserva — l'aggiornamento viene copiato sulla partizione di riserva, che successivamente diventa attiva). Se l'immagine del disco contiene due partizioni root o /usr, e udev non ha rilevato la presenza del parametro 'root=' o si sta elaborando immagini disco specificate tramite l'opzione "--image" nelle utility systemd-nspawn e systemd-dissect, la partizione da caricare può essere calcolata confrontando le etichette GPT (si presume che nell'etichetta GPT venga menzionato il numero di versione del contenuto della partizione e systemd sceglierà la partizione con le modifiche più recenti).
  • Nei file di servizio è stata aggiunta l'impostazione BPFProgram, che consente di organizzare il caricamento dei programmi BPF nel kernel e di gestirli associandoli a determinati servizi systemd.
  • Nel systemd-fstab-generator e systemd-repart è stata aggiunta la possibilità di avvio da dischi che contengono solo la partizione /usr e non hanno una partizione root (la partizione root sarà generata dall'utilità systemd-repart durante il primo avvio).
  • Nel systemd-nspawn l'opzione "--private-user-chown" è stata sostituita con una variante più universale "--private-user-ownership", che può assumere i valori "chown" come equivalente di "--private-user-chown", "off" per disabilitare la precedente impostazione, "map" per la mappatura degli identificatori degli utenti nei filesystem montati e "auto" per scegliere "map" se è disponibile la funzionalità necessaria nel kernel (5.12+) o tornare alla chiamata ricorsiva "chown" in caso contrario. Con la mappatura è possibile associare file di un utente su una partizione montata di un altro utente a un altro utente nel sistema attuale, semplificando così la condivisione dei file tra diversi utenti. Nel meccanismo delle home directory portatili systemd-homed, la mappatura consentirà agli utenti di spostare le proprie home directory su supporti esterni e utilizzarle su computer diversi, la cui disposizione degli identificatori degli utenti non coincide.
  • Nel systemd-nspawn nell'opzione "--private-user" ora è possibile utilizzare il valore "identity" per riflettere direttamente gli identificatori degli utenti durante la configurazione dello spazio dei nomi (user namespace), ossia UID 0 e UID 1 nel contenitore saranno riflessi in UID 0 e UID 1 sul lato host, per ridurre i vettori di attacco (il contenitore acquisirà le capacità del processo solo nel suo spazio dei nomi).
  • Nel systemd-nspawn è stata aggiunta l'opzione "--bind-user" per il passaggio all'interno del contenitore di un'account utente esistente nell'ambiente host (la home directory viene montata nel contenitore, viene aggiunta una voce per l'utente/gruppo e viene eseguita la mappatura degli UID tra il contenitore e l'ambiente host).
  • È stata aggiunta la supporto per la richiesta di password impostate (passwd.hashed-password.<user> e passwd.plaintext-password.<user>) in systemd-ask-password e systemd-sysusers, utilizzando il meccanismo di trasferimento sicuro dei dati riservati con file temporanei in una directory separata introdotto nella versione systemd 247. Di default, le credenziali vengono accettate dal processo con PID1, che le riceve, ad esempio, dal gestore dei container, consentendo di configurare la password dell'utente durante il primo avvio.
  • In systemd-firstboot è stata aggiunta la supporto per l'utilizzo del meccanismo di trasferimento sicuro dei dati riservati per richiedere vari parametri di sistema, che può essere utilizzato per inizializzare le impostazioni di sistema durante il primo avvio dell'immagine del container, in cui mancano le necessarie impostazioni nella directory /etc.
  • Durante il processo PID 1 all'avvio, viene mostrato simultaneamente il nome e la descrizione dell'unità. È 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".
  • Nelle utility systemd-machine-id-setup e systemd-repart è stata aggiunta l'opzione "—image" per passare un file con l'identificativo della macchina all'immagine del disco o per aumentare la dimensione dell'immagine del disco.
  • Nel file di configurazione delle partizioni, utilizzato dall'utility systemd-repart, è stato aggiunto il parametro MakeDirectories, che può essere utilizzato per creare directory arbitrarie nel file system creato prima che venga riflesso nella tabella delle partizioni (ad esempio, per creare directory nel partizionamento root per i punti di montaggio, in modo da potere montare immediatamente la partizione in modalità di sola lettura). Per gestire i flag GPT nelle partizioni create sono stati aggiunti i parametri Flags, ReadOnly e NoAuto. Nel parametro CopyBlocks è stato implementato il valore "auto" per la selezione automatica della partizione di avvio attuale come sorgente durante la copia dei blocchi (ad esempio, quando è necessario trasferire la propria partizione root su un nuovo supporto).
  • In GPT è stato implementato il flag «grow-file-system», simile all'opzione di montaggio x-systemd.growfs, che consente l'espansione automatica delle dimensioni del file system fino ai limiti del dispositivo di blocco, se le dimensioni del file system sono inferiori a quelle della partizione. Questo flag è applicabile ai file system Ext3, XFS e Btrfs e può essere utilizzato con partizioni automaticamente rilevate. Il flag è abilitato per impostazione predefinita per le partizioni scrivibili, create automaticamente tramite systemd-repart. Per la configurazione del flag, è stata aggiunta l'opzione GrowFileSystem in systemd-repart.
  • Nel file /etc/os-release è stato implementato il supporto per le nuove variabili IMAGE_VERSION e IMAGE_ID, per definire la versione e l'identificativo delle immagini aggiornate in modo atomico. Per inserire i valori specificati in vari comandi, sono stati proposti i specifier %M e %A.
  • Nell'utility portablectl è stato aggiunto il parametro «—extension» per attivare le immagini portabili dell'estensione del sistema (ad esempio, attraverso queste è possibile distribuire immagini con servizi aggiuntivi integrati nella partizione di root).
  • Nell'utility systemd-coredump è stato reso possibile l'estrazione delle informazioni ELF build-id durante la creazione del core dump di un processo, il che può essere utile per determinare a quale pacchetto appartiene il processo che ha generato l'errore, se le informazioni sul nome e sulla versione dei pacchetti deb o rpm sono state incorporate nei file ELF.
  • In udev è stata aggiunta una nuova base di dati per i dispositivi FireWire (IEEE 1394).
  • In udev, nel modello di selezione dei nomi delle interfacce di rete «net_id», sono state aggiunte tre modifiche che interrompono la retrocompatibilità: simboli non validi nei nomi delle interfacce vengono ora sostituiti con «_»; i nomi degli slot PCI hotplug per i sistemi s390 vengono gestiti in forma di numeri esadecimali; è consentito l'uso di fino a 65535 dispositivi PCI integrati (precedentemente i numeri superiori a 16383 erano bloccati).
  • In systemd-resolved è stato aggiunto il dominio «home.arpa» alla lista NTA (Negative Trust Anchors), raccomandato per le reti domestiche locali, ma non utilizzato in DNSSEC.
  • Nel parametro CPUAffinity è stata effettuata l'analisi dei specifier «%».
  • Nei file «.network» è stato aggiunto il parametro ManageForeignRoutingPolicyRules, che può essere utilizzato per escludere la gestione delle politiche di routing esterne in systemd-networkd.
  • Nei file «.network» è stato aggiunto il parametro RequiredFamilyForOnline per determinare la presenza di un indirizzo IPv4 o IPv6 come indicatore che l'interfaccia di rete è in stato «online». In networkctl è stato reso possibile visualizzare lo stato «online» per ogni link.
  • Nei file «.network» è stato aggiunto il parametro OutgoingInterface per definire le interfacce in uscita durante la configurazione dei ponti di rete.
  • Nei file «.network» è stato aggiunto il parametro Group, che consente di configurare il gruppo Multipath per le voci nella sezione «[NextHop]».
  • In systemd-network-wait-online sono state aggiunte le opzioni «-4» e «-6» per limitare l'attesa della connessione solo a IPv4 o IPv6.
  • Nelle impostazioni del server DHCP è stato aggiunto il parametro RelayTarget, che attiva il server in modalità DHCP Relay. Per una configurazione aggiuntiva del relay DHCP, sono state proposte le opzioni RelayAgentCircuitId e RelayAgentRemoteId.
  • Nel server DHCP è stato aggiunto il parametro ServerAddress, che consente di impostare esplicitamente l'indirizzo IP del server (altrimenti l'indirizzo viene selezionato automaticamente).
  • Nel server DHCP è stata implementata la sezione [DHCPServerStaticLease], che consente di configurare legami statici degli indirizzi (DHCP leases), specificando legami di IP fissi agli indirizzi MAC e viceversa.
  • Nella configurazione RestrictAddressFamilies è stata implementata la supporto per il valore «none», che indica che al servizio non saranno accessibili socket di alcuna famiglia di indirizzi.
  • Nei file «.network», nelle sezioni [Address], [DHCPv6PrefixDelegation] e [IPv6Prefix], è stato implementato il supporto per la configurazione RouteMetric, che consente di specificare la metrica per il prefisso di routing creato per l'indirizzo specificato.
  • In nss-myhostname e systemd-resolved è stata fornita la sintesi dei record DNS con indirizzi per gli host con il nome speciale «_outbound», per i quali viene sempre restituito 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 per impostazione predefinita RoutesToNTP, che prescrive l'aggiunta di un percorso separato tramite l'interfaccia di rete corrente per accedere all'indirizzo del server NTP, ricevuto per questa interfaccia tramite DHCP (analogamente alla configurazione DNS, garantendo che il traffico verso il server NTP venga instradato attraverso l'interfaccia tramite cui è stato ricevuto questo indirizzo).
  • Sono state aggiunte le impostazioni SocketBindAllow e SocketBindDeny per gestire l'accesso ai socket legati al servizio corrente.
  • Per i file di unità è stata implementata la configurazione condizionale ConditionFirmware, che consente di effettuare controlli sulle funzionalità del firmware, come il funzionamento su sistemi UEFI e device.tree, e di verificare la compatibilità con determinate possibilità del device-tree.
  • È stata implementata l'opzione ConditionOSRelease per il controllo dei campi nel file /etc/os-release. Quando si definiscono le condizioni per il controllo dei valori dei campi, sono ammessi gli operatori «=», «!=», «<», «=», «>».
  • Nell'utilità hostnamectl i comandi del tipo «get-xyz» e «set-xyz» hanno eliminato i prefissi «get» e «set», ad esempio, invece di «hostnamectl get-hostname» e «hostnamectl set-hostname» è possibile utilizzare il comando «hostnamectl hostname», il cui valore è definito specificando un argomento aggiuntivo («hostnamectl hostname value»). Il supporto per i comandi precedenti è stato mantenuto per garantire la compatibilità.
  • Nell'utilità systemd-detect-virt e nella configurazione ConditionVirtualization è stata garantita una corretta identificazione degli ambienti Amazon EC2.
  • La configurazione LogLevelMax nei file unit è ora applicata non solo ai messaggi di log generati dal servizio, ma anche ai messaggi del processo PID 1 in cui viene menzionato il servizio.
  • È stata fornita la possibilità di includere i dati SBAT (UEFI Secure Boot Advanced Targeting) nei file systemd-boot EFI PE.
  • In /etc/crypttab sono state implementate nuove opzioni «headless» e «password-echo» — la prima consente di saltare tutte le operazioni relative alla richiesta interattiva di password e PIN all'utente, mentre la seconda offre la possibilità di configurare il metodo di visualizzazione dell'input della password (non mostrare niente, mostrare carattere per carattere e visualizzare asterischi). Nell'utility systemd-ask-password è stata aggiunta l'opzione «—echo» per scopi analoghi.
  • In systemd-cryptenroll, systemd-cryptsetup e systemd-homed è stato ampliato il supporto per lo sblocco delle partizioni crittografate LUKS2 utilizzando token FIDO2. Sono state aggiunte nuove opzioni «—fido2-with-user-presence», «—fido2-with-user-verification» e «—fido2-with-client-pin» per gestire il controllo della presenza fisica dell'utente, la verifica e la necessità di inserire un codice PIN.
  • In systemd-journal-gatewayd sono state aggiunte le opzioni «—user», «—system», «—merge» e «—file», analoghe ad opzioni simili di journalctl.
  • Oltre alle dipendenze dirette tra le unità, definite attraverso i parametri OnFailure e Slice, è stato aggiunto il supporto per dipendenze inverse implicite OnFailureOf e SliceOf, che possono essere utili, ad esempio, per determinare tutte le unità appartenenti a uno slice.
  • Sono stati aggiunti nuovi tipi di dipendenze tra unità: OnSuccess e OnSuccessOf (l'opposto di OnFailure, chiamato al termine positivo); PropagatesStopTo e StopPropagatedFrom (consentono di propagare l'evento di arresto di un'unità a un'altra unità); Upholds e UpheldBy (alternativa a Restart).
  • Nell'utilità systemd-ask-password è stata aggiunta l'opzione «—emoji» per gestire l'apparizione del simbolo del lucchetto (🔐) nella riga di inserimento della password.
  • È stata aggiunta la documentazione sulla struttura dell'albero dei testi sorgente di systemd.
  • Per i unit è stata aggiunta la proprietà MemoryAvailable, che mostra quanta memoria rimane al unit prima di raggiungere il limite stabilito dai parametri MemoryMax, MemoryHigh o MemoryAvailable.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster