Выпуск системного менеджера systemd 262

После трёх месяцев разработки доступен релиз системного менеджера systemd 262. В новой версии реализовано встраивание в процесс минимального набора unit-файлов, обеспечена поддержка сборки со статическим связыванием, проведена интеграция c dm-clone для клонирования блочных устройств, добавлено ведение БД установленных файлов в systemd-sysupdate и обеспечена криптографическая верификация отчётов systemd-report.

Среди изменений в новом выпуске:

  • В исполняемый файл системного менеджера встроен набор базовых unit-файлов (basic.target, sysinit.target, multi-user.target, reboot.target, shutdown.target, systemd-poweroff.service и т.п.), которые используются при невозможности загрузить unit-файлы с диска. Подобное встраивание позволяет запускать контейнеры с init-процессом (PID1) на базе systemd без установки unit-файлов.
  • Добавлена поддержка сборки в форме одного статически скомпонованного исполняемого файла, который может применяться для инициализации и запуска сервисов в контейнерах с минимальной начинкой. Для сборки со статическим связыванием при запуске meson следует указать флаги: «—default-library=static —prefer-static -Dbuild-static=true -Dsystemd-multicall-binary=true».
  • Интегрирована поддержка модуля ядра dm-clone, позволяющего на основе доступного в режиме только для чтения блочного устройства создать его клон, допускающий запись. Настройки из /etc/clonetab обрабатываются systemd-clonesetup-generator и сохраняются в форме юнитов systemd-clonesetup@.service, привязанных к clonesetup.target. Для создания и удаления клонов блочных устройств добавлена утилита systemd-clonesetup.
  • Расширены возможности инструментария systemd-sysupdate, предназначенного для автоматического определения, загрузки и установки обновлений с использованием атомарного механизма замены разделов, файлов или каталогов (используются два независимых раздела/файла/каталога, на одном из которых находится текущий работающий ресурс, а на другом устанавливается очередное обновление, после чего разделы/файлы/каталоги меняются местами). Реализовано поддержание БД с информацией о всех установленных файлах. Добавлена команда «systemd-sysupdate cleanup» для удаления файлов, ставших лишними после обновления системы или не соответствующих текущему шаблону конфигурации. Добавлены команды «systemd-sysupdate enable-feature/disable-feature/enable-component/disable-component» для управления включением функциональности и компонентов. Реализована концепция рекомендуемых компонентов, например, командой «systemd-sysupdate enable-component —component-suggested» могут быть включены драйверы, необходимые для работы имеющегося оборудования. В команду «systemd-sysupdate update» добавлена опция «—component-all» для обновления разом всех компонентов.
  • В systemd-report добавлена опция «—sign=», реализующая возможность заверения цифровой подписью отчётов, выдаваемых командами «generate» и «upload». Предложены три бэкенда для заверения отчётов: systemd-report-sign-plain (Ed25519), systemd-report-sign-tsm (configfs TSM) и
    systemd-report-sign-tpm2 (TPM2 PCR).

  • Для сглаживания нагрузки в случае массового перезапуска сервисов после сбоев предложен параметр RestartRandomizedDelaySec, добавляющий случайную задержку перед автоматическим перезапуском сервиса, ограниченную заданными рамками.
  • В slice-юниты добавлен параметр ActivatingConcurrencyMax для ограничения максимального числа одновременно активированных юнитов в иерархии.
  • Для сервисов реализован параметр LUOSession, предназначенный для создания сеансов Live Update Orchestrator, применяемых для обновления ядра в Live-режиме без остановки работы и не теряя состояние системы, устройств и процессов.
  • В socket-юнитах реализованы параметры XAttrEntryPoint,
    XAttrListen и XAttrAccept, позволяющие прикреплять к UNIX-сокетам расширенные атрибуты (xattr) для их маркировки.

  • Для автоматического назначения легко запоминаемых имён хостов (/etc/hostname) реализован новый символ подстановки «$», заменяемый на элемент из списка слов, выбранный через хэширование с привязкой к идентификатору системы.
  • В утилиту run0 добавлены sudo-совместимые опции -k/—reset-timestamp,
    -K/—remove-timestamp и -v/—validate для отзыва или обновления временной авторизации, выполненной через polkit.

  • В утилиту systemd-escape добавлена опция «—stdin» для чтения строк из стандартного ввода.
  • В vconsole добавлена переменная окружения FONT_SCALE для настройки уровня масштабирования шрифтов по аналогии с параметром ядра vconsole.font_scale (из значений пока поддерживается только 100% и 200%).
  • Во все команды, поддерживающие опцию «—help», добавлена опция «—introspect-cli» для вывода подсказки в формате JSON для упрощения автоматизации проверки наличия требуемых опций из надстроек и скриптов.
  • При аутентификации с использованием токенов FIDO2 обеспечен показ счётчика оставшихся попыток введения PIN-кода.
  • В systemd-networkd в секции «[Match]» файлов .link, .network и .netdev добавлена проверка MachineTag, позволяющая привязать настройки сети к наличию или отсутствию определённых тегов. В команду «networkctl reload» добавлена опция «—no-reconfigure» для перезагрузки файлов .network и
    .netdev с диска без перенастройки существующих сетевых линков. В файлах .network в параметрах IPoIB, IPVLAN, IPVTAP, MACsec, MACVLAN, MACVTAP,
    Tunnel, VLAN, VXLAN и Xfrm разрешено указывать несколько имён сетевых устройств, разделённых пробелом.

  • В systemd-journald механизм FSS (Forward Secure Sealing), позволяющий гарантировать неизменность логов, переведён на использование криптофункций из библиотеки OpenSSL вместо libgcrypt. Библиотека libsystemd больше не связывается с libgcrypt.
  • В утилиту systemd-sysctl добавлена опция «—verify», при которой значение параметра sysctl читается после выставления и сверяется с исходным значением для проверки было ли применено изменение. Добавлены опции «—save=FILENAME» и «—revert=FILENAME» для сохранения и восстановления настроек sysctl, размещённых в каталоге /run/sysctl.d/.
  • Добавлена поддержка сборки с библиотекой OpenSSL 4.

Источник: http://www.opennet.ru/opennews/art.shtml?num=66326