Po šesti měsících vývoje bylo představeno vydání správce systému systemd 257 Klíčové změny: nové nástroje systemd-sbsign a systemd-keyutil, podpora MPTCP při aktivaci přes soket, počáteční podpora pro vytváření s knihovnou Musl C, the. updatectl utilita pro správu instalace aktualizací přes systemd-sysupdate, možnost spouštět služby v samostatných jmenných prostorech PID, ochrana proti náhodnému smazání souborů při použití „systemd-tmpfiles —purge“.
Mezi změny v nové verzi:
- Добавлена новая утилита systemd-sbsign для заверения цифровой подписью исполняемых файлов в формате PE (Portable Executable), предназначенных для использования при загрузке в режиме EFI Secure Boot. Для формирования подписи могут использоваться движки и провайдеры, предоставляемые библиотекой OpenSSL. Systemd-sbsign может применяться в качестве альтернативы приложениям sbsigntool и pesign в утилите ukify при формировании универсальных образов ядра UKI (Unified Kernel Image), объединяющих в одном файле загрузчик для UEFI (UEFI boot stub), образ ядра Linux a systémové prostředí initrd načtené do paměti.
- Byl přidán nový nástroj systemd-keyutil, který implementuje různé operace se soukromými klíči a certifikáty X.509. Například systemd-keyutil lze použít k testování schopnosti načíst soukromé klíče a certifikáty a extrahovat z nich veřejné klíče ve formátu PEM.
- V jednotkách „.socket“ sloužících k zajištění fungování mechanismu aktivace socketů (spouštění procesů při pokusu o navázání síťového připojení) je implementována podpora pro MPTCP (Multipath TCP), rozšíření protokolu TCP pro organizaci provozu TCP spojení s doručováním paketů současně po několika trasách přes různá síťová rozhraní vázaná na různé IP adresy.
- Zahrnuje změny nutné k sestavení pomocí standardní knihovny Musl C.
- В различные компоненты systemd, выводящие индикаторы прогресса выполнения операций (например, systemd-repart, systemd-sysupdate/updatectl и importctl), добавлена возможность использования ANSI-последовательностей для анимирования отображения прогресса. Подобные последовательности пока поддерживаются только в Windows Terminal (предполагается, что со временем подобная возможность будет перенесена и в эмуляторы терминалов для Linux).
- Byly rozšířeny možnosti komponenty systemd-sysupdate, která slouží k automatické detekci, stahování a instalaci aktualizací pomocí atomického mechanismu pro nahrazování diskových oddílů, souborů nebo adresářů (používají se dva nezávislé diskové oddíly/soubory/adresáře, z nichž jeden obsahuje aktuální pracovní zdroj a druhý nainstaluje další aktualizaci, po které se sekce/soubory/adresáře vymění). V praxi se systemd-sysupdate již používá v OS GNOME.
Kromě procesu systemd-sysupdate byla přidána stejnojmenná služba, která umožňuje použití D-Bus ke správě aktualizací systému neprivilegovaným uživatelem. Pro správu služby je zahrnuta také nová utilita updatectl. Do systemd-sysupdate byl přidán příznak „--offline“, který zakazuje stahování metadat přes síť a používá pouze verze již stažené do místního systému. Přidána podpora výstupu ve formátu JSON pro všechny příkazy.
- Pro služby byla implementována nová vlastnost „PrivatePIDs“, pomocí které můžete organizovat spouštění procesů s PID 1 (init proces) v samostatném prostoru identifikátorů procesu (jmenný prostor PID). V prostředí vytvořeném pro spuštěný proces budou viditelné pouze procesy z pro něj vytvořeného jmenného prostoru.
- Přidána podpora pro shody bez rozlišení malých a velkých písmen do pravidel udev (např. 'ATTR{foo}==i»abcd»'). Pomocí udev je možné poskytnout neprivilegovaným lokálním uživatelům přístup („uaccess“) k zařízení /dev/udmabuf, který je nezbytný pro práci s IPMI kamerami přes libcamera. udev poskytuje rozpoznání různých hardwarových kryptopeněženek s rozhraním USB a nastavení vlastnosti ID_HARDWARE_WALLET pro ně, což vám umožňuje použít na ně režim „uaccess“ pro přístup neprivilegovaným uživatelům.
- Do souboru /etc/os-release byla přidána nová pole RELEASE_TYPE, EXPERIMENT a EXPERIMENT_URL. "RELEASE_TYPE" může nabývat hodnot "experimental", "development", "stable" a "lts" k oddělení stabilních verzí od vývojových a experimentálních sestavení. Parametry EXPERIMENT a EXPERIMENT_URL mají vysvětlit podstatu experimentálního sestavení.
- Obslužný program run0, vyvinutý jako náhrada za program sudo, přidal možnost „--shell-prompt-prefix“, která určuje řetězec předpony pro příkazový řádek shellu. Ve výchozím nastavení se emotikon „🦸“ zobrazuje jako předpona pro vizuální zvýraznění zvýšené relace.
- Aby se zabránilo náhodnému smazání nesprávných souborů, v systemd-tmpfiles se nyní volba "--purge" vztahuje pouze na nastavení v tmpfiles.d/, která mají explicitně nastaven příznak "$". Operace "--purge" nyní také vyžaduje zadání alespoň jednoho souboru z adresáře tmpfiles.d/. Pro řetězce s typem 'L' byl přidán příznak '?', pokud je zadán, symbolický odkaz se vytvoří pouze v případě, že cílový soubor existuje.
- Ve správci služeb a souvisejících obslužných programech se kód sledování procesu nadále převádí tak, aby místo PID používal PIDFD. PIDFD je spojeno s konkrétním procesem a nemění se, zatímco PID může být spojeno s jiným procesem poté, co aktuální proces spojený s tímto PID skončí.
- Pro služby je nyní možné zadat hodnotu „debug“ v parametru „RestartMode“, ve které bude neúspěšná služba restartována s povoleným režimem ladění (je nastavena proměnná prostředí DEBUG_INVOCATION=1) a hodnota LogLevelMax bude dočasně zvýšena na úroveň ladění.
- Obslužná rutina PID 1 má možnost načíst pravidla pro modul IPE (Integrity Policy Enforcement) LSM, která definují politiku integrity pro celý systém (které operace jsou povoleny a jak má být ověřena pravost komponent).
- Do souborů jednotek „.timer“ byla přidána možnost „DeferReactivation“, která umožňuje přeskočit další aktivaci časovače, pokud služba od poslední aktivace ještě neskončila.
- V parametru souboru jednotek PrivateUsers je nyní možné zadat hodnotu „identity“, která umožní mapování ID uživatelů při vytváření prostoru jmen uživatelů.
- Přidána podpora pro hodnotu „disconnected“ do parametru souboru jednotky PrivateTmp, který bude používat samostatné instance tmpfs pro adresáře /tmp/ a /var/tmp/.
- Do parametru souboru jednotek ProtectControlGroups byla přidána podpora pro nové „soukromé“ a „přísné“ režimy, po nastavení se pro službu vytvoří nový jmenný prostor cgroup a připojí se cgroupfs. Když je nastavena možnost "strict", cgroupfs je připojen v režimu pouze pro čtení.
- Parametry StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory a ConfigurationDirectory poskytují možnost používat příznak ':ro' k omezení přístupu k odpovídajícím adresářům na režim pouze pro čtení.
- Přidána podpora hodnoty „firmware“ do parametru příkazového řádku jádra „systemd.machine_id“, ve kterém bude systémový identifikátor (ID stroje) vypočítán na základě UUID ze SMBIOS/DeviceTree.
- Добавлена поддержка системных вызовов mseal(), listmount() и statmount(), появившихся в недавних выпусках ядра Linux.
- Nástroje resolvectl, timedatectl a systemd-inhibit nyní podporují interaktivní autorizaci pomocí Polkit.
- Obslužný program systemctl přidal možnost používat příznak "--now" v příkazu "reenable".
- Do obslužného programu systemd-mount byla přidána možnost „--json“ pro výstup ve formátu JSON (pokud je například zadán společně s „--list-devices“, bude výstupem seznamu zařízení ve formátu JSON).
- Do obslužného programu "localectl" byly přidány volby "-l" a "--full" pro zakázání ořezávání dlouhých řádků během výstupu.
- Do sleep.conf byla přidána možnost HibernateOnACPower, která umožňuje odložit přechod do režimu spánku, dokud nebude zařízení odpojeno od stacionárního zdroje napájení.
- V systemd-sysusers byla do řádků „u“ přidána podpora pro modifikátor „!“, pomocí kterého můžete vytvářet zcela uzamčené uživatelské účty (dříve se k blokování uživatele používalo nastavení nesprávného hesla, které např. nevedlo k zablokování během ověřování klíče v SSH).
- Systemd-coredump přidává možnost "EnterNamespace", která umožňuje přístup k prostoru přípojných bodů všech havarovaných procesů a získání jejich ladicích symbolů. V praxi může být tato možnost užitečná pro organizaci backtrace souborů jádra z aplikací běžících v izolovaných kontejnerech.
- systemd-logind zahrnuje zpracování kombinace Ctrl-Alt-Shift-Esc pro odeslání signálu org.freedesktop.login1.SecureAttentionKey komponentám uživatelského prostředí s požadavkem na zobrazení dialogového okna pro bezpečné přihlášení. Implementováno nastavení „DesignatedMaintenanceTime“, které automaticky naplánuje dokončení práce v určený čas. Analogicky s podporou zařízení DRM a evdev byla přidána podpora pro konfiguraci přístupu pro neprivilegované uživatele k zařízením hidraw (herní ovladače a joysticky).
- systemd-machined nyní podporuje přihlášení neprivilegovaných klientů. virtuální stroje a kontejnery. Přístup k funkcím obráběným v systemd je poskytován prostřednictvím rozhraní Varlink API, kromě D-Bus.
- Do konfiguračního souboru networkd.conf byla přidána nová sekce „[IPv6AddressLabel]“ pro konfiguraci štítků a předpon pro adresy IPv6.
- Přidána možnost "--stdin" do příkazu 'networkctl edit' pro získání obsahu souboru ze standardního streamu. Přidána podpora pro úpravy a zobrazování souborů .netdev zadáním síťového rozhraní pro příkazy 'networkctl edit' a 'networkctl cat'. Přidána možnost "--no-ask-password" pro zakázání interaktivní autorizace.
- Do nástrojů ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart a systemd-sbsign byla přidána možnost „--certificate-source“ pro načtení certifikátu X.509 prostřednictvím poskytovatele OpenSSL namísto přímého načítání z soubor.
- systemd-boot přidává možnost používat tlačítka hlasitosti k pohybu nahoru a dolů v zaváděcí nabídce, což může být užitečné na zařízeních, jako jsou smartphony. Do nástroje bootctl byla přidána podpora pro instalaci databáze UEFI Secure Boot ve formátu ESL(db/dbx/…) pro systemd-boot.
- Do journalctl byla přidána volba „--list-invocation“ pro zobrazení seznamu volání jednotek a volba „--invocation“ („-I“) pro zobrazení protokolů spojených pouze s konkrétním voláním.
- systemd-nspawn přidává podporu pro neprivilegované použití FUSE (systém souborů v uživatelském prostoru) v kontejnerech. Při použití možnosti „--bind-user“ jsou klíče SSH uživatele potřebné pro přístup přes SSH předány do kontejneru.
- libsystemd přidal nové programovací rozhraní „sd-json“, které používá formát JSON, a také rozhraní „sd-varlink“, které používá IPC Varlink.
- Doporučená základní verze jádra byla upgradována na verzi 5.4, která vznikla v roce 2019. Příští rok plánují přestat podporovat starší jádra a označit vydání 5.4 jako minimální podporovanou základní verzi.
- Podpora pro cgroups v1 byla zastaralá a ve výchozím nastavení je zakázána (abyste ji povolili, musíte kromě povolení v nastavení systemd zadat SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 na příkazovém řádku jádra). Příští vydání systemd 258 plánuje úplné odstranění kódu souvisejícího s cgroups v1. Systemd verze 258 má také odstranit podporu pro servisní skripty System V.
Zdroj: opennet.ru
