Pas pesë muajsh zhvillimi, u prezantua versioni i menaxherit të sistemit systemd 252 Ndryshimi kryesor në versionin e ri ishte integrimi i mbështetjes për një proces të modernizuar të nisjes, i cili ju lejon të verifikoni jo vetëm kernelin dhe ngarkuesin, por edhe komponentët. të mjedisit bazë të sistemit duke përdorur nënshkrime dixhitale.
Metoda e propozuar përfshin përdorimin e një imazhi të unifikuar të kernelit UKI (Unified Kernel Image) gjatë ngarkimit, i cili kombinon një trajtues për ngarkimin e kernelit nga UEFI (UEFI boot stub), një imazh të kernelit Linux dhe initrd, një mjedis sistemi i ngarkuar në memorie, i përdorur për inicializim para montimit të sistemit të skedarëve rrënjë. Imazhi UKI është i paketuar si një skedar i vetëm ekzekutues në formatin PE, i cili mund të ngarkohet duke përdorur ngarkues boot tradicionalë ose të thirret direkt nga firmware-i UEFI. Kur thirret nga UEFI, integriteti dhe autenticiteti jo vetëm i bërthamës, por edhe i përmbajtjes së initrd mund të verifikohet duke përdorur një nënshkrim dixhital.
PĂ«r tĂ« llogaritur parametrat e regjistrave tĂ« TPM PCR (Trusted Platform Module Platform Configuration Register) qĂ« pĂ«rdoren pĂ«r tĂ« monitoruar integritetin dhe pĂ«r tĂ« gjeneruar njĂ« nĂ«nshkrim dixhital tĂ« imazhit UKI, pĂ«rfshihet njĂ« masĂ« e re e sistemit tĂ« shĂ«rbimeve. ĂelĂ«si publik dhe informacioni shoqĂ«rues PCR i pĂ«rdorur nĂ« nĂ«nshkrim mund tĂ« futen direkt nĂ« imazhin e nisjes UKI (çelĂ«si dhe nĂ«nshkrimi ruhen nĂ« njĂ« skedar PE nĂ« fushat '.pcrsig' dhe '.pcrkey') dhe tĂ« nxirren prej tij nga jashtĂ« ose shĂ«rbimet e brendshme.
Në veçanti, shërbimet systemd-cryptenroll, systemd-cryptenroll dhe systemd-creds janë përshtatur për të përdorur këtë informacion, me të cilin mund të siguroheni që ndarjet e enkriptuara të diskut janë të lidhura me një kernel të nënshkruar në mënyrë dixhitale (në këtë rast, aksesi në ndarjen e koduar ofrohet vetëm nëse imazhi UKI ka kaluar verifikimin me nënshkrim dixhital bazuar në parametrat e vendosur në TPM).
Për më tepër, është përfshirë mjeti systemd-pcrphase, i cili ju lejon të kontrolloni lidhjen e fazave të ndryshme të nisjes me parametrat e vendosur në memorien e kriptoprocesorëve që mbështesin specifikimin TPM 2.0 (për shembull, mund ta bëni çelësin e deshifrimit të ndarjes LUKS2 të disponueshëm vetëm në imazhin e parë dhe bllokoni aksesin në të në shkarkimet e fazave të mëvonshme).
Disa ndryshime të tjera:
- Siguron që vendndodhja e parazgjedhur është C.UTF-8, përveç nëse specifikohet një vend tjetër në cilësimet.
- Tani Ă«shtĂ« e mundur tĂ« kryhet njĂ« operacion i plotĂ« i paravendosjes sĂ« shĂ«rbimit (âsystemctl paravendosjaâ) gjatĂ« nisjes sĂ« parĂ«. Aktivizimi i paracaktimit nĂ« kohĂ«n e nisjes kĂ«rkon ndĂ«rtim me opsionin "-Dfirst-boot-full-preset", por Ă«shtĂ« planifikuar tĂ« aktivizohet si parazgjedhje nĂ« publikimet e ardhshme.
- Njësitë e menaxhimit të përdoruesve përfshijnë një kontrollues të burimeve të CPU, i cili bëri të mundur që të sigurohet që cilësimet e peshës së CPU të aplikohen në të gjitha njësitë e pjesëve të përdorura për të ndarë sistemin në pjesë (app.slice, background.slice, session.slice) për të izoluar burimet ndërmjet shërbime të ndryshme përdoruesish, duke konkurruar për burimet e CPU-së. CPUWeight gjithashtu mbështet vlerën "boshe" për të aktivizuar mënyrën e duhur të sigurimit të burimeve.
- Në njësitë e përkohshme ("kalimtare") dhe në programin systemd-repart, cilësimet mbizotëruese lejohen duke krijuar skedarë lëshues në drejtorinë /etc/systemd/system/name.d/.
- Për imazhet e sistemit, vendoset flamuri me fund të mbështetjes, duke përcaktuar këtë fakt bazuar në vlerën e parametrit të ri "SUPPORT_END=" në skedarin /etc/os-release.
- U shtuan cilësimet "ConditionCredential=" dhe "AssertCredential=", të cilat mund të përdoren për të injoruar ose prishur njësitë nëse kredenciale të caktuara nuk janë të pranishme në sistem.
- U shtuan cilĂ«simet âDefaultSmackProcessLabel=â dhe âDefaultDeviceTimeoutSec=â te system.conf dhe user.conf pĂ«r tĂ« pĂ«rcaktuar nivelin e parazgjedhur tĂ« sigurisĂ« SMACK dhe kohĂ«n e aktivizimit tĂ« njĂ«sisĂ«.
- Në cilësimet "ConditionFirmware=" dhe "AssertFirmware=", është shtuar aftësia për të specifikuar fusha individuale SMBIOS, për shembull, për të nisur një njësi vetëm nëse fusha /sys/class/dmi/id/board_name përmban vlerën "Custom Bordi", mund të specifikoni "ConditionFirmware=smbios" -field(emri_board = "Parla e personalizuar")".
- Procesi i inicializimit (PID 1) tani ka aftësinë të importojë kredencialet nga fushat SMBIOS (Lloji 11, "Vargjet e shitësit OEM") përveç përcaktimit të tyre nëpërmjet qemu_fwcfg, duke e bërë më të lehtë dhënien e kredencialeve. makina virtuale dhe eliminon nevojën për mjete të palëve të treta si cloud-init dhe ndezja.
- Gjatë mbylljes, logjika për çmontimin e sistemeve të skedarëve virtualë (proc, sys) është ndryshuar dhe informacioni në lidhje me proceset që bllokojnë çmontimin e sistemeve të skedarëve ruhen në regjistër.
- Filtri i thirrjeve të sistemit (SystemCallFilter) lejon hyrjen në thirrjen e sistemit riscv_flush_icache si parazgjedhje.
- Ngarkuesi i nisjes sd-boot tani ka aftĂ«sinĂ« tĂ« nisĂ« nĂ« modalitetin e pĂ«rzier, nĂ« tĂ« cilin bĂ«rthama 64-bitĂ«she Linux Nis nga firmware UEFI 32-bit. ĂshtĂ« shtuar njĂ« veçori eksperimentale pĂ«r aplikimin automatik tĂ« çelĂ«save SecureBoot nga skedarĂ«t qĂ« gjenden nĂ« ESP (ndarja e sistemit EFI).
- Opsionet e reja janĂ« shtuar nĂ« programin bootctl: "âall-architectures" pĂ«r instalimin e binarĂ«ve pĂ«r tĂ« gjitha arkitekturat EFI tĂ« mbĂ«shtetura, "âroot=" dhe "âimage=" pĂ«r tĂ« punuar me njĂ« direktori ose imazh tĂ« diskut, "âinstall-source =â pĂ«r pĂ«rcaktimin e burimit pĂ«r instalim, "-efi-boot-option-description=" pĂ«r tĂ« kontrolluar emrat e hyrjeve tĂ« nisjes.
- Komanda 'list-automounts' është shtuar në programin systemctl për të shfaqur një listë të drejtorive të montuara automatikisht dhe opsionin "--image=" për të ekzekutuar komandat në lidhje me imazhin e diskut të specifikuar. U shtuan opsionet "--state=" dhe "--type=" në komandat "show" dhe "status".
- systemd-networkd shtoi opsionet âTCPCongestionControlAlgorithm=â pĂ«r tĂ« zgjedhur algoritmin e kontrollit tĂ« mbingarkesĂ«s TCP, âKeepFileDescriptor=â pĂ«r tĂ« ruajtur pĂ«rshkruesin e skedarĂ«ve tĂ« ndĂ«rfaqeve TUN/TAP, âNetLabel=â pĂ«r tĂ« vendosur NetLabels, âRapidCommit=â pĂ«r tĂ« pĂ«rshpejtuar konfigurimin nĂ«pĂ«rmjet DD (RFC 6). Parametri "RouteTable=" ju lejon tĂ« specifikoni emrat e tabelave tĂ« rrugĂ«timit.
- systemd-nspawn lejon përdorimin e shtigjeve relative të skedarëve në opsionet "--bind=" dhe "--overlay=". Shtoi mbështetje për parametrin 'rootidmap' në opsionin "--bind=" për të lidhur ID-në e përdoruesit rrënjë në kontejner me pronarin e drejtorisë së montuar në anën e hostit.
- systemd-resolved përdor si parazgjedhje OpenSSL si bazën e tij të enkriptimit (mbështetja e gnutls ruhet si opsion). Algoritmet e pambështetur DNSSEC tani trajtohen si të pasigurta në vend që të kthejnë një gabim (SERVFAIL).
- systemd-sysusers, systemd-tmpfiles dhe systemd-sysctl zbatojnë aftësinë për të transferuar cilësimet përmes një mekanizmi të ruajtjes së kredencialeve.
- U shtua komanda 'krahaso-versionet' në systemd-analize për të krahasuar vargjet me numrat e versioneve (të ngjashme me 'rpmdev-vercmp' dhe 'dpkg --krahaso-versione'). U shtua aftësia për të filtruar njësitë me maskë në komandën 'systemd-analize dump'.
- Kur zgjidhni një modalitet të fjetjes me shumë faza (suspend-past-hibernate), koha e kaluar në modalitetin e gatishmërisë tani zgjidhet bazuar në parashikimin e jetëgjatësisë së mbetur të baterisë. Kalimi i menjëhershëm në modalitetin e fjetjes ndodh kur mbetet më pak se 5% e ngarkimit të baterisë.
- Një modalitet i ri i daljes "-o short-delta" është shtuar në 'journalctl', duke shfaqur diferencën kohore midis mesazheve të ndryshme në regjistër.
- systemd-repart shton mbështetje për krijimin e ndarjeve me sistemin e skedarëve Squashfs dhe ndarjeve për dm-verity, duke përfshirë nënshkrimet dixhitale.
- U shtua cilësimi "StopIdleSessionSec=" në systemd-logind për t'i dhënë fund një sesioni joaktiv pas një kohe të caktuar.
- Systemd-cryptenroll ka shtuar një opsion "--unlock-key-file=" për të nxjerrë çelësin e deshifrimit nga një skedar në vend që të nxisë përdoruesin.
- Tani është e mundur të ekzekutohet programi systemd-growfs në mjedise pa udev.
- systemd-backlight ka përmirësuar mbështetjen për sistemet me karta grafike të shumta.
- Licenca për shembujt e kodeve të dhëna në dokumentacion është ndryshuar nga CC0 në MIT-0.
Ndryshimet që prishin përputhshmërinë:
- Kur kontrolloni numrin e versionit të kernelit duke përdorur direktivën ConditionKernelVersion, tani përdoret një krahasim i thjeshtë i vargjeve në operatorët '=' dhe '!=', dhe nëse operatori i krahasimit nuk është fare i specifikuar, mund të përdoret përputhja e maskës glob duke përdorur personazhet '*', '?' Dhe '[', ']'. Për të krahasuar versionet e stilit stverscmp(), përdorni operatorët '<', '>', '<=' dhe '>='.
- Etiketë SELinux, i përdorur për të kontrolluar aksesin nga një skedar njësie, tani lexohet në fazën e ngarkimit të skedarit, në vend të fazës së kontrollit të aksesit.
- Kushti "ConditionFirstBoot" aktivizohet tani në nisjen e parë të sistemit vetëm drejtpërdrejt në fazën e nisjes dhe kthen "false" kur thërret njësitë pas përfundimit të nisjes.
- Në vitin 2024, systemd planifikon të ndalojë mbështetjen e mekanizmit kufizues të burimeve cgroup v1, i cili u zhvlerësua në versionin systemd 248. Administratorët këshillohen të kujdesen paraprakisht për migrimin e shërbimeve të bazuara në cgroup v2 në cgroup v1. Dallimi kryesor midis cgroups v2 dhe v1 është përdorimi i një hierarkie të përbashkët cgroups për të gjitha llojet e burimeve, në vend të hierarkive të veçanta për shpërndarjen e burimeve të CPU, për rregullimin e konsumit të memories dhe për I/O. Hierarkitë e ndara çojnë në vështirësi në organizimin e ndërveprimit midis mbajtësve dhe në kosto shtesë të burimeve të kernelit kur zbatohen rregullat për një proces të referuar në hierarki të ndryshme.
- Në gjysmën e dytë të vitit 2023, ne planifikojmë t'i japim fund mbështetjes për hierarkitë e drejtorive të ndara, ku /usr montohet veçmas nga rrënja, ose /bin dhe /usr/bin, /lib dhe /usr/lib janë të ndara.
Burimi: opennet.ru
