Vydání systémového správce systemd 257

Po půl roce vývoje byl uveden na trh systémový správce systemd 257. Klíčové změny: nové nástroje systemd-sbsign a systemd-keyutil, podpora MPTCP při aktivaci přes socket, počáteční podpora kompilace s knihovnou C Musl, nástroj updatectl pro správu instalace aktualizací prostřednictvím systemd-sysupdate, možnost spouštění služeb v odděleném PID namespace, ochrana proti náhodnému smazání souborů při použití 'systemd-tmpfiles --purge'.

Mezi změnami v novém vydání:

  • Byl přidán nový nástroj systemd-sbsign pro podepisování spustitelných souborů ve formátu PE (Portable Executable), určených pro použití při spuštění v režimu EFI Secure Boot. Pro vytváření podpisu mohou být použity enginy a poskytovatelé poskytovaní knihovnou OpenSSL. Systemd-sbsign může být používán jako alternativa aplikací sbsigntool a pesign v nástroji ukify při vytváření univerzálních obrazů jádra UKI (Unified Kernel Image), které kombinují v jednom souboru načítací program pro UEFI (UEFI boot stub), obraz jádra Linux a do paměti zaváděné systémové prostředí initrd.
  • Byl přidán nový nástroj systemd-keyutil, který implementuje různé operace nad privátními klíči a certifikáty X.509. Například, systemd-keyutil může být použit pro ověření možnosti načítání privátních klíčů a certifikátů, stejně jako pro extrakci z nich veřejných klíčů ve formátu PEM.
  • V unit-ích '.socket', používaných pro zajištění činnosti mechanismu aktivace pomocí socketu (spuštění procesů při pokusu o navázání síťového spojení), byla implementována podpora MPTCP (Multipath TCP), rozšíření protokolu TCP pro organizaci práce TCP spojení s doručováním paketů současně přes několik tras prostřednictvím různých síťových rozhraní, spojených s různými IP adresy.
  • Do součásti byly zahrnuty změny potřebné pro kompilaci pomocí standardní C knihovny Musl.
  • Do různých komponent systemd, které zobrazují ukazatele pokroku při provádění operací (například systemd-repart, systemd-sysupdate/updatectl a importctl), byla přidána možnost použití ANSI sekvencí pro animaci zobrazování pokroku. Tyto sekvence zatím podporují pouze Windows Terminal (předpokládá se, že časem bude tato funkce přenesena i do terminálových emulátorů pro Linux).
  • Byly rozšířeny možnosti komponentu systemd-sysupdate, který se používá k automatickému zjišťování, stahování a instalaci aktualizací pomocí atomárního mechanismu výměny oddílů, souborů nebo adresářů (používají se dva nezávislé oddíly/soubory/adresáře, z nichž jeden obsahuje aktuálně běžící prostředek, zatímco na druhém se instaluje další aktualizace, po níž se oddíly/soubory/adresáře vymění). V praxi se systemd-sysupdate již používá v GNOME OS.

    K procesu systemd-sysupdate byl přidán stejně pojmenovaný servis, který umožňuje využívat D-Bus pro správu aktualizace systému s omezenými právy uživatele. Pro správu servisu byla také zahrnuta nová utilita updatectl. Do systemd-sysupdate byl přidán příznak „—offline“, který zakazuje stahování metadat z internetu a používá pouze již stažené verze v lokálním systému. Pro všechny příkazy byla přidána podpora výstupu ve formátu JSON.

  • Pro služby bylo implementováno nové vlastnost „PrivatePIDs“, pomocí nějž je možné uspořádat spuštění procesů s PID 1 (init proces) v samostatném prostoru identifikátorů procesů (PID namespace). V prostředí vytvářeném pro spouštěný proces budou viditelné pouze procesy z vytvořeného prostoru jmen.
  • Pravidlům udev byla přidána podpora porovnání bez ohledu na velikost písmen (například „ATTR{foo}=="abcd"“). Skrze udev je umožněn přístup nepovoleným lokálním uživatelům k zařízení /dev/udmabuf, které je nezbytné pro práci s IPMI kamerami pomocí libcamera. V udev byla zajištěna identifikace různých hardwarových kryptoměnových peněženek s USB rozhraním a byla pro ně nastavena vlastnost ID_HARDWARE_WALLET, což umožňuje aplikaci režimu „uaccess“ pro přístup nepovolených uživatelů.
  • Do souboru /etc/os-release byla přidána nová pole RELEASE_TYPE, EXPERIMENT a EXPERIMENT_URL. „RELEASE_TYPE“ může mít hodnoty „experimental“, „development“, „stable“ a „lts“ pro oddělení stabilních verzí od verzí, které jsou ve vývoji a experimentálních sestav. Parametry EXPERIMENT a EXPERIMENT_URL slouží k vysvětlení podstaty experimentální sestavy.
  • Do utilitě run0, vyvinuté jako náhrada programu sudo, byla přidána volba „—shell-prompt-prefix“, která určuje řetězec předpony výzvy příkazového shellu. Ve výchozím nastavení se jako předpona zobrazuje emoji „🦸“ pro vizuální zvýraznění relace s vyššími oprávněními.
  • Ve systemd-tmpfiles, aby se předešlo omylu při odstraňování nesprávných souborů, se volba „—purge“ nyní aplikuje pouze na konfigurace v tmpfiles.d/, které mají explicitně nastavenou značku „$“. Pro provedení operace „—purge“ také nyní vyžaduje uvedení alespoň jednoho souboru z adresáře tmpfiles.d/. Pro řádky typu ‘L’ byl přidán příznak ‘?’, při jehož zadání bude symbolický odkaz vytvořen pouze při existenci cílového souboru.
  • Ve správci služeb a souvisejících utilitách pokračuje překlad sledování procesů na používání PIDFD místo PID. Identifikátor PIDFD je svázán s konkrétním procesem a nemění se, zatímco PID může být přidělen jinému procesu po ukončení aktuálního procesu spojeného s tímto PID.
  • Pro služby byla implementována možnost nastavení hodnoty „debug“ v parametru „RestartMode“, při které bude restart selhávající služby proveden se zapnutým režimem ladění (nastaví se proměnná prostředí DEBUG_INVOCATION=1), a hodnota LogLevelMax bude dočasně zvýšena na úroveň ladění.
  • V handleru PID 1 byla implementována možnost načítání pravidel pro modul LSM IPE (Integrity Policy Enforcement), která určuje politiku zajištění integrity pro celý systém (jaké operace jsou povoleny a jakým způsobem by měly být ověřovány pravosti komponent).
  • Do unit souborů „.timer“ byla přidána možnost „DeferReactivation“, která umožňuje vynechat další aktivaci podle časovače, pokud služba ještě nedokončila svůj běh od poslední aktivace.
  • V parametru unit souborů PrivateUsers byla implementována možnost uvedení hodnoty „identity“ pro zahrnutí mapování identifikátorů uživatelů při vytváření prostoru názvů (user namespace).
  • Do parametru unit souborů PrivateTmp byla přidána podpora hodnoty „disconnected“, při které budou pro adresáře /tmp/ a /var/tmp/ používány samostatné instance tmpfs.
  • Do parametru unit-failů ProtectControlGroups byla přidána podpora nových režimů „private“ a „strict“, při jejichž nastavení se pro službu vytvoří nový prostor jmen cgroup (cgroup namespace) a namontuje se cgroupfs. Při nastavení volby „strict“ se cgroupfs montuje v režimu pouze pro čtení.
  • V parametrech StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory a ConfigurationDirectory byla přidána možnost použití příznaku ':ro' pro omezení přístupu k odpovídajícím adresářům v režimu pouze pro čtení.
  • Do parametru příkazové řádky jádra „systemd.machine_id“ byla přidána podpora hodnoty „firmware“, při které bude identifikátor systému (machine ID) vypočítán na základě UUID z SMBIOS/DeviceTree.
  • Byla přidána podpora systémových volání mseal(), listmount() a statmount(), které se objevily v nedávných verzích jádra Linux.
  • Do utilit resolvectl, timedatectl a systemd-inhibit byla přidána podpora interaktivní autorizace pomocí Polkit.
  • Do utility systemctl byla přidána možnost použití příznaku „—now“ v příkazu „reenable“.
  • Do utility systemd-mount byla přidána volba „—json“ pro výstup ve formátu JSON (například při uvedení spolu s „—list-devices“ bude ve formátu JSON vypsán seznam zařízení).
  • Do utility „localectl“ byly přidány volby „-l“ a „—full“ pro vypnutí ořezávání dlouhých řádků při výstupu.
  • Do souboru sleep.conf byla přidána volba HibernateOnACPower, která umožňuje odložit přepnutí do spánkového režimu do doby, než se zařízení odpojí od stacionárního zdroje napájení.
  • Do systemd-sysusers bylo do řetězců „u“ přidáno podporu modifikátoru „!“, kterým lze vytvářet zcela zablokované uživatelské účty (dříve se k blokaci uživatele používala nastavování neplatného hesla, což např. nevedlo k blokaci při autentizaci pomocí klíčů v SSH).
  • Do systemd-coredump byla přidána volba „EnterNamespace“, která poskytuje přístup k prostoru bodů připojení jakýchkoli havarovaných procesů pro získání jejich ladicích symbolů. V praxi může být volba užitečná pro organizaci zpětného trasování (backtrace) core souborů od aplikací běžících v izolovaných kontejnerech.
  • V systemd-logind byla aktivována zpracování kombinace Ctrl-Alt-Shift-Esc pro odeslání signálu org.freedesktop.login1.SecureAttentionKey komponentám uživatelského prostředí s žádostí o zobrazení dialogu pro bezpečné přihlášení. Byla implementována nastavení „DesignatedMaintenanceTime“ pro automatické plánování vypnutí v určený čas. Analogicky k podpoře zařízení DRM a evdev byla přidána podpora nastavení přístupu pro neprivilegované uživatele k zařízením hidraw (herní ovladače a joystick).
  • V systemd-machined byla přidána podpora registrace neprivilegovanými klienty virtuálních strojů a kontejnery. Byla poskytnuta funkcionalita systemd-machined prostřednictvím API Varlink, kromě D-Bus.
  • Do konfiguračního souboru networkd.conf byla přidána nová sekce „[IPv6AddressLabel]“ pro nastavení štítků a prefixů pro adresy IPv6.
  • Do příkazu ‘networkctl edit’ byla přidána volba „—stdin“ pro získání obsahu souboru ze standardního vstupu. Do příkazů ‘networkctl edit’ a ‘networkctl cat’ byla přidána podpora pro úpravu a zobrazení souborů .netdev prostřednictvím určení síťového rozhraní. Byla přidána volba „—no-ask-password“ pro deaktivaci interaktivní autorizace.
  • Do utilit ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart a systemd-sbsign byla přidána volba „—certificate-source“ pro načtení certifikátu X.509 prostřednictvím poskytovatele OpenSSL namísto přímého načtení ze souboru.
  • V systemd-boot byla přidána funkce používání tlačítek pro ovládání hlasitosti k pohybu nahoru a dolů v zavaděči, což může být užitečné na zařízeních jako jsou chytré telefony. Do utilit bootctl byla přidána podpora pro nastavení databáze UEFI Secure Boot v 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í logů vztahujících se pouze k určitému volání.
  • V systemd-nspawn byla přidána podpora neprivilegovaného používání FUSE (Filesystem in Userspace) v kontejnerech. Při použití volby „—bind-user“ byl zajištěn přenos SSH klíčů uživatele do kontejneru, které jsou potřebné pro přístup přes SSH.
  • V libsystemd byl přidán nový programovací rozhraní „sd-json“, které používá formát JSON, jakož i rozhraní „sd-varlink“, které používá IPC Varlink.
  • Doporučená základní verze jádra byla zvýšena na vydání 5.4 z roku 2019. V následujícím roce plánují ukončit podporu starších jader a vyhlásit vydání 5.4 jako minimálně podporovanou základní verzi.
  • Podpora cgroups v1 byla uznána za zastaralou a je standardně vypnuta (pro zapnutí v příkazovém řádku jádra je nutné uvést SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 k aktivaci v nastaveních systemd). V následujícím vydání systemd 258 se plánuje úplné odstranění kódu souvisejícího s cgroups v1. V verzi systemd 258 se také plánuje odstranění podpory služebních skriptů System V.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster