После трёх с половиной месяцев разработки представлен релиз системного менеджера systemd 253.
Среди изменений в новом выпуске:
- В состав включена утилита 'ukify', предназначенная для сборки, проверки и формирования подписей для унифицированных образов ядра (UKI, Unified Kernel Image), объединяющих обработчик для загрузки ядра из UEFI (UEFI boot stub), образ ядра Linux и загружаемое в память системное окружение initrd, применяемое для начальной инициализации на стадии до монтирования корневой ФС. Утилита заменяет собой функциональность, ранее предоставляемую командой 'dracut --uefi', и дополняет её возможностями для автоматического расчёта смещений в PE-файлах, объединения initrd, подписи встраиваемых образов ядра, создания комбинированных образов c sbsign, эвристикой для определения uname ядра, проверкой изображения с заставкой и добавлением подписанных PCR-политик, сгенерированных утилитой systemd-measure.
- Добавлена поддержка initrd-окружений, не ограниченных размещением в памяти, в которых вместо tmpfs используется overlayfs. Для подобных окружений systemd не выполняет удаление всех файлов в initrd после переключения корневой ФС.
- В сервисы добавлен параметр "OpenFile" для открытия произвольных файлов в ФС (или подключения к Unix-сокетам) и передачи связанных с ними файловых дескрипторов в запускаемый процесс (например, когда нужно организовать доступ к файлу для непривилегированного сервиса без изменения прав доступа на файл).
- В systemd-cryptenroll при регистрации новых ключей реализована возможность разблокировки зашифрованных разделов при помощи токенов FIDO2 (--unlock-fido2-device) без необходимости ввода пароля. Обеспечено хранения с солью заданного пользователем PIN-кода для усложнения определения методом перебора.
- Добавлены настройки ReloadLimitIntervalSec и ReloadLimitBurst, а также опции командной строки ядра (systemd.reload_limit_interval_sec и /systemd.reload_limit_burst) для ограничения интенсивности перезапуска фоновых процессов.
- Для unit-ов реализована опция "MemoryZSwapMax" для настройки cвойства memory.zswap.max, определяющего максимальный размер zswap.
- Для unit-ов реализована опция "LogFilterPatterns", позволяющую задать регулярные выражения для фильтрации информации, выводимой в лог (может использоваться для исключения определённого вывода или сохранения только определённых данных).
- В scope-юнитах реализована поддержка настройки "OOMPolicy" для задания поведения при попытке вытеснения при нехватке памяти (для сеансов входа выставлено значение OOMPolicy=continue, чтобы OOM killer их принудительно не завершал).
- Определён новый тип сервисов - "Type=notify-reload", который расширяет тип "Type=notify" возможностью ожидания завершения обработки сигнала перезапуска (SIGHUP). На новый тип переведены сервисы systemd-networkd.service, systemd-udevd.service и systemd-logind.
\ - В udev задействована новая схема наименования сетевых устройств, отличия которой в том, что для не привязанных к шине PCI USB-устройств теперь выставляется ID_NET_NAME_PATH для обеспечения большей предсказуемости имён. Для переменных SYMLINK реализован оператор '-=', оставляющий символические ссылки не настроенными, если до этого было определено правило их добавления.
- В systemd-boot переделана передача затравки для генераторов псевдослучайных чисел в ядре и для дискового бэкенда. Добавлена поддержка загрузки ядра не только из раздела ESP (EFI System Partition), например, из прошивки или напрямую для QEMU. Обеспечен разбор параметров SMBIOS для определения запуска в окружении виртуализации. Реализован новый режим 'if-safe' при котором сертификат для UEFI Secure Boot загружается из ESP только, если считается безопасным (запускается в виртуальной машине).
- В утилите bootctl реализована генерация системных токенов на всех системах EFI, кроме окружений виртуализации. Добавлены команды 'kernel-identify' и 'kernel-inspect' для отображения типа образа ядра и информации об опциях командной строки и версии ядра, "unlink" для удаления файла, связанного с первым типом загрузочных записей, "cleanup" для удаления всех файлов из каталога "entry-token" в ESP и XBOOTLDR, не связанных с первым типом загрузочных записей. Обеспечена обработка переменной KERNEL_INSTALL_CONF_ROOT.
- В команде 'systemctl list-dependencies' обеспечена обработка опций "--type" и "--state", а в команде 'systemctl kexec' добавлена поддержка окружений на базе гипервизора Xen.
- В файлах .network в секции [DHCPv4] появилась поддержка опций SocketPriority и QuickAck, RouteMetric=high|medium|low.
- В systemd-repart добавлены опции "--include-partitions", "--exclude-partitions" и "--defer-partitions" для фильтрации разделов по типу UUID, что, например, позволяет собирать образы в которых один раздел построен на основе содержимого другого раздела. Также добавлена опция "--sector-size" для указания размера сектора, используемого при создании раздела. Добавлена поддержка генерации ФС erofs. В настройке Minimize реализована обработка значения "best" для выбора минимально возможного размера образа.
- В systemd-journal-remote разрешено использование настроек MaxUse, KeepFree, MaxFileSize и MaxFiles для ограничения потребления дискового пространства.
- В systemd-cryptsetup добавлена поддержка отправки упреждающих запросов к токенам FIDO2 для определения их наличия до аутентификации.
- В crypttab добавлены новые параметры tpm2-measure-bank и tpm2-measure-pcr.
- В systemd-gpt-auto-generator реализовано монтирование разделов ESP и XBOOTLDR в режимах "noexec,nosuid,nodev", а также добавлен учёт переданных через командную строку ядра параметров rootfstype и rootflags.
- В systemd-resolved предоставлена возможность настройки параметров резолвера через указание опций nameserver, domain, network.dns и network.search_domains в командной строке ядра.
- В команде "systemd-analyze plot" появилась возможность вывода в формате JSON при указании флага "--json". Для управления выводом также добавлены новые опции "--table" и " --no-legend".
- В 2023 году планируется прекратить поддержку cgroups v1 и раздельных иерархий каталогов (когда /usr монтируется отдельно от корня или разделены каталоги /bin и /usr/bin, /lib и /usr/lib).
// cc-by opennet.ru
// converted with crypt’s opennet autoreposter
>>> Подробности