Po třech a půl měsících vývoje byl vydán systémový manažer systemd 253.
Mezi změnami v novém vydání:
- Součástí je nástroj 'ukify', určený k sestavování, ověřování a generování podpisů pro unifikované obrazy jádra (UKI, Unified Kernel Image), které spojují zavaděč pro načítání jádra z UEFI (UEFI boot stub), obraz jádra Linux a do paměti nahrávané systémové prostředí initrd, používané pro počáteční inicializaci před připojením kořenového souborového systému. Nástroj nahrazuje funkčnost, kterou dříve poskytoval příkaz 'dracut --uefi', a doplňuje ji o možnosti automatického výpočtu offsetů v PE souborech, spojování initrd, podpisy integrovaných obrazů jádra, vytváření kombinovaných obrazů s sbsign, heuristikou pro určení uname jádra, kontrolou obrazu se spouštěcí obrazovkou a přidáním podepsaných PCR politik, generovaných nástrojem systemd-measure.
- Byla přidána podpora initrd prostředí, která nejsou omezena umístěním v paměti, ve kterých je místo tmpfs použito overlayfs. Pro taková prostředí systemd neprovádí odstranění všech souborů v initrd po přepnutí kořenového souborového systému.
- Do služeb byl přidán parametr 'OpenFile' pro otevření libovolných souborů v souborovém systému (nebo připojení k Unixovým socketům) a předání příslušných deskriptorů souborů spouštěnému procesu (například když je třeba zajistit přístup k souboru pro nepř privileged service bez změny přístupových práv k souboru).
- V systemd-cryptenroll byla při registraci nových klíčů implementována možnost odemykání šifrovaných oddílů pomocí tokenů FIDO2 (--unlock-fido2-device) bez nutnosti zadání hesla. Zajištěno uložení zadaného uživatelského PIN kódu s solí pro ztížení jeho zjištění metodou hrubé síly.
- Byly přidány nastavení ReloadLimitIntervalSec a ReloadLimitBurst, stejně jako parametry příkazového řádku jádra (systemd.reload_limit_interval_sec a /systemd.reload_limit_burst) pro omezení intenzity restartování na pozadí.
- Pro jednotky byla implementována možnost 'MemoryZSwapMax' pro nastavení vlastnosti memory.zswap.max, určující maximální velikost zswap.
- Pro jednotky byla implementována možnost 'LogFilterPatterns', která umožňuje definovat regulární výrazy pro filtrování informací, které se zapisují do logu (může být použita k vyloučení určitého výstupu nebo k uchování pouze určitých dat).
- V scope jednotkách byla implementována podpora pro nastavení „OOMPolicy“ pro určení chování při pokusu o uvolnění paměti (pro iniciační relace je nastavena hodnota OOMPolicy=continue, aby je OOM killer nuceně nezavřel).
- Byl definován nový typ služeb — „Type=notify-reload“, který rozšiřuje typ „Type=notify“ o možnost čekání na dokončení zpracování signálu k restartu (SIGHUP). Na nový typ byly převedeny služby systemd-networkd.service, systemd-udevd.service a systemd-logind.
- V udev byla zavedena nová schéma pojmenování síťových zařízení, jejíž rozdíl spočívá v tom, že pro nepřipojená zařízení USB, která nejsou vázána na sběrnici PCI, se nyní nastavuje ID_NET_NAME_PATH pro zajištění větší předvídatelnosti názvů. Pro proměnné SYMLINK byl implementován operator '=-', který ponechává symbolické odkazy nenastavené, pokud byla dříve definována pravidla pro jejich přidání.
- V systemd-boot byla přepracována předání úvodního kódu pro generátory pseudonáhodných čísel v jádru a pro diskový backend. Byla přidána podpora pro načítání jádra nejen z oddílu ESP (EFI System Partition), například z firmwaru nebo přímo pro QEMU. Bylo zajištěno zpracování parametrů SMBIOS pro určení spuštění v prostředí virtualizace. Byl zaveden nový režim 'if-safe', ve kterém je certifikát pro UEFI Secure Boot načítán z ESP pouze tehdy, pokud je považován za bezpečný (spouští se v virtuálním stroji).
- V utilitě bootctl byla implementována generace systémových tokenů na všech systémech EFI kromě virtualizovaných prostředí. Byly přidány příkazy 'kernel-identify' a 'kernel-inspect' pro zobrazení typu obrazu jádra a informací o možnostech příkazového řádku a verzi jádra, 'unlink' pro odstranění souboru spojeného s prvním typem zaváděcích záznamů, 'cleanup' pro odstranění všech souborů z adresáře 'entry-token' v ESP a XBOOTLDR, které nejsou spojeny s prvním typem zaváděcích záznamů. Bylo zajištěno zpracování proměnné KERNEL_INSTALL_CONF_ROOT.
- V příkazu 'systemctl list-dependencies' byla zajištěna podpora pro volby „—type“ a „—state“, a v příkazu 'systemctl kexec' byla přidána podpora pro prostředí založená na hypervizoru Xen.
- V souborech .network v sekci [DHCPv4] byla přidána podpora pro možnosti SocketPriority a QuickAck, RouteMetric=high|medium|low.
- V systemd-repart byly přidány možnosti „—include-partitions“, „—exclude-partitions“ a „—defer-partitions“ pro filtrování oddílů podle typu UUID, což například umožňuje vytvářet obrazy, kde je jeden oddíl postaven na základě obsahu jiného oddílu. Byla také přidána možnost „—sector-size“ pro určení velikosti sektoru používaného při vytváření oddílu. Přidána podpora generování souborového systému erofs. V nastavení Minimize byla implementována obsluha hodnoty „best“ pro výběr minimální možné velikosti obrazu.
- V systemd-journal-remote bylo povoleno použití nastavení MaxUse, KeepFree, MaxFileSize a MaxFiles pro omezení spotřeby diskového prostoru.
- V systemd-cryptsetup byla přidána podpora pro zasílání předběžných požadavků k tokenům FIDO2 pro určení jejich přítomnosti před autentizací.
- V crypttab byly přidány nové parametry tpm2-measure-bank a tpm2-measure-pcr.
- V systemd-gpt-auto-generator byla implementována montáž oddílů ESP a XBOOTLDR v režimech „noexec,nosuid,nodev“, a také byla přidána podpora předávaných parametrů jádra rootfstype a rootflags přes příkazový řádek.
- V systemd-resolved byla poskytnuta možnost konfigurace parametrů resolvéra prostřednictvím zadání možností nameserver, domain, network.dns a network.search_domains v příkazovém řádku jádra.
- V příkazu „systemd-analyze plot“ se objevila možnost výstupu ve formátu JSON po zadání příznaku „—json“. Pro řízení výstupu byly také přidány nové možnosti „—table“ a „—no-legend“.
- V roce 2023 se plánuje ukončení podpory cgroups v1 a oddělených hierarchií adresářů (kdy je /usr montováno odděleně od kořenového adresáře nebo jsou odděleny adresáře /bin a /usr/bin, /lib a /usr/lib).
Zdroj: opennet.ru
