Доступен системный менеджер systemd 259

После трёх месяцев разработки доступен релиз системного менеджера systemd 259. Ключевые изменения: поддержка стандартной библиотеки Musl, команда «run0 --empower» для выполнения привилегированных действий без смены UID, динамическая загрузка сторонних библиотек, востребованных в libsystemd, игнорирование файлов конфигурации через добавление к имени ».ignore».

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

  • Добавлена частичная поддержка стандартной Си-библиотеки Musl, включаемая через выставление значения «musl» в опции «libc» в сборочной системе Meson. Из-за того, что библиотека Musl не предоставляет функциональность NSS, при сборке systemd с Musl недоступны компоненты nss-systemd, nss-resolve, systemd-homed, systemd-nsresourced, systemd-userdbd, а также параметр DynamicUser и возможность непривилегированного запуска systemd-nspawn. Разработчики systemd пока не гарантируют, что поддержка Musl останется в будущих выпусках. Решение будет зависеть от успешности развития прослойки, реализующей дополнительную функциональность поверх Musl, а также востребованности проекта и сообщений о специфичных для Musl ошибках.

  • В утилиту run0, преподносимую как безопасная замена программы sudo, работающая поверх systemd-run, добавлена опция »--empower», позволяющая запустить новый сеанс с повышенными привилегиями, не переключаясь на пользователя root. Выполнение привилегированных действий без смены UID организовано через выставление capabilities-флагов, таких как CAP_SYS_ADMIN, достаточных для обращения к большинству привилегированных системных вызовов. Запускаемые процессы также помещаются в отдельную группу «empower», для которой предоставлен доступ к большинству действий Polkit.

  • Решено удалить в следующем выпуске поддержку скриптов сервисов в формате System V. К удалению намечены компоненты systemd-sysv-install, systemd-rc-local-generator и systemd-sysv-generator. В следующем релизе также намечено повышение требований к минимальным версиям: ядро Linux 5.10, glibc 2.34, openssl 3.0.0, python 3.9.0, libxcrypt 4.4.0, util-linux 2.37, elfutils 0.177, cryptsetup 2.4.0, libseccomp 2.4.0.

  • В рамках инициативы по сокращению зависимостей у libsystemd реализована динамическая загрузка библиотек libacl, libblkid, libseccomp, libselinux, libmount при помощи вызова dlopen () в ситуациях, когда их функции действительно необходимы. Через dlopen () также реализована работа с подсистемой аудита Linux и с PAM. Функциональность, ранее вызываемая через библиотеку-прослойку libcap, встроена в libsystemd.

  • В systemd-resolved добавлена возможность прикрепления локальных обработчиков, вызываемых при каждом запросе резолвинга локальных имён. Обработчики размещаются в каталоге /run/systemd/resolve.hook/.

  • В БД с данными о пользователях добавлено поле UUID, а в утилиту userdbctl добавлена опция »--uuid» для поиска по UUID.

  • Обеспечено игнорирование файлов конфигурации с именами, оканчивающимися на ».ignore».

  • В systemd-importd реализована встроенная логика работы с TAR-архивами, использующая libarchive место вызова утилиты GNU tar. Реализована возможность запуска systemd-machined и systemd-importd в привязке к пользователям, а не на системном уровне, с загрузкой системных образов в ~/.local/state/machines/. Для выбора режима работы в утилиту importctl добавлены опции »--user» и »--system».




  • Режим хранения журнала по умолчанию изменён с 'auto' на 'persistent' (ранее режим зависел от наличия каталога /var/log/journal).

  • В systemd-networkd и systemd-nspawn прекращена поддержка создания правил трансляции адресов (NAT) через iptables/libiptc. Оставлена только поддержка nftables.

  • В systemd-boot и systemd-stub прекращена поддержка TPM 1.2 (оставлена поддержка TPM 2.0).

  • В systemd-machined по умолчанию обеспечено монтирование «скрытых» дисковых образов, имя которых начинается с точки, в режиме только для чтения.

  • Расширен API на базе протокола Varlink, который теперь может применяться для доступа к настройкам сервисов. Реализованы IPC-вызовы Reload () и Reexecute (). Добавлены вызовы для доступа к функциональности и настройкам systemd-repart, systemd-resolved и systemd-networkd.

  • Добавлена настройка ExecReloadPost, позволяющая организовать запуск команд после перезагрузки конфигурации сервиса.

  • Для сервисов реализованы свойства OOMKills и ManagedOOMKills, содержащие число процессов, принудительно завершённых ядром или systemd-oomd из-за нехватки памяти.

  • Для временных сервисов добавлено свойство RootDirectoryFileDescriptor, определяющее файловый дескриптор корневого каталога.

  • Добавлена настройка UserNamespacePath, позволяющая привязать unit к пространству идентификаторов пользователей (user namespace) через указание пути в псевдо-ФС /proc, по аналогии с настройками IPCNamespacePath и NetworkNamespacePath. В systemd-nspawn для указания сетевого пространства имён в секцию [Network] файлов .nspawn добавлена настройка NamespacePath.

  • В systemd-sysext и systemd-confext реализована поддержка отдельных файлов конфигурации /etc/systemd/systemd-sysext.conf и /etc/systemd/systemd-confext.conf. Добавлена возможность использования переменной окружения SYSTEMD_SYSEXT_OVERLAYFS_MOUNT_OPTIONS и $SYSTEMD_CONFEXT_OVERLAYFS_MOUNT_OPTIONS для настройки параметров монтирования Overlayfs.

  • В systemd-udevd добавлена настройка OPTIONS=«dump-json» для вывода состояния текущего события в формате JSON. В функции net_id реализована генерация предсказуемых имён беспроводных сетевых интерфейсов на системах с DeviceTree. Обеспечена генерация символических ссылок /dev/gpio/by-id/… для устройств GPIO.

  • В команду «homectl update» добавлена возможность использования опции »--recovery-key» для добавления запасных ключей к существующей учётной записи пользователя (ранее подобные ключи могли добавляться только во время создания пользователя).

  • В systemd-homed добавлены опции »--prompt-shell» и »--prompt-groups» для интерактивного выбора командной оболочки и группы во время первой загрузки с использованием сервиса systemd-homed-firstboot.service. В systemd-firstboot добавлена опция »--prompt-keymap-auto» для запроса раскладки клавиатуры при работе через локальную консоль во время первой загрузки.

  • В systemd-boot добавлена возможность выставления уровня детализации логов через параметр log-level в loader.conf или SMBIOS-поле io.systemd.boot.loglevel.

  • В systemd-networkd для DHCP-сервера добавлены опции EmitDomain и Domain, а также реализован обработчик для определения отдаваемых через DHCP имён хостов через DNS-резолвинг.

  • В systemd-run добавлена опция »--root-directory» для запуска сервиса в указанном корневом каталоге. В systemd-run и run0 добавлена опция »--same-root-dir» (»-R») для запуска сервиса в том же корневом каталоге, что и у запускающего.

  • В systemd-modules-load реализовано распараллеливание загрузки модулей ядра.
  • В systemd-integrity-setup добавлена поддержка алгоритмов HMAC-SHA256, PHMAC-SHA256 и PHMAC-SHA512.



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

OpenNet прочитано 2200 раз