Lansarea managerului de sistem systemd 249

După trei luni de dezvoltare, a fost lansată versiunea managerului de sistem systemd 249. Noua versiune aduce posibilitatea de a defini utilizatori/grupuri în format JSON, a stabilizat protocolul Journal, a simplificat organizarea încărcării partițiilor de disc succesor, a adăugat suport pentru atașarea programelor BPF la servicii, a realizat maparea identificatorilor utilizatorilor în partițiile montate, și a propus o cantitate mare de noi setări de rețea și posibilități pentru lansarea containerelor.

Modificări principale:

  • Protocolul Journal a fost documentat și poate fi folosit în clienți ca înlocuitor pentru protocolul syslog pentru livrarea locală a înregistrărilor de log. Protocolul Journal a fost implementat cu ceva timp în urmă și este deja utilizat în unele biblioteci client, totuși suportul său oficial a fost declarat abia acum.
  • În userdb și nss-systemd s-a asigurat citirea definițiilor suplimentare ale utilizatorilor, plasate în directoarele /etc/userdb/, /run/userdb/, /run/host/userdb/ și /usr/lib/userdb/, definite în format JSON. Se menționează că această posibilitate va oferi un mecanism suplimentar pentru crearea utilizatorilor în sistem, asigurându-se integrarea completă cu NSS și /etc/shadow. Suportul pentru formatul JSON pentru înregistrările utilizatorilor/grupurilor va permite, de asemenea, atașarea diferitelor parametri de gestionare a resurselor și alte setări, recunoscute de pam_systemd și systemd-logind.
  • În nss-systemd s-a realizat sinteza înregistrărilor utilizatorilor/grupurilor în /etc/shadow folosind parolele hash-uite din systemd-homed.
  • A fost implementat un mecanism care simplifică organizarea actualizărilor folosind partiții de disc care se înlocuiesc reciproc (o partiție activă, iar cealaltă de rezervă — actualizarea este copiată pe partiția de rezervă, după care aceasta devine activă). Dacă imaginea de disc conține două partiții rădăcină sau /usr, iar udev nu a identificat prezența parametrului 'root=' sau este procesată imaginea de disc specificată prin opțiunea '—image' în utilitarele systemd-nspawn și systemd-dissect, partiția pentru boot poate fi calculată prin compararea etichetelor GPT (se subînțelege că în eticheta GPT este menționat numărul versiunii conținutului partiției și systemd va alege partiția cu modificările cele mai recente).
  • Fișierele serviciilor au fost adăugate cu setarea BPFProgram, care permite încărcarea programelor BPF în kernel și gestionarea acestora cu legătura la servicii specificate systemd.
  • În systemd-fstab-generator și systemd-repart a fost adăugată opțiunea de încărcare de pe discuri care conțin doar partiția /usr și nu au o partiție de bază (partiția de bază va fi generată de utilitarul systemd-repart în timpul primei încărcări).
  • În systemd-nspawn, opțiunea „—private-user-chown” a fost înlocuită cu o variantă mai universală „—private-user-ownership”, care poate accepta valori „chown” ca echivalent al „—private-user-chown”, „off” pentru dezactivarea setării vechi, „map” pentru mapparea identificatorilor de utilizator în sistemele de fișiere montate și „auto” pentru alegerea „map” dacă există funcționalitate necesară în kernel (5.12+) sau revenirea la apelul recursiv „chown” în caz contrar. Prin intermediul mappării, se pot asocia fișierele unui utilizator pe o partiție montată a altcuiva cu un alt utilizator în sistemul actual, facilitând astfel utilizarea comună a fișierelor de către diferiți utilizatori. În mecanismul directoarelor de acasă portabile systemd-homed, mapparea va permite utilizatorilor să își mute directoarele de acasă pe suporturi externe și să le utilizeze pe diferite computere, unde schema identificatorilor de utilizatori nu coincide.
  • În systemd-nspawn, în opțiunea „—private-user” acum poate fi utilizată valoarea „identity” pentru a reflecta direct identificatorii de utilizator atunci când se configurează spațiul de nume (user namespace), adică UID 0 și UID 1 în container vor fi reflectați în UID 0 și UID 1 pe partea gazdă, pentru a reduce vectorii de atac (containerul va primi capabilitățile procesului doar în spațiul său de nume).
  • În systemd-nspawn a fost adăugată opțiunea „—bind-user” pentru a permite transferul în container a contului de utilizator existent în mediu-gazdă (în container se montează directorul de acasă, se adaugă înregistrarea utilizatorului/grupului și se execută mapparea UID între container și mediu-gazdă).
  • În systemd-ask-password și systemd-sysusers a fost adăugat suport pentru solicitarea parolelor setate (passwd.hashed-password. și passwd.plaintext-password.) prin intermediul mecanismului de transmitere sigură a datelor confidențiale introdus în versiunea systemd 247, folosind fișiere intermediare într-un director separat. În mod implicit, acreditivele sunt acceptate de procesul cu PID1, care le obține, de exemplu, de la managerul de control al containerelor, permițând configurarea parolei utilizatorului la prima încărcare.
  • În systemd-firstboot a fost adăugat suport pentru utilizarea mecanismului de transmitere sigură a datelor confidențiale pentru solicitarea diferitelor parametrii ale sistemului, ceea ce poate fi folosit pentru inițializarea setărilor sistemului la prima încărcare a imaginii containerului, în care nu există setările necesare în directorul /etc.
  • În procesul PID 1, pe parcursul încărcării, se asigură afișarea simultană a numelui și descrierii unității. Ieșirea poate fi modificată prin parametrul „StatusUnitFormat=combined” în system.conf sau prin opțiunea din linia de comandă a nucleului „systemd.status-unit-format=combined”.
  • În utilitarele systemd-machine-id-setup și systemd-repart a fost adăugată opțiunea „—image” pentru a transmite un fișier cu identificatorul mașinii în imaginile discurilor sau pentru a crește dimensiunea imaginii discului.
  • În fișierul de configurare a partițiilor, utilizat de utilitarul systemd-repart, a fost adăugat parametrul MakeDirectories, care poate fi utilizat pentru a crea directoare arbitrare în sistemul de fișiere creat înainte de a fi reflectate în tabela de partiții (de exemplu, pentru a crea în directorul rădăcină directoare pentru punctele de montare, astfel încât să fie posibilă montarea imediată a partiției în modul doar citire). Pentru gestionarea flagurilor GPT în partițiile create, au fost adăugate parametrii corespunzători Flags, ReadOnly și NoAuto. În parametrul CopyBlocks s-a implementat valoarea „auto” pentru a selecta automat partiția de boot curentă ca sursă la copierea blocurilor (de exemplu, atunci când este necesar să se transfere propriul director rădăcină pe un nou suport).
  • Flagul „grow-file-system” a fost implementat în GPT, similar opțiunii de montare x-systemd.growfs, asigurând extinderea automată a dimensiunii FS până la limitele dispozitivului de bloc, în cazul în care dimensiunea FS este mai mică decât partiția. Flagul se aplică FS-urilor Ext3, XFS și Btrfs și poate fi utilizat pentru partiții determinate automat. Flagul este activat în mod implicit pentru partițiile scriabile, create automat prin systemd-repart. O opțiune GrowFileSystem a fost adăugată pentru configurarea flagului în systemd-repart.
  • Fișierul /etc/os-release a fost actualizat cu suport pentru noile variabile IMAGE_VERSION și IMAGE_ID pentru a defini versiunea și identificatorul imaginilor atomar actualizabile. Pentru a introduce valorile specificate în diverse comenzi, au fost propuse specificatorii %M și %A.
  • Utilitarul portablectl a fost adăugat cu parametrul „--extension” pentru a activa imaginile portabile de extindere a sistemului (de exemplu, prin intermediul acestora pot fi distribuite imagini cu servicii suplimentare, integrate în partiția rădăcină).
  • Utilitarul systemd-coredump a fost îmbunătățit prin extragerea informațiilor ELF build-id în timpul creării core-dump-ului procesului, ceea ce poate fi util pentru identificarea pachetului corespunzător procesului cu probleme, dacă informațiile despre numele și versiunea pachetelor deb sau rpm au fost încorporate în fișierele ELF.
  • În udev a fost adăugată o nouă bază de date pentru dispozitivele FireWire (IEEE 1394).
  • În udev, schema de selecție a numelui interfețelor de rețea „net_id” a fost actualizată cu trei modificări care afectează compatibilitatea înapoi: caracterele necorespunzătoare din numele interfețelor sunt acum înlocuite cu „_”; numele sloturilor PCI hotplug pentru sistemele s390 sunt procesate sub formă de numere hexazecimale; utilizarea a până la 65535 de dispozitive PCI încorporate este acum permisă (anterior, numerele mai mari de 16383 erau blocate).
  • În systemd-resolved, domeniul „home.arpa” a fost adăugat la lista NTA (Negative Trust Anchors), fiind recomandat pentru rețelele locale de acasă, dar nefiind utilizat în DNSSEC.
  • În parametrul CPUAffinity a fost asigurat parsing-ul specificatorilor „%”.
  • În fișierele „.network” a fost adăugat parametrul ManageForeignRoutingPolicyRules, care poate fi utilizat pentru excluderea prelucrării politicilor de rutare externe în systemd-networkd.
  • În fișierele „.network” a fost adăugat parametrul RequiredFamilyForOnline pentru a defini existența unei adrese IPv4 sau IPv6 ca semn că interfața de rețea se află în stare „online”. În networkctl a fost asigurat afișarea stării „online” pentru fiecare link.
  • În fișierele „.network” a fost adăugat parametrul OutgoingInterface pentru a defini interfețele de ieșire la configurarea punților de rețea.
  • În fișierele „.network” a fost adăugat parametrul Group, care permite configurarea unui grup Multipath pentru înregistrările din secțiunea „[NextHop]”.
  • În systemd-network-wait-online au fost adăugate opțiunile „-4” și „-6” pentru a limita așteptarea conexiunii doar pentru IPv4 sau IPv6.
  • În setările serverului DHCP a fost adăugat parametrul RelayTarget, care pune serverul în modul DHCP Relay. Pentru configurarea suplimentară a relay-ului DHCP sunt oferite opțiunile RelayAgentCircuitId și RelayAgentRemoteId.
  • În serverul DHCP a fost adăugat parametrul ServerAddress, care permite setarea explicită a adresei IP a serverului (în caz contrar, adresa este aleasă automat).
  • În serverul DHCP a fost implementată secțiunea [DHCPServerStaticLease], care permite configurarea legăturilor statice ale adreselor (DHCP leases), specificând legăturile adreselor IP fixe la adresele MAC și invers.
  • În configurarea RestrictAddressFamilies a fost implementat suportul pentru valoarea „none”, care, odată specificată, va restricționa serviciul să nu aibă acces la socket-urile din orice familie de adrese.
  • În fișierele „.network” în secțiunile [Address], [DHCPv6PrefixDelegation] și [IPv6Prefix], a fost implementat suportul pentru configurarea RouteMetric, care permite specificarea metricii pentru prefixul rutei creat pentru adresa specificată.
  • În nss-myhostname și systemd-resolved a fost asigurat sinteza înregistrărilor DNS cu adrese pentru gazde cu numele special „_outbound”, pentru care se emite întotdeauna o adresă IP locală, selectată conform rutelor implicite utilizate pentru conexiunile de ieșire.
  • În fișierele .network, în secțiunea „[DHCPv4]”, a fost adăugată o setare activă implicit RoutesToNTP, care impune adăugarea unei rute separate prin interfața de rețea curentă pentru accesul la adresa serverului NTP obținută pentru această interfață prin DHCP (similare cu configurația DNS, această setare garantează că traficul către serverul NTP va fi direcționat prin interfața prin care a fost obținută această adresă).
  • Au fost adăugate setările SocketBindAllow și SocketBindDeny pentru gestionarea accesului la socket-urile legate de serviciul curent.
  • Pentru fișierele unit, a fost implementată configurarea condițională ConditionFirmware, care permite crearea unor verificări ce evaluează funcțiile firmware-ului, cum ar fi funcționarea pe sisteme UEFI și device.tree, precum și verificarea compatibilității cu anumite capacități ale device-tree.
  • A fost implementată opțiunea ConditionOSRelease pentru a verifica câmpurile din fișierul /etc/os-release. La determinarea condițiilor de verificare a valorilor câmpurilor, sunt permise operatorii „=”, „!=”, „<“, „=”, „>”.
  • În utilitarul hostnamectl, comenzile de tip „get-xyz” și „set-xyz” au fost eliminate prefixele „get” și „set”, de exemplu, în loc de „hostnamectl get-hostname” și „hostnamectl set-hostname” se poate utiliza comanda „hostnamectl hostname”, atribuirea valorii fiind definită prin indicarea unui argument suplimentar („hostnamectl hostname value”). Suportul pentru comenzile vechi este păstrat pentru a asigura compatibilitatea.
  • În utilitarul systemd-detect-virt și configurația ConditionVirtualization, s-a asigurat o identificare corectă a mediilor Amazon EC2.
  • Setarea LogLevelMax în fișierele unit este acum aplicată nu doar pentru mesajele de log create de serviciu, ci și pentru mesajele procesului PID 1, în care este menționat serviciul.
  • A fost oferită posibilitatea includerii datelor SBAT (UEFI Secure Boot Advanced Targeting) în fișierele systemd-boot EFI PE.
  • În /etc/crypttab au fost implementate noi opțiuni „headless” și „password-echo” – prima permite omisiunea tuturor operațiunilor legate de solicitarea interactivă a parolelor și PIN-urilor utilizatorului, iar a doua oferă posibilitatea de a configura metoda de afișare a introducerii parolei (a nu afișa nimic, a afișa caracter cu caracter și a afișa stele). În systemd-ask-password a fost adăugată opțiunea „—echo” pentru scopuri similare.
  • În systemd-cryptenroll, systemd-cryptsetup și systemd-homed, a fost extins suportul pentru deblocarea partițiilor criptate LUKS2 folosind tokenuri FIDO2. Au fost adăugate noi opțiuni „—fido2-with-user-presence”, „—fido2-with-user-verification” și „—fido2-with-client-pin” pentru a gestiona verificarea prezenței fizice a utilizatorului, verificarea și necesitatea introducerii codului PIN.
  • În systemd-journal-gatewayd au fost adăugate opțiunile „—user”, „—system”, „—merge” și „—file”, similare cu aceleași opțiuni din journalctl.
  • În plus față de dependențele directe între unități, stabilite prin parametrii OnFailure și Slice, a fost adăugat suport pentru dependențele inverse implicite OnFailureOf și SliceOf, care pot fi utile, de exemplu, pentru a defini toate unitățile care fac parte dintr-un slice.
  • Au fost adăugate noi tipuri de dependențe între unități: OnSuccess și OnSuccessOf (opuse lui OnFailure, invocate la finalizarea cu succes); PropagatesStopTo și StopPropagatedFrom (permit propagarea evenimentului de oprire al unei unități către o altă unitate); Upholds și UpheldBy (alternativă la Restart).
  • Utilitarul systemd-ask-password a primit opțiunea „—emoji” pentru a controla apariția simbolului lacăt (🔐) în linia de introducere a parolei.
  • A fost adăugată documentația pentru structura arborelui de texte sursă systemd.
  • Pentru unități a fost adăugat atributul MemoryAvailable, care arată câtă memorie mai rămâne unității înainte de a atinge limita stabilită prin parametrii MemoryMax, MemoryHigh sau MemoryAvailable.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster