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

После пяти месяцев разработки представлен релиз системного менеджера systemd 251.

Основные изменения:

  • Повышены системные требования. Минимальная поддерживаемая версия ядра Linux увеличена с 3.13 до 4.15. Для работы требуется наличие таймера CLOCK_BOOTTIME. Для сборки необходим компилятор с поддержкой стандарта C11 и расширений GNU (для заголовочных файлов продолжает использоваться стандарт C89).
  • Добавлена экспериментальная утилита systemd-sysupdate для автоматического определения, загрузки и установки обновлений с использованием атомарного механизма замены разделов, файлов или каталогов (используются два независимых раздела/файла/каталога, на одном из которых находится текущий работающий ресурс, а на другом устанавливается очередное обновление, после чего разделы/файлы/каталоги меняются местами).
  • Представлена новая внутренняя разделяемая библиотека libsystemd-core-<version>.so, которая устанавливается в каталог /usr/lib/systemd/system и соответствует существующей библиотеке libsystemd-shared-<version>.so. Использование разделяемой библиотеки libsystemd-core-<version>.so позволяет сократить общий установочный размер за счёт повторного использования бинарного кода. Номер версии может задаваться через параметр ‘shared-lib-tag’ в сборочной системе meson и даёт возможность дистрибутивам одновременно поставлять несколько версий данных библиотек.
  • Реализована передача в обработчики OnFailure/OnSuccess переменных окружения $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID и $MONITOR_UNIT с информации об отслеживаемом юните.
  • Для unit-ов реализована настройка ExtensionDirectories, которую можно использовать для организации загрузки компонентов расширения системы (System Extension) из обычных каталогов, а не дисковых образов. Содержимое каталога расширения системы накладывается при помощи OverlayFS и применяется для расширения иерархии каталогов /usr/ и /opt/, и добавления дополнительных файлов во время работы, даже если указанные каталоги примонтированы в режиме только для чтения. В команду ‘portablectl attach —extension=’ также добавлена поддержка указания каталога.
  • Для unit-ов, принудительно завершённых обработчиком systemd-oomd из-за нехватки памяти в системе, обеспечена передача признака ‘oom-kill’ и отражение в атрибуте ‘user.oomd_ooms’ числа принудительных завершений.
  • Для unit-ов добавлены новые спецификаторы путей %y/%Y, отражающие нормализованный путь к юниту (с раскрытием символических ссылок). Также добавлены спецификаторы %q для подстановки значения PRETTY_HOSTNAME и %d для подстановки CREDENTIALS_DIRECTORY.
  • В непривилегированных сервисах, запускаемых обычным пользователем с использованием флага «—user», разрешено изменение настроек RootDirectory, MountAPIVFS, ExtensionDirectories, *Capabilities*, ProtectHome, *Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath, PrivateUsers, ProtectClock, ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs и MountFlags. Возможность доступна только при включении в системе пространства имён идентификаторов пользователя (user namespaces).
  • В настройке LoadCredential разрешено указание имени каталога в качестве аргумента, в этом случае предпринимается попытка загрузки учётных данных из всех файлов в указанном каталоге.
  • В systemctl в параметре «—timestamp» появилась возможность указания флага «unix» для показа времени в эпохальном формате (число секунд с 1 января 1970 года).
  • В «systemctl status» реализован флаг «old-kernel», показываемый если загруженное в сеансе ядро имеет более старый номер версии, чем доступное в системе базовое ядро. Также добавлен флаг «unmerged-usr» для определения, что содержимое каталогов /bin/ и /sbin/ сформировано не через символические ссылки на /usr.
  • Для запускаемых процессом PID 1 генераторов предоставлены новые переменные окружения $SYSTEMD_SCOPE (запуск из системного или пользовательского сервиса), $SYSTEMD_IN_INITRD (запуск из initrd или хост-окружения), $SYSTEMD_FIRST_BOOT (индикатор первой загрузки), $SYSTEMD_VIRTUALIZATION (наличие виртуализации или запуска в контейнере) и $SYSTEMD_ARCHITECTURE (архитектура, для которой собрано ядро).
  • В обработчике PID 1 реализована возможность загрузки параметров системных учётных данных из QEMU-интерфейса fw_cfg или через указание в командной строке ядра параметра systemd.set_credential. В директиве LoadCredential обеспечен автоматический поиск учётных данных в каталогах /etc/credstore/, /run/credstore/ и /usr/lib/credstore/, если в качестве аргумента указан относительный путь. Аналогичное поведение применено для директивы LoadCredentialEncrypted, в которой дополнительно проверяются каталоги /etc/credstore.encrypted/, /run/credstore.encrypted/ и /usr/lib/credstore.encrypted/.
  • В systemd-journald стабилизирована возможность экспорта в формате JSON. В командах «journalctl —list-boots» и «bootctl list» добавлена поддержка вывода в формате JSON (флаг «—json»).
  • В udev добавлены новые файлы с базами данных hwdb, содержащие сведения о портативных устройствах (КПК, калькуляторы и т.п.) и устройствах, применяемых при создании звука и видео (DJ-пульты, кейпады).
  • В udevadm добавлены новые опции «—prioritized-subsystem» для задания приоритета следования систем (используется в systemd-udev-trigger.service для обработки в первую очередь блочных устройств и TPM), «—type=all», «—initialized-match» и «—initialized-nomatch» для выбора инициализированных или неинициализированных устройств, «udevadm info —tree» для показа дерева объектов в иерархии /sys/. В udevadm также добавлены новые команды «wait» и «lock» для ожидания появления в БД записи об устройстве и блокировки блочного устройства во время форматирования или записи таблицы разделов.
  • Добавлен новый набор символических ссылок на устройства /dev/disk/by-diskseq/<nr> для идентификации блочных устройств по порядковому номеру («diskseq»).
  • В файлы .link в секции [Match] добавлена поддержка параметра «Firmware» для сопоставления устройства по строке с описанием прошивки.
  • В systemd-networkd для unicast-маршрутов, настраиваемых через секцию [Route], значение scope изменено по умолчанию на «link» для соответствия поведению команды «ip route». В секцию [Bridge] добавлен параметр Isolated=true|false для настройки одноимённого атрибута сетевых мостов в ядре. В секции [Tunnel] добавлен параметр External для установки туннелю типа external (режим сбора метаданных). В секции [DHCPServer] добавлены параметры BootServerName, BootServerAddress и BootFilename для настройки адреса сервера, имени сервера и имени загрузочного файла, отправляемых сервером DHCP при загрузке в режиме PXE. В секции [Network] удалён параметр L2TP, вместо которого в .netdev файлах можно использовать новую настройку Local в привязке к интерфейсу L2TP.
  • Добавлен новый юнит «[email protected]<interface>.service», который можно использовать для ожидания поднятия определённого сетевого интерфейса.
  • Реализована возможность использования файлов .netdev для создания виртуальных устройств WLAN для настройки которых предложена секция [WLAN].
  • В файлах .link/.network в секции [Match] реализован параметр Kind для сопоставления по типу устройства («bond», «bridge», «gre», «tun», «veth»).
  • Обеспечен запуск systemd-resolved на более раннем этапе загрузки, в том числе реализован запуск из initrd при наличии systemd-resolved в образе initrd.
  • В systemd-cryptenroll добавлена опция —fido2-credential-algorithm для выбора алгоритма шифрования учётных данных и опция —tpm2-with-pin для управления вводом PIN-кода при разблокировке раздела с использованием TPM. В /etc/crypttab добавлена аналогичная опция tpm2-pin. При разблокировке устройств через TPM обеспечено шифрование параметров для защиты от перехвата ключей шифрования.
  • В systemd-timesyncd добавлен D-Bus API для динамического получения информации с NTP-сервера через IPC.
  • Для определения необходимости цветного вывода во всех командах реализована проверка переменной окружения COLORTERM в дополнение к ранее проверяемым NO_COLOR, SYSTEMD_COLORS и TERM.
  • В сборочной системе Meson реализована опция install_tag для выборочной сборки и установки необходимых компонентов: pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev. Добавлена сборочная опция default-compression для выбора алгоритма сжатия для systemd-journald и systemd-coredump.
  • В sd-boot в loader.conf добавлена экспериментальная настройка «reboot-for-bitlocker» для загрузки Microsoft Windows с BitLocker TPM.

Источник: opennet.ru

Добавить комментарий