Издаване на системния мениджър systemd 257

След половин година разработка, системният мениджър systemd 257 беше представен. Ключови промени: нови утилити systemd-sbsign и systemd-keyutil, поддръжка на MPTCP при активиране през сокет, начална поддръжка за компилиране с C-библиотеката Musl, утилита updatectl за управление на инсталацията на актуализации чрез systemd-sysupdate, възможност за стартиране на услуги в отделен PID namespace, защита от случайно изтриване на файлове при използване на „systemd-tmpfiles —purge“.

Сред промените в новото издание:

  • Добавена е нова утилита systemd-sbsign за удостоверяване с цифров подпис на изпълними файлове в PE (Portable Executable) формат, предназначени за използване при стартиране в режим EFI Secure Boot. За генериране на подписа могат да се използват механизми и доставчици, предоставени от библиотеката OpenSSL. Systemd-sbsign може да се използва като алтернатива на приложенията sbsigntool и pesign в утилитата ukify при генерирането на универсални имиджи на ядрото UKI (Unified Kernel Image), обединяващи в един файл стартовия зареждач за UEFI (UEFI boot stub), имиджа на ядрото на Linux и зарежданата в паметта системна среда initrd.
  • Добавена е нова утилита systemd-keyutil, реализираща различни операции с частни ключове и сертификати X.509. Например, systemd-keyutil може да се използва за проверка на възможността за зареждане на частни ключове и сертификати, както и за извличане на публични ключове от тях в PEM формат.
  • В юнитите ‘.socket’, използвани за осигуряване на функцията за активиране чрез сокет (стартиране на процеси при опит за установяване на мрежова връзка), е реализирана поддръжка на MPTCP (Multipath TCP), разширение на TCP протокола за организиране на TCP връзка с доставка на пакети едновременно по няколко маршрута през различни мрежови интерфейси, свързани към различни. IP адреси.
  • Включени са изменения, необходими за компилиране с помощта на стандартната C-библиотека Musl.
  • В различни компоненти на systemd, които извеждат индикатори на напредъка на операциите (например, systemd-repart, systemd-sysupdate/updatectl и importctl), е добавена възможност за използване на ANSI последователности за анимация на показването на напредъка. Такива последователности засега се поддържат само в Windows Terminal (предполага се, че с времето подобна възможност ще бъде пренесена и в терминални емулатори за Linux).
  • Разширени са възможностите на компонента systemd-sysupdate, използван за автоматично откриване, изтегляне и инсталиране на актуализации, използвайки атомен механизъм за подмяна на дялове, файлове или директории (използват се две независими дялове/файла/директории, от които един съдържа текущия работещ ресурс, а на другия се инсталира следващата актуализация, след което дяловете/файловете/директориите се разменят). На практика, systemd-sysupdate вече се използва в GNOME OS.

    Към процеса systemd-sysupdate е добавен едноименен сървис, който позволява използването на D-Bus за управление на обновлението на системата от непривилегирован потребител. За управление на сървиса е включена нова утилита updatectl. В systemd-sysupdate е добавен флаг „—offline“ за забрана на изтеглянето на метадани по мрежата, използвайки само вече изтеглените версии на локалната система. За всички команди е добавена поддръжка за изход във формат JSON.

  • За сървисите е реализирано ново свойство «PrivatePIDs», с което може да се организира стартиране на процеси с PID 1 (init-процес) в отделено пространство на идентификатори на процеси (PID namespace). В създаденото за стартирания процес обкръжение ще бъдат видими само процеси от създаденото за него пространство на имена.
  • В правилата udev е добавена поддръжка за съвпадения без значение за регистъра на символите (например, ‘ATTR{foo}==i»abcd»‘). Чрез udev се реализира предоставяне на непривилегировани локални потребители достъп («uaccess») до устройството /dev/udmabuf, което е необходимо за работа с IPMI-камери чрез libcamera. В udev е осигурено разпознаване на различни хардуерни криптокошелци с USB интерфейс и задаване на свойството ID_HARDWARE_WALLET, което позволява да се приложи режим «uaccess» за достъп на непривилегировани потребители.
  • В файла /etc/os-release са добавени нови полета RELEASE_TYPE, EXPERIMENT и EXPERIMENT_URL. «RELEASE_TYPE» може да приема стойности «experimental», «development», «stable» и «lts» за разделяне на стабилни версии от находящи се в разработка и експериментални сборки. Параметрите EXPERIMENT и EXPERIMENT_URL са предназначени за обяснение на същността на експерименталната сборка.
  • В утилитата run0, развивана като заместител на програмата sudo, е добавена опция «—shell-prompt-prefix», която определя строка-префикс за поканата на командния интерпретатор. По подразбиране като префикс се извежда emoji «🦸» за визуално отделяне на сесия с повишени права.
  • В systemd-tmpfiles, с цел избягване на случайно изтриване на грешни файлове, опцията «—purge» сега се прилага само за настройките в tmpfiles.d/, за които е зададен флаг «$». За извършване на операция «—purge» вече е необходимо указването на поне един файл от каталога tmpfiles.d/. За редове с тип ‘L’ е добавен флаг ‘?’, при указването на който символичната връзка ще бъде създадена само при наличието на целеви файл.
  • В сървисния мениджър и съпътстващите утилити е продължена трансформация на кода за проследяване на процесите да използва PIDFD вместо PID. Идентификаторът PIDFD е свързан с конкретен процес и не се променя, докато PID може да бъде свързан с друг процес след завършване на текущия процес, асоцииран с този PID.
  • За услугите е реализирана възможност за указване на стойност «debug» в параметъра «RestartMode», при което повторното стартиране на провалилата се услуга ще бъде извършено с активиран режим на отстраняване на грешки (задава се променлива на средата DEBUG_INVOCATION=1), а стойността на LogLevelMax временно ще се повиши до ниво на отстраняване на грешки.
  • В обработчика PID 1 е реализирана възможност за зареждане на правила за LSM модула IPE (Integrity Policy Enforcement), определящи политиката за осигуряване на целостта на цялата система (какви операции са допустими и по какъв начин следва да се проверява автентичността на компонентите).
  • В unit файловете «.timer» е добавена опция «DeferReactivation», която позволява да се пропусне следващата активация по таймер, ако услугата все още не е завършила изпълнението си от времето на предишната активация.
  • В параметра на unit файловете PrivateUsers е реализирана възможност за указване на стойност «identity» за включване на мапирането на идентификаторите на потребителите при създаване на пространство за имена (user namespace).
  • В параметрите на unit файловете PrivateTmp е добавена поддръжка за стойност «disconnected», при която за директориите /tmp/ и /var/tmp/ ще се използват отделни екземпляри tmpfs.
  • В параметрите на unit файловете ProtectControlGroups е добавена поддръжка за нови режими «private» и «strict», при задаване на които за услугата се създава ново пространство за имена cgroup (cgroup namespace) и се монтира cgroupfs. При задаване на опцията «strict» монтирането на cgroupfs се извършва в режим само за четене.
  • В параметрите StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory и ConfigurationDirectory е предоставена възможност за използване на флага ‘:ro’ за ограничаване на достъпа до съответните директории в режим само за четене.
  • В параметъра на командния ред на ядрото «systemd.machine_id» е добавена поддръжка за стойност «firmware», при която идентификаторът на системата (machine ID) ще бъде изчислен на базата на UUID от SMBIOS/DeviceTree.
  • Добавена е поддръжка за системни извиквания mseal(), listmount() и statmount(), появили се в последните издания на ядрото на Linux.
  • В утилитите resolvectl, timedatectl и systemd-inhibit е добавена поддръжка за интерактивна авторизация с помощта на Polkit.
  • В утилитата systemctl е добавена възможност за използване на флага «—now» в командата «reenable».
  • В утилитата systemd-mount е добавена опция «—json» за извеждане във формат JSON (например, при указване заедно с «—list-devices» в JSON формат ще бъде изведен списък с устройства).
  • В утилитата «localectl» са добавени опции «-l» и «—full» за деактивиране на частичното изрязване на дълги редове при извеждане.
  • В sleep.conf е добавена опция HibernateOnACPower, която позволява отлагане на превключването в спящ режим до изключване на устройството от стационарния източник на захранване.
  • В systemd-sysusers е добавена поддръжка на модификатора «!», чрез който могат да се създават напълно блокирани потребителски акаунти (по-рано за блокиране на потребител се използваше задаване на невалидна парола, което, например, не водеше до блокиране при удостоверяване чрез SSH ключове).
  • В systemd-coredump е добавена опция «EnterNamespace», която предоставя достъп до пространството за монтиране на всякакви аварийно завършили процеси за получаване на техните отладъчни символи. На практика, опцията може да е полезна за организиране на обратна трасировка (backtrace) на core файлове от приложения, изпълнявани в изолирани контейнери.
  • В systemd-logind е активирана обработката на комбинацията Ctrl-Alt-Shift-Esc за изпращане към компонентите на потребителската среда на сигнала org.freedesktop.login1.SecureAttentionKey с молба за показване на диалог за безопасно влизане в системата. Реализирана е настройка «DesignatedMaintenanceTime» за автоматично планиране на изключване в зададено време. Подобно на поддръжката на DRM устройства и evdev, е добавена поддръжка за настройка на достъпа на непривилегировани потребители до hidraw устройства (игрови контролери и джойстици).
  • В systemd-machined е добавена поддръжка за регистрация от непривилегировани клиенти виртуални машини и контейнери. Осигурен е достъп до функционалността на systemd-machined чрез API Varlink, освен D-Bus.
  • В конфигурационния файл networkd.conf е добавена нова секция «[IPv6AddressLabel]» за настройване на етикети и префикси за IPv6 адреси.
  • В командата ‘networkctl edit’ е добавена опция «—stdin» за получаване на съдържанието на файла от стандартния поток. В командите ‘networkctl edit’ и ‘networkctl cat’ е добавена поддръжка за редактиране и показване на .netdev файлове чрез указване на мрежов интерфейс. Добавена е опция «—no-ask-password» за деактивиране на интерактивната авторизация.
  • В инструменти като ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart и systemd-sbsign е добавена опция «—certificate-source» за зареждане на сертификат X.509 чрез доставчик OpenSSL вместо директно зареждане от файл.
  • В systemd-boot е добавена възможност за използване на бутони за управление на звука за навигация нагоре и надолу в менюто за зареждане, което може да е полезно на устройства, като смартфони. В утилитата bootctl е добавена поддръжка за инсталиране на UEFI Secure Boot БД в формат ESL(db/dbx/…) за systemd-boot.
  • В journalctl е добавена опция «—list-invocation» за показване на списък с извиквания на unit-ове и опция «—invocation» («-I») за показване само на логовете, свързани с определено извикване.
  • В systemd-nspawn е добавена поддръжка за непривилегирано използване на FUSE (Filesystem in Userspace) в контейнери. Когато се използва опция «—bind-user», е осигурен пропуск на SSH ключовете на потребителя в контейнера, необходими за достъп по SSH.
  • В libsystemd е добавен нов интерфейс за програмиране «sd-json», използващ JSON формат, както и интерфейс «sd-varlink», използващ IPC Varlink.
  • Препоръчителната основна версия на ядрото е повишена до версия 5.4, издадена през 2019 година. През следващата година се планира прекратяване на поддръжката на по-стари ядра и да се определи версия 5.4 като минимално поддържана основна версия.
  • Поддръжката на cgroups v1 е призната за остаряла и по подразбиране е деактивирана (за да бъде активирана от командния ред на ядрото, е необходимо да се зададе SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1, в допълнение към активирането в настройките на systemd). В следващата версия systemd 258 се планира пълно премахване на кода, свързан с cgroups v1. В версия systemd 258 също така се предвижда премахване на поддръжката на скриптове за услуги System V.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster