Pēc sešu mēnešu izstrādes tika prezentēts sistēmas pārvaldnieka systemd 257 izlaidums. Galvenās izmaiņas: jaunas utilītas systemd-sbsign un systemd-keyutil, MPTCP atbalsts, kad tas tiek aktivizēts, izmantojot ligzdu, sākotnējais atbalsts izveidei ar Musl C bibliotēku. updatectl utilīta, lai pārvaldītu atjauninājumu instalēšanu, izmantojot systemd-sysupdate, iespēja palaist pakalpojumus atsevišķās PID nosaukumvietās, aizsardzība pret nejaušu failu dzēšanu, izmantojot “systemd-tmpfiles —purge”.
Starp izmaiņām jaunajā laidienā:
- Добавлена новая утилита systemd-sbsign для заверения цифровой подписью исполняемых файлов в формате PE (Portable Executable), предназначенных для использования при загрузке в режиме EFI Secure Boot. Для формирования подписи могут использоваться движки и провайдеры, предоставляемые библиотекой OpenSSL. Systemd-sbsign может применяться в качестве альтернативы приложениям sbsigntool и pesign в утилите ukify при формировании универсальных образов ядра UKI (Unified Kernel Image), объединяющих в одном файле загрузчик для UEFI (UEFI boot stub), образ ядра Linux un initrd sistēmas vide, kas ielādēta atmiņā.
- Ir pievienota jauna utilīta systemd-keyutil, kas ievieš dažādas darbības ar privātajām atslēgām un X.509 sertifikātiem. Piemēram, systemd-keyutil var izmantot, lai pārbaudītu spēju ielādēt privātās atslēgas un sertifikātus un iegūt no tiem publiskās atslēgas PEM formātā.
- В unit-ах «.socket», используемых для обеспечения работы механизма активации по сокету (запуск процессов при попытке установки сетевого соединения), реализована поддержка MPTCP (Multipath TCP), расширения протокола TCP для организации работы TCP-соединения с доставкой пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, привязанные к разным IP adreses.
- Ietver izmaiņas, kas nepieciešamas, lai izveidotu, izmantojot standarta Musl C bibliotēku.
- В различные компоненты systemd, выводящие индикаторы прогресса выполнения операций (например, systemd-repart, systemd-sysupdate/updatectl и importctl), добавлена возможность использования ANSI-последовательностей для анимирования отображения прогресса. Подобные последовательности пока поддерживаются только в Windows Terminal (предполагается, что со временем подобная возможность будет перенесена и в эмуляторы терминалов для Linux).
- Komponenta systemd-sysupdate iespējas ir paplašinātas, izmantotas, lai automātiski noteiktu, lejupielādētu un instalētu atjauninājumus, izmantojot atomu mehānismu nodalījumu, failu vai direktoriju aizstāšanai (tiek izmantoti divi neatkarīgi nodalījumi/faili/direktorijas, no kuriem viens satur pašreizējo darba laiku resurss, bet otrs instalē nākamo) atjauninājumu, pēc kura sadaļas/faili/direktorijas tiek apmainītas). Praksē systemd-sysupdate jau tiek izmantots GNOME OS.
Papildus procesam systemd-sysupdate ir pievienots tāda paša nosaukuma pakalpojums, kas ļauj izmantot D-Bus, lai pārvaldītu sistēmas atjauninājumus nepiederīgam lietotājam. Lai pārvaldītu pakalpojumu, ir iekļauta arī jauna updatectl utilīta. Systemd-sysupdate pievienots karodziņš “--offline”, lai atspējotu metadatu lejupielādi tīklā un izmantotu tikai tās versijas, kas jau ir lejupielādētas vietējā sistēmā. Pievienots atbalsts izvadei JSON formātā visām komandām.
- Pakalpojumiem ir ieviests jauns rekvizīts “PrivatePIDs”, ar kuru var organizēt procesu palaišanu ar PID 1 (init process) atsevišķā procesa identifikatoru telpā (PID nosaukumvietā). Palaistajam procesam izveidotajā vidē būs redzami tikai procesi no tam izveidotās nosaukumvietas.
- Pievienots atbalsts udev kārtulu reģistrjutīgām atbilstībām (piemēram, 'ATTR{foo}==i»abcd»'). Izmantojot udev, ir iespējams nodrošināt nepriviliģētiem vietējiem lietotājiem piekļuvi (“uaccess”) /dev/udmabuf ierīcei, kas nepieciešama darbam ar IPMI kamerām caur libcamera. udev nodrošina dažādu aparatūras kriptomaku atpazīšanu ar USB interfeisu un iestatot tiem ID_HARDWARE_WALLET rekvizītu, kas ļauj tiem lietot “uaccess” režīmu, lai tiem piekļūtu nepievilcīgi lietotāji.
- Failam /etc/os-release ir pievienoti jauni lauki RELEASE_TYPE, EXPERIMENT un EXPERIMENT_URL. "RELEASE_TYPE" var izmantot vērtības "eksperimentāls", "izstrāde", "stable" un "lts", lai nodalītu stabilās versijas no izstrādes un eksperimentālām versijām. Parametri EXPERIMENT un EXPERIMENT_URL ir paredzēti, lai izskaidrotu eksperimentālās versijas būtību.
- Run0 utilīta, kas izstrādāta kā sudo programmas aizstājējs, ir pievienojusi opciju “--shell-prompt-prefix”, kas norāda komandu čaulas uzvednes prefiksa virkni. Pēc noklusējuma emocijzīme “🦸” tiek parādīta kā prefikss, lai vizuāli izceltu paaugstinātu sesiju.
- Programmā systemd-tmpfiles, lai izvairītos no nejaušas nepareizu failu dzēšanas, opcija "--purge" tagad attiecas tikai uz iestatījumiem failā tmpfiles.d/, kuriem ir skaidri iestatīts karogs "$". Arī operācijai "--purge" tagad ir jānorāda vismaz viens fails no direktorija tmpfiles.d/. Virknēm ar “L” veidu ir pievienots karodziņš “?”, ja tas ir norādīts, simboliskā saite tiks izveidota tikai tad, ja pastāv mērķa fails.
- Pakalpojumu pārvaldniekā un saistītajās utilītprogrammās procesa izsekošanas kods joprojām tiek pārveidots, lai PID vietā izmantotu PIDFD. PIDFD ir saistīts ar konkrētu procesu un nemainās, savukārt PID var tikt saistīts ar citu procesu pēc tam, kad beidzas pašreizējais ar šo PID saistītais process.
- Pakalpojumiem tagad parametrā “RestartMode” ir iespējams norādīt vērtību “debug”, kurā neveiksmīgais pakalpojums tiks restartēts ar iespējotu atkļūdošanas režīmu (ir iestatīts vides mainīgais DEBUG_INVOCATION=1), un LogLevelMax vērtība būs īslaicīgi paaugstināts līdz atkļūdošanas līmenim.
- PID 1 apdarinātājam ir iespēja ielādēt kārtulas IPE (Integrity Policy Enforcement) LSM modulim, kas nosaka integritātes politiku visai sistēmai (kuras darbības ir atļautas un kā jāpārbauda komponentu autentiskums).
- Vienības “.timer” failiem ir pievienota opcija “DeferReactivation”, kas ļauj izlaist nākamo taimera aktivizēšanu, ja pakalpojums vēl nav pabeidzis darbību kopš pēdējās aktivizēšanas.
- PrivateUsers vienības faila parametrā tagad ir iespējams norādīt "identitātes" vērtību, lai, veidojot lietotāja vārdu telpu, iespējotu lietotāju ID kartēšanu.
- Pievienots “atvienotās” vērtības atbalsts PrivateTmp vienības faila parametram, kas izmantos atsevišķus tmpfs gadījumus direktorijiem /tmp/ un /var/tmp/.
- ProtectControlGroups vienības faila parametram ir pievienots atbalsts jauniem “privātiem” un “stingriem” režīmiem, kad tas ir iestatīts, pakalpojumam tiek izveidota jauna cgroup nosaukumvieta un tiek uzstādīts cgroupfs. Ja ir iestatīta opcija "stingra", cgroupfs tiek uzstādīts tikai lasīšanas režīmā.
- Parametri StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory un ConfigurationDirectory nodrošina iespēju izmantot karogu ":ro", lai ierobežotu piekļuvi attiecīgajiem direktorijiem tikai lasīšanas režīmā.
- Pievienots atbalsts “firmware” vērtībai kodola komandrindas parametram “systemd.machine_id”, kurā sistēmas identifikators (mašīnas ID) tiks aprēķināts, pamatojoties uz UUID no SMBIOS/DeviceTree.
- Добавлена поддержка системных вызовов mseal(), listmount() и statmount(), появившихся в недавних выпусках ядра Linux.
- Utilītas solvectl, timedatectl un systemd-inhibit tagad atbalsta interaktīvu autorizāciju, izmantojot Polkit.
- Systemctl utilīta ir pievienojusi iespēju izmantot karodziņu "--now" komandā "reenable".
- Systemd-mount utilītai ir pievienota opcija “--json” izvadei JSON formātā (piemēram, ja tā ir norādīta kopā ar “--list-devices”, ierīču saraksts tiks izvadīts JSON formātā).
- Lietderībai "localectl" ir pievienotas opcijas "-l" un "--full", lai atspējotu garo līniju apgriešanu izvades laikā.
- Vietnei sleep.conf ir pievienota opcija HibernateOnACPower, kas ļauj aizkavēt pārslēgšanos miega režīmā, līdz ierīce tiek atvienota no stacionārā barošanas avota.
- Systemd-sysusers rindām “u” ir pievienots modifikatora “!” atbalsts, ar kuru var izveidot pilnībā bloķētus lietotāju kontus (iepriekš lietotāja bloķēšanai tika izmantota nepareizas paroles iestatīšana, kas, piemēram, neizraisīja bloķēšanu atslēgas autentifikācijas laikā SSH).
- Systemd-coredump pievieno opciju "EnterNamespace", kas ļauj piekļūt jebkura avarējuša procesa montāžas punkta telpai, lai iegūtu to atkļūdošanas simbolus. Praksē šī opcija var būt noderīga, lai organizētu galveno failu izsekošanu no lietojumprogrammām, kas darbojas izolētos konteineros.
- systemd-logind ietver kombinācijas Ctrl-Alt-Shift-Esc apstrādi, lai nosūtītu org.freedesktop.login1.SecureAttentionKey signālu lietotāja vides komponentiem ar pieprasījumu parādīt drošas pieteikšanās dialoglodziņu. Ieviests iestatījums “DesignatedMaintenanceTime”, lai automātiski ieplānotu darbu pabeigšanu noteiktā laikā. Pēc analoģijas ar atbalstu DRM un evdev ierīcēm, ir pievienots atbalsts piekļuves konfigurēšanai nepievilcīgiem lietotājiem, lai slēptu ierīces (spēļu kontrolierus un kursorsviras).
- systemd-machined tagad atbalsta neprivileģētu klientu pieteikšanās. virtuālās mašīnas un konteineri. Piekļuve systemd-machined funkcionalitātei tiek nodrošināta, izmantojot Varlink API, papildus D-Bus.
- Konfigurācijas failam networkd.conf ir pievienota jauna sadaļa “[IPv6AddressLabel]”, lai konfigurētu IPv6 adrešu etiķetes un prefiksus.
- Komandai 'networkctl edit' ir pievienota opcija "--stdin", lai iegūtu faila saturu no standarta straumes. Pievienots atbalsts .netdev failu rediģēšanai un parādīšanai, norādot tīkla interfeisu komandām "networkctl edit" un "networkctl cat". Pievienota opcija “--no-ask-password”, lai atspējotu interaktīvo autorizāciju.
- Pievienota opcija "--certificate-source" utilītprogrammām ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart un systemd-sbsign, lai ielādētu X.509 sertifikātu, izmantojot OpenSSL nodrošinātāju, nevis tieši no failu.
- systemd-boot pievieno iespēju izmantot skaļuma pogas, lai pārvietotos uz augšu un uz leju sāknēšanas izvēlnē, kas var būt noderīga tādās ierīcēs kā viedtālruņi. Bootctl utilītai ir pievienots atbalsts UEFI Secure Boot datu bāzes instalēšanai ESL(db/dbx/…) formātā systemd-boot.
- Vietnei Journalctl ir pievienota opcija “--list-invocation”, lai parādītu vienības izsaukumu sarakstu, un opcija “--invocation” (“-I”), lai parādītu žurnālus, kas saistīti tikai ar konkrētu zvanu.
- systemd-nspawn pievieno atbalstu FUSE (failu sistēma lietotāja telpā) nepiešķirtai lietošanai konteineros. Izmantojot opciju “--bind-user”, lietotāja SSH atslēgas, kas nepieciešamas piekļuvei, izmantojot SSH, tiek pārsūtītas uz konteineru.
- libsystemd ir pievienojis jaunu programmēšanas interfeisu "sd-json", kas izmanto JSON formātu, kā arī interfeisu "sd-varlink", kas izmanto IPC Varlink.
- Ieteicamā pamata kodola versija ir jaunināta uz 5.4, kas tika izveidota 2019. gadā. Nākamajā gadā viņi plāno pārtraukt vecāku kodolu atbalstīšanu un atzīmēt 5.4 versiju kā minimāli atbalstīto bāzes versiju.
- Atbalsts cgroups v1 ir novecojis un pēc noklusējuma ir atspējots (lai to iespējotu, kodola komandrindā ir jānorāda SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 papildus tā iespējošanai systemd iestatījumos). Nākamais systemd 258 laidiens plāno pilnībā noņemt cgroups v1 saistīto kodu. Systemd versijai 258 ir paredzēts arī noņemt System V pakalpojumu skriptu atbalstu.
Avots: opennet.ru
