Пуск на системния мениджър systemd 257

След полугодишна разработка е представена версия на системния мениджър systemd 257. Ключови промени: нови инструменти systemd-sbsign и systemd-keyutil, поддръжка на MPTCP при активиране по сокет, начален етап на поддръжка на компилация с Si-библиотеката 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.
  • В unit-а «.socket», използван за осигуряване на работа на механизма за активиране по сокет (стартиране на процеси при опит за установяване на мрежова връзка), е реализирана поддръжка на MPTCP (Multipath TCP), разширение на протокола TCP за организиране на работа на TCP-съединение с доставка на пакети едновременно по множество маршрути през различни мрежови интерфейси, свързани с различни. IP адреси.
  • Включени са промени, необходими за компилация с използване на стандартната Си-библиотека 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 (инициализационен процес) в отделно пространство за идентификатори на процеси (PID namespace). В създадената среда за стартирания процес ще се виждат само процесите от създаденото за него пространство от имена.
  • В правилата на udev е добавена поддръжка за съпоставяне без оглед на регистъра на символите (например, ‘ATTR{foo}=="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.
  • За услугите е реализирана възможността за задаване в параметъра "RestartMode" стойността "debug", при която повторното стартиране на неуспешната услуга ще се извърши с включен режим на отстраняване на грешки (задейства се променлива на средата 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 в редовете «u» е добавена поддръжка на модификатора «!», чрез който могат да се създадат напълно блокирани потребителски акаунти (по-рано за блокиране на потребителя се използваше задаването на невалидна парола, което, например, не водеше до блокировка при автентикация с ключове в 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» за показване на списък с повиквания на единици и опция «—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