systemd 259: поддержка Musl, run0 empower и прощание с System V

Ключевые моменты:
  • Частичная поддержка библиотеки Musl libc (требуется ручная настройка в Meson).
  • Команда run0 --empower позволяет выполнять привилегированные действия без изменения UID пользователя.
  • Подтверждено прекращение поддержки скриптов System V и повышены требования к ядру (версия 5.10+).
  • Теперь libsystemd загружает внешние библиотеки с помощью функции dlopen() для уменьшения зависимостей.
  • Теперь хранение журнальных записей по умолчанию является «постоянным».

Systemd

После чуть более чем трех месяцев разработки, запуск новая версия Кирилл 259. В этом обновлении внесены изменения в архитектуру системы, подчеркиваются открытость для альтернативных стандартных библиотек, более строгое управление привилегиями и более жесткие технические требования для будущих версий.

Одним из наиболее обсуждаемых направлений в этом цикле является переход к большей модульности и устранение устаревших зависимостей, что прокладывает путь к экосистеме Linux, которая определенно отходит от стандартов прошлых десятилетий.

Основные новые возможности systemd 259

Новая версия systemd 259 выделяется тем, что... первая версия, добавляющая частичную совместимость с Musl— популярная стандартная библиотека C, используемая в легковесных дистрибутивах и встраиваемых системах. Эта интеграция Управление осуществляется через опцию libc в системе сборки Meson. Однако, поскольку Musl не поддерживает функциональность NSS (Name Service Switch), в этой конфигурации ряд компонентов systemd остаются отключенными.

Среди азаметные отсутствия при компиляции с помощью Musl найденный nss-systemd, nss-resolve, systemd-homed, systemd-userdbd и параметр DynamicUserКроме того, запуск systemd-nspawn без привилегий в рамках этой библиотеки невозможен. Разработчики предупредили, что сохранение этой поддержки в будущих версиях будет зависеть от спроса со стороны сообщества и стабильности любых дополнительных слоев совместимости, которые будут разработаны.

Ещё одной новой функцией новой версии является в утилите run0разработанная как современная и безопасная альтернатива sudo, которая получила новый вариант – расширение возможностей. Эта функция Это позволяет вам войти в систему с повышенными привилегиями. без необходимости изменять идентификатор пользователя (UID) на root.

Кроме того, вместо того, чтобы делегировать полный контроль При переключении пользователей параметр –empower использует индикаторы возможностей ядра, такие как CAP_SYS_ADMIN. выдать строго необходимые разрешения для выполнения привилегированных системных вызовов. Кроме того, полученные процессы интегрируются в определенную группу, которая предоставляет им доступ к действиям Polkit, обеспечивая более надежное разделение привилегий, чем традиционная модель sudo.

Конец эпохи: прощай, System V и новые требования.

Введение systemd версии 259 знаменует начало конца для совместимость с Скрипты службы System VБыло объявлено, что в следующей версии устаревшие компоненты, такие как systemd-sysv-generator, systemd-rc-local-generator и systemd-sysv-install, будут удалены навсегда.

Наряду с очисткой устаревшего кода, были значительно повышены минимальные программные требования для экосистемы systemd:

  • Ядро Linux: минимальная версия 5.10.
  • Glibc: 2.34.
  • OpenSSL: 3.0.0.
  • Util-linux: 2.37.
  • Другое: Python 3.9.0, cryptsetup 2.4.0 и libseccomp 2.4.0.

Модульность и динамическая загрузка в libsystemd

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

El В настройках обработки журналов по умолчанию изменена конфигурация: режим хранения журнала (журнал) изменения с «автоматического» на «постоянный»независимо от того, существовал ли ранее каталог /var/log/journal.

В области сетей и виртуализации:

  • systemd-networkd и systemd-nspawn: Поддержка правил NAT с использованием iptables удалена, поэтому единственным совместимым вариантом остается nftables.
  • systemd-resolved: Теперь разрешено использовать локальные обработчики (хуки) в файле /run/systemd/resolve.hook/ для вмешательства в запросы на разрешение имен.
  • systemd-importd: Логика работы с TAR-файлами интегрирована изначально. Кроме того, команды `importd` и `machined` теперь могут запускаться на уровне пользователя, что позволяет управлять образами в локальном каталоге пользователя (`~/.local/state/machines/`).

Другие инновации

API на основе протокола Компания Varlink получила обновления, позволяющие получить доступ к настройкам сервиса и совершать межпроцессные вызовы. например, Reload() и Reexecute(). Для системных администраторов включение свойства OOMKills в службы будет очень полезно, поскольку позволит им отслеживать, сколько раз процесс был завершен из-за нехватки памяти, непосредственно с помощью инструментов systemd.

Наконец, процесс загрузки системы становится более современным благодаря отказу от поддержки TPM 1.2 в systemd-boot, и все усилия по обеспечению безопасности сосредотачиваются на стандарте TPM 2.0.

Если вы хотите узнать больше об этом, вы можете проконсультироваться подробности по следующей ссылке.