Po šestih mesecih razvoja je bil predstavljen izid sistemskega upravitelja systemd 257. Ključne spremembe: nove utilite systemd-sbsign in systemd-keyutil, podpora MPTCP ob aktivaciji preko soketa, začetna podpora za sestavljanje z C-knjižnico Musl, utilita updatectl za upravljanje namestitve posodobitev preko systemd-sysupdate, možnost zagonov storitev v ločenem PID namespace, zaščita pred nenamernim brisanjem datotek pri uporabi 'systemd-tmpfiles --purge'.
Med spremembami v novi izdaji:
- Dodana je nova utilita systemd-sbsign za overjanje digitalne podpisa izvršnih datotek v formatu PE (Portable Executable), namenjenih za uporabo pri nalaganju v načinu EFI Secure Boot. Za oblikovanje podpisa se lahko uporabljajo mehanizmi in ponudniki, ki jih zagotavlja knjižnica OpenSSL. Systemd-sbsign se lahko uporablja kot alternativa aplikacijama sbsigntool in pesign v utiliti ukify pri oblikovanju univerzalnih slik jedra UKI (Unified Kernel Image), ki združujejo v eni datoteki nalagalnik za UEFI (UEFI boot stub), sliko jedra Linuxa in naloženo v pomnilnik sistemsko okolje initrd.
- Dodana je nova utilita systemd-keyutil, ki izvaja različne operacije z zasebnimi ključi in certifikati X.509. Na primer, systemd-keyutil se lahko uporablja za preverjanje možnosti nalaganja zasebnih ključev in certifikatov ter za izločanje odprtih ključev v formatu PEM.
- V enotah '.socket', ki se uporabljajo za zagotavljanje delovanja mehanizma aktivacije preko soketa (zagon procesov ob poskusu vzpostavitve omrežne povezave), je bila реализирована подpora MPTCP (Multipath TCP), razširitvi protokola TCP za organizacijo dela TCP-povezave z dostavo paketov hkrati po več poteh preko različnih omrežnih vmesnikov, povezanih z različnimi. IP-naslovov.
- Vključene so spremembe, potrebne za sestavljanje z uporabo standardne C-knjižnice Musl.
- V različne komponente systemd, ki izpolnjujejo indikatorje napredka pri izvajanju operacij (na primer systemd-repart, systemd-sysupdate/updatectl in importctl), je dodana možnost uporabe ANSI-sekvenc za animiranje prikaza napredka. Takšne sekvence trenutno podpirajo le Windows Terminal (predvideva se, da bo sčasoma to možnost prenesena tudi v terminalske emulatorje za Linux).
- Razširjene možnosti komponenta systemd-sysupdate, ki se uporablja za samodejno prepoznavanje, prenos in namestitev posodobitev z uporabo atomske mehanizma zamenjave razdelkov, datotek ali katalogov (uporabljata se dva neodvisna razdelka/datoteki/katalogi, na enem od katerih se nahaja trenutno delujoči vir, medtem ko se na drugem namesti naslednja posodobitev, po čemer se razdelka/datoteki/katalogi zamenjata). V praksi se systemd-sysupdate že uporablja v GNOME OS.
Ob postopku systemd-sysupdate je dodana istoimenska storitev, ki omogoča uporabo D-Bus za upravljanje posodobitve sistema s strani neprivilegiranega uporabnika. Za upravljanje storitve je vključena nova uporabniška orodja updatectl. V systemd-sysupdate je dodana oznaka „—offline“ za prepoved nalaganja metapodatkov prek omrežja in uporabo le že prenesenih na lokalni sistem različic. Vse ukaze je dodana podpora za izhod v formatu JSON.
- Za storitve je implementirana nova lastnost „PrivatePIDs“, s katero je mogoče organizirati zagon procesov s PID 1 (init-proces) v ločenem prostoru identifikatorjev procesov (PID namespace). V ustvarjenem okolju za zagnani proces bodo vidni le procesi iz ustvarjenega prostora imen.
- V pravila udev je dodana podpora za ujemanja brez upoštevanja velike in male črke (na primer, ‘ATTR{foo}==i"abcd"‘). Preko udev je omogočeno zagotavljanje dostopa neprivilegiranim lokalnim uporabnikom do naprave /dev/udmabuf, ki je potrebna za delo z IPMI-kamerami preko libcamera. V udev je zagotovljeno prepoznavanje različnih strojnih kriptovalutnih denarnic z USB vmesnikom in dodelitev lastnosti ID_HARDWARE_WALLET, kar omogoča uporabljenemu režimu „uaccess“ dostop neprivilegiranim uporabnikom.
- V datoteko /etc/os-release so dodana nova polja RELEASE_TYPE, EXPERIMENT in EXPERIMENT_URL. „RELEASE_TYPE“ lahko sprejme vrednosti „experimental“, „development“, „stable“ in „lts“ za ločevanje stabilnih različic od tistih, ki so v razvoju in eksperimentalnih zbirk. Parametra EXPERIMENT in EXPERIMENT_URL sta namenjena razlagi narave eksperimentalne zbirke.
- V utilitě run0, vyvinuté jako náhrada za program sudo, byla přidána možnost „—shell-prompt-prefix“, která určuje řetězec prefixu pro výzvu příkazového interpretu. Výchozím prefixem je emoji „🦸“, které vizuálně vyzdvihuje relaci s vyššími právy.
- V systemd-tmpfiles, aby se předešlo omylům při odstraňování nesprávných souborů, se možnost „—purge“ nyní aplikuje pouze na nastavení v tmpfiles.d/, pro která je explicitně nastaven příznak „$“. Pro provedení operace „—purge“ je nyní také vyžadováno určení alespoň jednoho souboru z adresáře tmpfiles.d/. Pro řádky typu ‘L’ byl přidán příznak ‘?’, při jehož použití bude symbolický odkaz vytvořen pouze v případě, že cílový soubor existuje.
- V servisním správci a souvisejících utilitách pokračuje překlad kódu sledování procesů na použití PIDFD místo PID. Identifikátor PIDFD je vázán na konkrétní proces a nemění se, zatímco PID může být připojen k jinému procesu po dokončení aktuálního procesu, který je s tímto PID spojen.
- Pro služby byla implementována možnost zadání hodnoty „debug“ v parametru „RestartMode“, při níž bude restartování selhávající služby provedeno 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 obslužném programu PID 1 byla implementována možnost načítání pravidel pro LSM modul 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 je třeba ověřit pravost komponentů).
- Do unit souborů „.timer“ byla přidána možnost „DeferReactivation“, která umožňuje vynechat následující aktivaci podle časovače, pokud služba ještě neskončila od poslední aktivace.
- V parametru unit souborů PrivateUsers byla implementována možnost zadání hodnoty „identity“ pro aktivaci mapování identifikátorů uživatelů při vytváření prostoru jmen (user namespace).
- Do parametru unit souborů PrivateTmp byla přidána podpora hodnoty „disconnected“, při níž budou pro adresáře /tmp/ a /var/tmp/ používány samostatné instance tmpfs.
- V parametru unit-datotek ProtectControlGroups je bila dodana podpora za nove načine "private" in "strict", pri čemer se za storitev ustvari nov prostor imen cgroup (cgroup namespace) in se montira cgroupfs. Pri nastavitvi možnosti "strict" se cgroupfs montira v načinu samo za branje.
- V parametrih StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory in ConfigurationDirectory je bila dodana možnost uporabe oznake ‘:ro’ za omejitev dostopa do ustreznih direktorijev v načinu samo za branje.
- V parameter ukazne vrstice jedra „systemd.machine_id“ je bila dodana podpora za vrednost „firmware“, pri čemer bo id sistema (machine ID) izračunan na podlagi UUID iz SMBIOS/DeviceTree.
- Dodana je bila podpora za sistemske klice mseal(), listmount() in statmount(), ki so se pojavili v nedavnih različicah jedra Linux.
- V orodja resolvectl, timedatectl in systemd-inhibit je bila dodana podpora za interaktivno avtorizacijo z uporabo Polkita.
- V orodje systemctl je bila dodana možnost uporabe oznake „—now“ v ukazu „reenable“.
- V orodje systemd-mount je bila dodana možnost „—json“ za izhod v formatu JSON (na primer, ob navedbi skupaj z „—list-devices“ se v formatu JSON prikaže seznam naprav).
- V orodje „localectl“ so bile dodane možnosti „-l“ in „—full“ za onemogočanje obrezovanja dolgih vrstic pri izhodu.
- V sleep.conf je bila dodana možnost HibernateOnACPower, ki omogoča odložitev preklopa v spalni način do izklopa naprave iz zanesljivega napajalnega vira.
- V systemd-sysusers je bila v vrstice „u“ dodana podpora za modifikator „!“, s katerim lahko ustvarite popolnoma zaklenjene uporabniške račune (prej je bilo za blokiranje uporabnika potrebno nastaviti neveljavno geslo, kar na primer ni privedlo do blokade pri avtentikaciji z gesli v SSH).
- V systemd-coredump je bila dodana možnost „EnterNamespace“, ki omogoča dostop do prostora točk montiranja vseh nedavno okvarjenih procesov za pridobitev njihovih simbolov za razhroščevanje. V praksi je lahko ta možnost koristna za organizacijo povratne sledi (backtrace) core-datotek iz aplikacij, ki se izvajajo v izoliranih kontejnerjih.
- V systemd-logind je omogočeno obdelovanje kombinacije Ctrl-Alt-Shift-Esc za pošiljanje signalov komponentam uporabniškega okolja org.freedesktop.login1.SecureAttentionKey z zahtevo za odpiranje dialoga za varni prijavo. Uvedena je nastavitev „DesignatedMaintenanceTime“ za samodejno načrtovanje izklopa ob določenem času. Podobno kot pri podpori za naprave DRM in evdev je dodana podpora za nastavitev dostopa nepriviligiranih uporabnikov do naprav hidraw (igralne naprave in joysticki).
- V systemd-machined je dodana podpora za registracijo nepriviligiranih strank virtualnih naprav in posod. Dostop do funkcionalnosti systemd-machined je zagotovljen preko API-ja Varlink, poleg D-Bus.
- V konfiguracijsko datoteko networkd.conf je dodana nova sekcija „[IPv6AddressLabel]“ za nastavitev oznak in prefiksov za naslove IPv6
- V ukaz „networkctl edit“ je dodana možnost „—stdin“ za pridobitev vsebine datoteke iz standardnega toka. V ukaze „networkctl edit“ in „networkctl cat“ je dodana podpora za urejanje in prikazovanje datotek .netdev preko navedbe omrežnega vmesnika. Dodana je možnost „—no-ask-password“ za izklop interaktivne avtentifikacije.
- V orodja ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart in systemd-sbsign je dodana možnost „—certificate-source“ za prenos certifikata X.509 preko ponudnika OpenSSL namesto neposrednega nalaganja iz datoteke.
- V systemd-boot je bila dodana možnost uporabe gumbov za nadzor glasnosti za premikanje gor in dol po zagonskem meniju, kar je lahko koristno na napravah, kot so pametni telefoni. Orodju bootctl je dodana podpora za namestitev baze podatkov UEFI Secure Boot v formatu ESL(db/dbx/…) za systemd-boot.
- V journalctl je dodana možnost „—list-invocation“ za prikaz seznama klicev enot in možnost „—invocation“ („-I“) za prikaz logov, povezanih samo z določenim klicem.
- V systemd-nspawn je dodana podpora za nepriviligirano uporabo FUSE (Filesystem in Userspace) v posodah. Pri uporabi možnosti „—bind-user“ je omogočen pretok SSH ključev uporabnika v posodo, potrebnih za dostop preko SSH.
- V libsystemd je dodan nov programski vmesnik „sd-json“, ki uporablja format JSON, ter vmesnik „sd-varlink“, ki uporablja IPC Varlink.
- Priporočena osnovna različica jedra je bila nadgrajena na izdajo 5.4, oblikovano leta 2019. V naslednjem letu načrtujemo prenehanje podpore za starejša jedra in označitev izdaje 5.4 kot najmanj podprte osnovne različice.
- Podpora za cgroups v1 je bila razglašena za zastarelo in je privzeto izklopljena (za vključitev v vrstici ukazov jedra je treba navesti SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 poleg aktivacije v nastavitvah systemd). V naslednji izdaji systemd 258 je načrtovano popolno odstranjevanje kode, povezane z cgroups v1. V izdaji systemd 258 je prav tako predvideno odstranitev podpore za skripte storitev System V.
Izvor: opennet.ru
