Systemd System Manager versiunea 249

După trei luni de dezvoltare, este prezentată versiunea managerului de sistem systemd 249. Noua versiune oferă posibilitatea de a defini utilizatori/grupuri în format JSON, stabilizează protocolul Jurnal, simplifică organizarea încărcării partițiilor succesive de disc, adaugă capacitatea de a leagă programele BPF la servicii și implementează utilizatorii de mapare a identificatorilor în partiții montate, sunt oferite o mare parte de noi setări de rețea și oportunități de lansare a containerelor.

Principalele modificări:

  • Protocolul Jurnal este documentat și poate fi utilizat în clienți în locul protocolului syslog pentru livrarea locală a înregistrărilor de jurnal. Protocolul Journal a fost implementat de mult timp și este deja utilizat în unele biblioteci clienți, cu toate acestea, suportul său oficial tocmai a fost anunțat.
  • Userdb și nss-systemd oferă suport pentru citirea definițiilor de utilizator suplimentare situate în directoarele /etc/userdb/, /run/userdb/, /run/host/userdb/ și /usr/lib/userdb/, specificate în format JSON. Este de notat că această caracteristică va oferi un mecanism suplimentar pentru crearea de utilizatori în sistem, oferindu-i o integrare completă cu NSS și /etc/shadow. Suportul JSON pentru intrările de utilizator/grup va permite, de asemenea, atașarea diferitelor setări de gestionare a resurselor și altor setări utilizatorilor pe care pam_systemd și systemd-logind îi recunosc.
  • nss-systemd furnizează sinteza intrărilor de utilizator/grup în /etc/shadow folosind parole hashed de la systemd-homed.
  • A fost implementat un mecanism care simplifică organizarea actualizărilor folosind partiții de disc care se înlocuiesc între ele (o partiție este activă, iar a doua este de rezervă - actualizarea este copiată în partiția de rezervă, după care devine activă). Dacă există două partiții root sau /usr în imaginea de disc și udev nu a detectat prezența parametrului „root=” sau procesează imagini de disc specificate prin opțiunea „--image” din systemd-nspawn și systemd -Dissect utilitare, partiția de boot poate fi calculată prin compararea etichetelor GPT (presupunând că eticheta GPT menționează numărul versiunii conținutului partiției și systemd va selecta partiția cu modificările mai recente).
  • La fișierele de serviciu a fost adăugată o setare BPFProgram, cu care puteți organiza încărcarea programelor BPF în kernel și le puteți gestiona cu legături la anumite servicii de sistem.
  • Systemd-fstab-generator și systemd-repart adaugă capacitatea de a porni de pe discuri care au doar o partiție /usr și nicio partiție rădăcină (partiția rădăcină va fi generată de systemd-repart în timpul primei porniri).
  • În systemd-nspawn, opțiunea „--private-user-chown” a fost înlocuită cu opțiunea mai generică „--private-user-ownership”, care poate accepta valori „chown” ca echivalent cu „-- private-user-chown”, „off” pentru a dezactiva setarea veche, „map” pentru a mapa ID-urile utilizatorului pe sistemele de fișiere montate și „auto” pentru a selecta „map” dacă funcționalitatea necesară este prezentă în kernel (5.12+) sau retrage la un apel recursiv la „chown” altfel. Folosind maparea, puteți mapa fișierele unui utilizator de pe o partiție străină montată către un alt utilizator din sistemul curent, facilitând partajarea fișierelor între diferiți utilizatori. În mecanismul directorului principal portabil systemd-homed, maparea va permite utilizatorilor să-și mute directoarele de acasă pe medii externe și să le folosească pe computere diferite care nu au același aspect al ID-ului de utilizator.
  • În systemd-nspawn, opțiunea „--private-user” poate folosi acum valoarea „identity” pentru a reflecta direct ID-urile utilizatorului la configurarea unui spațiu de nume de utilizator, de exemplu. UID 0 și UID 1 din container vor fi reflectate în UID 0 și UID 1 pe partea gazdă, pentru a reduce vectorii de atac (containerul va primi capacități de proces numai în spațiul său de nume).
  • Opțiunea „--bind-user” a fost adăugată la systemd-nspawn pentru a redirecționa un cont de utilizator existent în mediul gazdă către container (directorul de acasă este montat în container, este adăugată o intrare de utilizator/grup și maparea UID-ului se realizează între container și mediul gazdă).
  • systemd-ask-password și systemd-sysusers au adăugat suport pentru solicitarea parolelor setate (passwd.hashed-password. și passwd.plaintext-password.) folosind mecanismul introdus în systemd 247 pentru a transfera în siguranță date sensibile folosind fișiere intermediare într-un director separat. În mod implicit, acreditările sunt acceptate din procesul cu PID1, care le primește, de exemplu, de la managerul de gestionare a containerelor, care vă permite să configurați parola utilizatorului la prima pornire.
  • systemd-firstboot adaugă suport pentru utilizarea mecanismului de transfer securizat al datelor sensibile pentru a interoga diferiți parametri de sistem, care pot fi utilizați pentru a inițializa setările sistemului la prima pornire a unei imagini de container care nu are setările necesare în directorul /etc.
  • Procesul PID 1 asigură că atât numele unității, cât și descrierea sunt afișate în timpul pornirii. Puteți modifica rezultatul prin parametrul „StatusUnitFormat=combined” din system.conf sau opțiunea din linia de comandă a nucleului „systemd.status-unit-format=combined”
  • Opțiunea „--image” a fost adăugată la utilitarele systemd-machine-id-setup și systemd-repart pentru a transfera un fișier cu un ID de mașină pe o imagine de disc sau pentru a crește dimensiunea unei imagini de disc.
  • Un parametru MakeDirectories a fost adăugat la fișierul de configurare a partiției utilizat de utilitarul systemd-repart, care poate fi folosit pentru a crea directoare arbitrare în sistemul de fișiere creat înainte de a fi reflectat în tabelul de partiții (de exemplu, pentru a crea directoare pentru punctele de montare în partiția rădăcină, astfel încât să puteți monta imediat partiția în modul numai citire). Pentru a controla steagurile GPT în secțiunile create, au fost adăugați parametrii corespunzători Flags, ReadOnly și NoAuto. Parametrul CopyBlocks are valoarea „auto” pentru a selecta automat partiția de pornire curentă ca sursă atunci când copiați blocuri (de exemplu, când trebuie să transferați propria partiție rădăcină pe un mediu de stocare nou).
  • GPT implementează indicatorul „grow-file-system”, care este similar cu opțiunea de montare x-systemd.growfs și oferă extinderea automată a dimensiunii FS la limitele dispozitivului bloc dacă dimensiunea FS este mai mică decât partiția. Indicatorul este aplicabil sistemelor de fișiere Ext3, XFS și Btrfs și poate fi aplicat partițiilor detectate automat. Indicatorul este activat în mod implicit pentru partițiile inscriptibile create automat prin systemd-repart. Opțiunea GrowFileSystem a fost adăugată pentru a configura steag în systemd-repart.
  • Fișierul /etc/os-release oferă suport pentru noile variabile IMAGE_VERSION și IMAGE_ID pentru a determina versiunea și ID-ul imaginilor actualizate atomic. Specificatorii %M și %A sunt propuși pentru a înlocui valorile specificate în diferite comenzi.
  • Parametrul „--extension” a fost adăugat utilitarului portablectl pentru a activa imaginile cu extensii de sistem portabile (de exemplu, prin intermediul acestora puteți distribui imagini cu servicii suplimentare integrate în partiția rădăcină).
  • Utilitarul systemd-coredump oferă extragerea informațiilor ELF build-id atunci când se generează un dump de bază al unui proces, care poate fi util pentru a determina pachetului căruia îi aparține un proces care eșuează dacă au fost construite informații despre numele și versiunea pachetelor deb sau rpm. în fișierele ELF.
  • O nouă bază hardware pentru dispozitivele FireWire (IEEE 1394) a fost adăugată la udev.
  • În udev, trei modificări au fost adăugate la schema de selecție a numelui de interfață de rețea „net_id” care încalcă compatibilitatea cu versiunea inversă: caracterele incorecte din numele interfeței sunt acum înlocuite cu „_”; Numele sloturilor PCI hotplug pentru sistemele s390 sunt procesate în formă hexazecimală; Este permisă utilizarea a până la 65535 dispozitive PCI încorporate (anterior numerele de peste 16383 erau blocate).
  • systemd-resolved adaugă domeniul „home.arpa” la lista NTA (Ancore de încredere negative), care este recomandată pentru rețelele locale de acasă, dar nu este utilizată în DNSSEC.
  • Parametrul CPUAffinity oferă analizarea specificatorilor „%”.
  • Un parametru ManageForeignRoutingPolicyRules a fost adăugat la fișierele .network, care poate fi folosit pentru a exclude systemd-networkd de la procesarea politicilor de rutare terță parte.
  • Parametrul RequiredFamilyForOnline a fost adăugat la fișierele „.network” pentru a determina prezența unei adrese IPv4 sau IPv6 ca semn că interfața de rețea este în starea „online”. Networkctl oferă o afișare a stării „online” pentru fiecare legătură.
  • S-a adăugat parametrul OutgoingInterface la fișierele .network pentru a defini interfețele de ieșire la configurarea punților de rețea.
  • Un parametru de grup a fost adăugat la fișierele „.network”, permițându-vă să configurați un grup Multipath pentru intrările din secțiunea „[NextHop]”.
  • S-au adăugat opțiuni „-4” și „-6” la systemd-network-wait-online pentru a limita așteptările de conectare numai la IPv4 sau IPv6.
  • A fost adăugat un parametru RelayTarget la setările serverului DHCP, care comută serverul în modul DHCP Ralay. Pentru configurarea suplimentară a releului DHCP, sunt oferite opțiunile RelayAgentCircuitId și RelayAgentRemoteId.
  • Parametrul ServerAddress a fost adăugat la serverul DHCP, permițându-vă să setați în mod explicit adresa IP a serverului (în caz contrar, adresa este selectată automat).
  • Serverul DHCP implementează secțiunea [DHCPServerStaticLease], care vă permite să configurați legături de adrese statice (închiriere DHCP), specificând legături IP fixe la adrese MAC și invers.
  • Setarea RestrictAddressFamilies acceptă valoarea „none”, ceea ce înseamnă că serviciul nu va avea acces la prize ale vreunei familii de adrese.
  • În fișierele „.network” din secțiunile [Adresă], [DHCPv6PrefixDelegation] și [IPv6Prefix], este implementat suportul pentru setarea RouteMetric, care vă permite să specificați metrica pentru prefixul de rută creat pentru adresa specificată.
  • nss-myhostname și systemd-resolved furnizează sinteza înregistrărilor DNS cu adrese pentru gazde cu un nume special „_outbound”, pentru care se emite întotdeauna un IP local, ales în conformitate cu rutele implicite utilizate pentru conexiunile de ieșire.
  • În fișierele .network, în secțiunea „[DHCPv4]”, a fost adăugată o setare implicită activă RoutesToNTP, care necesită adăugarea unei rute separate prin interfața de rețea curentă pentru a accesa adresa serverului NTP obținută pentru această interfață folosind DHCP (similar cu DNS , setarea vă permite să garantați că traficul către serverul NTP va fi direcționat prin interfața prin care a fost primită această adresă).
  • S-au adăugat setările SocketBindAllow și SocketBindDeny pentru a controla accesul la socket-urile legate de serviciul curent.
  • Pentru fișierele unitare, a fost implementată o setare condiționată numită ConditionFirmware, care vă permite să creați verificări care evaluează funcțiile firmware-ului, cum ar fi lucrul pe sistemele UEFI și device.tree, precum și să verificați compatibilitatea cu anumite capabilități de arbore de dispozitiv.
  • Am implementat opțiunea ConditionOSRelease pentru a verifica câmpurile din fișierul /etc/os-release. La definirea condițiilor de verificare a valorilor câmpurilor sunt acceptabili operatorii „=”, „!=”, „=”, „>”.
  • În utilitarul hostnamectl, comenzi precum „get-xyz” și „set-xyz” sunt eliberate de prefixele „get” și „set”, de exemplu, în loc de „hostnamectl get-hostname” și „hostnamectl „set-hostname” puteți folosi comanda „hostnamectl hostname” ”, alocarea unei valori în care este determinată prin specificarea unui argument suplimentar („hostnamectl hostname value”). Suportul pentru comenzi mai vechi a fost păstrat pentru a asigura compatibilitatea.
  • Utilitarul systemd-detect-virt și setarea ConditionVirtualization asigură identificarea corectă a mediilor Amazon EC2.
  • Setarea LogLevelMax din fișierele de unitate se aplică acum nu numai mesajelor de jurnal generate de serviciu, ci și mesajelor de proces PID 1 care menționează serviciul.
  • Oferă posibilitatea de a include date SBAT (UEFI Secure Boot Advanced Targeting) în fișierele EFI PE cu boot systemd.
  • /etc/crypttab implementează noi opțiuni „headless” și „password-echo” - prima vă permite să săriți peste toate operațiunile asociate cu solicitarea interactivă a parolelor și a codurilor PIN de la utilizator, iar a doua vă permite să configurați metoda de afișare a introducerii parolei (nu arata nimic, arata caracter cu caracter si afiseaza asteriscuri). Opțiunea „--echo” a fost adăugată la systemd-ask-password în scopuri similare.
  • systemd-cryptenroll, systemd-cryptsetup și systemd-homed au suport extins pentru deblocarea partițiilor LUKS2 criptate folosind token-uri FIDO2. S-au adăugat noi opțiuni „--fido2-with-user-presence”, „--fido2-with-user-verification” și „-fido2-with-client-pin” pentru a controla verificarea prezenței fizice a utilizatorului, verificarea și necesitatea de a intra un cod PIN.
  • S-au adăugat opțiunile „--user”, „--system”, „--merge” și „--file” la systemd-journal-gatewayd, similar cu opțiunile journalctl.
  • Pe lângă dependențele directe dintre unitățile specificate 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 determinarea tuturor unităților incluse în slice.
  • S-au adăugat noi tipuri de dependențe între unități: OnSuccess și OnSuccessOf (opusul OnFailure, apelat la finalizarea cu succes); PropagatesStopTo și StopPropagatedFrom (vă permit să propagați evenimentul de oprire al unei unități către o altă unitate); Upholds și UpheldBy (alternativă la Restart).
  • Utilitarul systemd-ask-password are acum o opțiune „--emoji” pentru a controla aspectul simbolului lacătului (🔐) în linia de introducere a parolei.
  • S-a adăugat documentație privind structura arborescentă sursă systemd.
  • Pentru unități, a fost adăugată o proprietate MemoryAvailable, care arată câtă memorie i-a rămas unitatea înainte de a atinge limita stabilită prin parametrii MemoryMax, MemoryHigh sau MemoryAvailable.

Sursa: opennet.ru

Adauga un comentariu