Pärast kahe kuu arendust on välja antud süsteemihalduri systemd 242 versioon. Uute võimaluste hulka kuuluvad L2TP tunnelite tugi, võimalus hallata systemd-logind käitumist taaskäivitamise korral keskkonnamuutujate kaudu, laiendatud XBOOTLDR partitsioonide tugi /boot puhul, võimalus käivitada juurepartitsioon overlayfs-is ning suur hulk uusi seadistusi erinevat tüüpi ühikute jaoks.
Peamised muudatused:
- systemd-networkd-s on tagatud L2TP tunnelite tugi;
- sd-boot ja bootctl toetavad nüüd XBOOTLDR (laiendatud käivitaja) partitsioone, mis on mõeldud /boot-sse monteerimiseks, lisaks ESP partitsioonidele, mis on monteeritud /efi või /boot/efi. Kernelit, seadeid, initrd pilte ja EFI-d saab nüüd laadida nii ESP kui ka XBOOTLDR partitsioonidelt. Antud muudatus võimaldab sd-booti käivitajat kasutada konservatiivsemates stsenaariumites, kus ise laadija asub ESP-s, samas kui laaditavad kernelid ja nende metaandmed on eraldi partitsioonidel;
- Lisatud on võimalus käivitada, edastades kernelile valiku «systemd.volatile=overlay», mis võimaldab juurepartitsiooni paigutada overlayfs-i ja korraldada töö lugemiseks ainult olevas juurkaustas, salvestades muudatused eraldi kausta tmpfs-is (sellises konfiguratsioonis kaovad muudatused pärast taaskäivitamist). Sarnaselt on systemd-nspawn lisatud valik «—volatile=overlay», et kasutada sarnast funktsionaalsust konteinerites;
- systemd-nspawnis on lisatud valik «—oci-bundle», mis võimaldab kasutada runtime komplekte isoleeritud konteinerite käivitamiseks, mis vastavad Open Container Initiative (OCI) spetsifikatsiooni nõuetele. Käskluste ja nspawn ühikute kasutamiseks on pakutud tuge erinevatele valikutele, mis on kirjeldatud OCI spetsifikatsioonis, näiteks faili süsteemi osade välistamiseks võidakse kasutada seadeid «—inaccessible» ja «Inaccessible», ning standardsete väljundvoogude seadistamiseks on lisatud valikud «—console» ja «—pipe»;
- Lisatud on võimalus hallata systemd-logind käitumist keskkonnamuutujate kaudu: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
$SYSTEMD_REBOOT_ TO_BOOT_LOADER_MENU ja
$SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. Nende muutujate abil on võimalik siduda oma taaskäivitamise protsessi töötlejad (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu ja
/run/systemd/reboot-to-boot-loader-entry) или вообще отключить их (при выставлении значения в false); - Käsku «systemctl reboot» on lisatud valikud «—boot-load-menu=» ja
«—boot-loader-entry=», mis võimaldab pärast taaskäivitamist valida konkreetsete käivitamisvalikute või käivitamisrežiimi; - Lisatud uus sandbox-erialdise käsk «RestrictSUIDSGID=», mis kasutab seccomp'i, et keelata SUID/SGID-flaggidega failide loomine;
- Kohandatud piirangute «NoNewPrivileges» ja «RestrictSUIDSGID» kohaldamine on vaikimisi tagatud teenustes, kus on lubatud dünaamilise kasutaja ID genereerimise režiim («DynamicUser»);
- Vaikimisi .link-failides rakendatav seade MACAddressPolicy=persistent on muudetud, et hõlmata suuremat arvu seadmeid. Võrgusildade, tunnelite (tun, tap) ja koondatud linkide (bond) liidesed ei identifitseeri end muul viisil kui võrgu liidese nime kaudu, seega kasutatakse nüüd seda nime MAC- ja IPv4-aadresside sidumisel. Lisaks on lisatud seade «MACAddressPolicy=random», mida saab kasutada MAC- ja IPv4-aadresside juhuslikuks sidumiseks seadmetega;
- Systemd-fstab-generator’i kaudu genereeritud unit-failid «.device» ei hõlma enam vastavaid «.mount» unit-failide sõltuvusi sektsioonis «Wants=». Lihtne seadme ühendamine ei too enam kaasa automaatset mount-ühiku käivitamist, kuid sarnased unit-failid saavad siiski mingitel põhjustel käivituda, näiteks osana local-fs.target'ist või sõltuvusena teistelt unit-failidelt, mis on sõltuvad local-fs.target'ist;
- Käskudes «networkctl list/status/lldp» on lisatud toetus maskidele («*» jms), et filtreerida teatud võrgu liideste gruppe nende nime alusel;
- Keskkonnamuutuja $PIDFILE määratakse nüüd absoluutse teega, mis on seadistatud teenustes parameetriga «PIDFile=;
- Kui peamine DNS ei ole kindlaks määratud, on lisatud avalikud varurekursion DNS-serverid; serverid Cloudflare (1.1.1.1). Varurekursion DNS-serverite loendi asendamiseks võib kasutada valikut «-Ddns-servers=»;
- USB-seade (USB Device Controller) tuvastamisel tagatakse uue käsitleja usb-gadget.target automaatne käivitamine (kui süsteem töötab USB-perifeerseadmel);
- Unit-failide jaoks on rakendatud seade «CPUQuotaPeriodSec=», mis määrab ajavahemiku, mille suhtes mõõdetakse protsessoraja kvooti, mis on määratud seadega «CPUQuota=»;
- Unit-failide jaoks on rakendatud seade «ProtectHostname=», mis keelab teenustel hostinime teavet muuta, isegi kui neil on vastavad õigused;
- Unit-failide jaoks on rakendatud seade «NetworkNamespacePath=», mis võimaldab siduda nimede ruumi teenustega või socket-unitidega, määrates nimede ruumi faili tee pseudo-FS-s /proc;
- Lisatud on võimalus keelata keskkonnamuutujate asendamine protsessides, mida käivitatakse seade «ExecStart=» kaudu, lisades käivituskäsku eelnevalt sümbol «:»;
- Ajastite (unit.d .timer) jaoks on ette nähtud uued lipud «OnClockChange=» ja
«OnTimezoneChange=», mille abil saab hallata unit'i käivitamist süsteemi aja või ajavööndi muutumisel; - Lisatud on uued seaded «ConditionMemory=» ja «ConditionCPUs=», mis määratlevad unit'i käivitamise tingimused vastavalt mälu suurusele ja CPU tuumade arvule (näiteks ressursinõudlikku teenust saab käivitada ainult siis, kui on vajalik maht RAM-i);
- Lisatud on uus unit time-set.target, mis võtab vastu lokaalselt seadistatud süsteemiaja, ilma et oleks vaja syncroniseerida väliste täpsusajaseente kaudu unit'iga time-sync.target. Uut unit'it saavad kasutada teenused, mis vajavad vaid süsteemi mitte-syncroniseeritud kella täpsust;
- Käskudele «systemctl start» ja sarnastele on lisatud valik «—show-transaction», mille abil kuvatakse kokkuvõte kõigist töödest, mis on lisatud järjekorda taotletud operatsiooni tõttu;
- Systemd-networkd-s on rakendatud uus olek ‘enslaved’, mida kasutatakse ‘degraded’ või ‘carrier’ asemel võrguliideste jaoks, mis on osa agrgeeritud linkidest või võrgusildadest. Peamistele liidetele on probleemide korral lisatud olek ‘degraded-carrier’ ühe koostisosade lingiga;
- Unit'itele .network on lisatud valik «IgnoreCarrierLoss=», et säilitada võrgu seadeid side katkemise korral;
- Seadmisega «RequiredForOnline=» unit'ites .network saab nüüd määrata minimaalset lubatud linkide olekut, mis on vajalik võrgu liidese viimiseks «online» ja systemd-networkd-wait-online töötleja käivitamiseks;
- Systemd-networkd-wait-online-s on lisatud valik «—any» ootama ükskõik millise määratud võrgu liidese valmisolekut kõigi asemel ning valik «—operational-state=», et määrata lingi olek, mis näitab valmisolekut;
- Network units have added settings «UseAutonomousPrefix=» and «UseOnLinkPrefix=», which can be used to ignore prefixes when obtaining
announcements from the IPv6 router (RA, Router Advertisement); - Network units have added settings «MulticastFlood=», «NeighborSuppression=», and «Learning=» to modify the operational parameters of the network bridge, as well as the setting «TripleSampling=» to change the TRIPLE-SAMPLING mode of virtual CAN interfaces;
- In .netdev units, the settings «PrivateKeyFile=» and «PresharedKeyFile=» have been added, allowing the specification of private and shared (PSK) keys for WireGuard interfaces. VPN;
- In /etc/crypttab, options same-cpu-crypt and submit-from-crypt-cpus have been added, controlling the behavior of the scheduler during migration between CPU cores for jobs related to encryption;
- In systemd-tmpfiles, a lock file is processed before performing operations in directories with temporary files, allowing the disabling of cleanup operations on outdated files temporarily (for example, when unpacking a tar archive in /tmp, very old files may be exposed that cannot be deleted until the actions on them are completed);
- In the command «systemd-analyze cat-config», the ability to analyze configurations spread across multiple files has been provided, such as user and system pre-settings, contents of tmpfiles.d and sysusers.d, udev rules, etc.;
- In «journalctl», the option «—cursor-file=» has been added to specify the file for loading and saving the position pointer;
- In systemd-detect-virt, the detection of the ACRN hypervisor and the WSL (Windows Subsystem for Linux) subsystem has been added for subsequent branching using the conditional operator «ConditionVirtualization»;
- During the installation of systemd (when executing «ninja install»), the creation of symbolic links in the /etc directory to the files systemd-networkd.service, systemd-networkd.socket,
systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
systemd-networkd-wait-online.service, and systemd-timesyncd.service has been discontinued. To create these files, the command «systemctl preset-all» must now be executed.
Allikas: opennet.ru
