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

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3571
Зарегистрирован: 20.08.2022

#

Выпуск системного менеджера systemd 257
Дата публикации:Wed, 11 Dec 2024 12:11:34 +0300




После полугода разработки представлен релиз системного менеджера systemd 257. Ключевые изменения: новые утилиты systemd-sbsign и systemd-keyutil, поддержка MPTCP при активации по сокету, начальная поддержка сборки с Си-библиотекой Musl, утилита updatectl для управления установкой обновлений через systemd-sysupdate, возможность запуска сервисов в отдельных PID namespace, защита от случайного удаления файлов при использовании "systemd-tmpfiles --purge".






Среди изменений в новом выпуске:
  • Добавлена новая утилита systemd-sbsign для заверения цифровой подписью исполняемых файлов в формате PE (Portable Executable), предназначенных для использования при загрузке в режиме EFI Secure Boot. Для формирования подписи могут использоваться движки и провайдеры, предоставляемые библиотекой OpenSSL. Systemd-sbsign может применяться в качестве альтернативы приложениям sbsigntool и pesign в утилите ukify при формировании универсальных образов ядра UKI (Unified Kernel Image), объединяющих в одном файле загрузчик для UEFI (UEFI boot stub), образ ядра Linux и загружаемое в память системное окружение initrd.


    Добавлена новая утилита systemd-keyutil, реализующая различные операции над закрытыми ключами и сертификатами X.509. Например, systemd-keyutil может использоваться для проверки возможности загрузки закрытых ключей и сертификатов, а так же извлечения из них открытых ключей в формате PEM.


    В unit-ах ".socket", используемых для обеспечения работы механизма активации по сокету (запуск процессов при попытке установки сетевого соединения), реализована поддержка MPTCP (Multipath TCP), расширения протокола TCP для организации работы TCP-соединения с доставкой пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, привязанные к разным IP-адресам.

    В состав включены изменения, необходимые для сборки с использованием стандартной Си-библиотеки Musl.

    В различные компоненты systemd, выводящие индикаторы прогресса выполнения операций (например, systemd-repart, systemd-sysupdate/updatectl и importctl), добавлена возможность использования ANSI-последовательностей для анимирования отображения прогресса. Подобные последовательности пока поддерживаются только в Windows Terminal (предполагается, что со временем подобная возможность будет перенесена и в эмуляторы терминалов для Linux).

    Расширены возможности компонента systemd-sysupdate, применяемого для автоматического определения, загрузки и установки обновлений с использованием атомарного механизма замены разделов, файлов или каталогов (используются два независимых раздела/файла/каталога, на одном из которых находится текущий работающий ресурс, а на другом устанавливается очередное обновление, после чего разделы/файлы/каталоги меняются местами). На практике, systemd-sysupdate уже применяется в GNOME OS.


    В дополнение к процессу systemd-sysupdate добавлен одноимённый сервис, позволяющий использовать D-Bus для управления обновлением системы непривилегированным пользователем. Для управления сервисом в состав также включена новая утилита updatectl. В systemd-sysupdate добавлен флаг "--offline" для запрета загрузки метаданных по сети и использования только уже загруженных на локальную систему версий. Для всех команд добавлена поддержка вывода в формате JSON.


    Для сервисов реализовано новое свойство "PrivatePIDs", при помощи которого можно организовать запуск процессов с PID 1 (init-процесс) в отдельном пространстве идентификаторов процессов (PID namespace). В создаваемом для запускаемого процесса окружении будут видны только процессы из созданного для него пространства имён.

    В правила udev добавлена поддержка сопоставлений без учёта регистра символов
    (например, 'ATTR{foo}==i"abcd"'). Через udev реализовано предоставление непривилегированным локальным пользователям доступа ("uaccess") к устройству /dev/udmabuf, которое необходимо для работы с IPMI-камерами через libcamera. В udev обеспечено распознание различных аппаратных криптокошельков с интерфейсом USB и выставление для них свойства ID_HARDWARE_WALLET, что позволяет применить к ним режим "uaccess" для доступа непривилегированных пользователей.

    В файл /etc/os-release добавлены новые поля RELEASE_TYPE, EXPERIMENT и EXPERIMENT_URL. "RELEASE_TYPE" может принимать значения "experimental", "development", "stable" и "lts" для отделения стабильных версий от находящихся в разработке и экспериментальных сборок. Параметры EXPERIMENT и EXPERIMENT_URL предназначены для пояснения сути экспериментальной сборки.

    В утилиту run0, развиваемую в качестве замены программы sudo, добавлена опция "--shell-prompt-prefix", определяющая строку-префикс приглашения командной оболочки. По умолчанию в качестве префикса выводится emoji "🦸" для визуального выделения сеанса с повышенными привилегиями.

    В systemd-tmpfiles во избежание ошибочного удаления не тех файлов опция "--purge" теперь применяется только к настройкам в tmpfiles.d/, для которых явно выставлен флаг "$". Для выполнения операции "--purge" также теперь требуется указания как минимум одного файла из каталога tmpfiles.d/. Для строк с типом 'L' добавлен флаг '?', при указании которого символическая ссылка будет создана только при наличии целевого файла.












    В сервисном менеджере и сопутствующих утилитах продолжен перевод кода отслеживания процессов на использование PIDFD вместо PID. Идентификатор PIDFD связывается с конкретным процессом и не меняется, в том время как PID может быть привязан к другому процессу после завершения текущего процесса, ассоциированного с этим PID.

    Для сервисов реализована возможность указания в параметре "RestartMode" значения "debug", при котором перезапуск сбойного сервиса будет выполнен с включением отладочного режима (выставляется переменная окружения DEBUG_INVOCATION=1), а значение LogLevelMax будет временно повышено до отладочного уровня.


    В обработчике PID 1 реализована возможность загрузки правил для LSM-модуля IPE (Integrity Policy Enforcement), определяющих политику обеспечения целостности для всей системы (какие операции допустимы и каким способом следует верифицировать подлинность компонентов).


    В unit-файлы ".timer" добавлена опция "DeferReactivation", позволяющая пропустить очередную активацию по таймеру, если сервис ещё не завершил своё выполнение со времени прошлой активации.

    В параметре unit-файлов PrivateUsers реализована возможность указания значения "identity" для включения маппинга идентификаторов пользователей при создании пространства имён (user namespace).

    В параметр unit-файлов PrivateTmp добавлена поддержка значения "disconnected", при котором для каталогов /tmp/ и /var/tmp/ будут задействованы отдельные экземпляры tmpfs.

    В параметр unit-файлов ProtectControlGroups добавлена поддержка новых режимов "private" и "strict", при выставлении которых для сервиса создаётся новое пространство имён cgroup (cgroup namespace) и монтируется cgroupfs. При выставлении опции "strict" монтирование cgroupfs производится в режиме только для чтения.

    В параметрах StateDirectory, RuntimeDirectory, CacheDirectory,
    LogsDirectory и ConfigurationDirectory предоставлена возможность использования флага ':ro' для ограничения доступа к соответствующим каталогам режимом только для чтения.

    В параметр командной строки ядра "systemd.machine_id" добавлена поддержка значения "firmware", при котором идентификатор системы (machine ID) будет вычислен на основе UUID из SMBIOS/DeviceTree.

    Добавлена поддержка системных вызовов mseal(), listmount() и statmount(), появившихся в недавних выпусках ядра Linux.


    В утилиты resolvectl, timedatectl и systemd-inhibit добавлена поддержка интерактивной авторизации при помощи Polkit.

    В утилиту systemctl добавлена возможность использования флага "--now" в команде "reenable".

    В утилиту systemd-mount добавлена опция "--json" для вывода в формате JSON (например, при указании вместе с "--list-devices" в формате JSON будет выведен список устройств).

    В утилиту "localectl" добавлены опции "-l" и "--full" для отключения обрезки длинных строк при выводе.


    В sleep.conf добавлена опция HibernateOnACPower позволяющая отложить переключение в спящий режим до отключения устройства от стационарного источника питания.

    В systemd-sysusers в строки "u" добавлена поддержка модификатора "!", при помощи которого можно создавать полностью заблокированные учётные записи пользователей (ранее для блокировки пользователя использовалась установка некорректного пароля, что, например, не приводило к блокировке при аутентификации по ключам в SSH).

    В systemd-coredump добавлена опция "EnterNamespace", предоставляющая доступ к пространству точек монтирования любых аварийно завершённых процессов для получения их отладочных символов. На практике опция может быть полезной для организации обратной трассировки (backtrace) core-файлов от приложений, запускаемых в изолированных контейнерах.

    В systemd-logind включена обработка комбинации Ctrl-Alt-Shift-Esc для отправки компонентам пользовательского окружения сигнала org.freedesktop.login1.SecureAttentionKey с запросом вывода диалога безопасного входа в систему. Реализована настройка "DesignatedMaintenanceTime" для автоматического планирования завершения работы в заданное время. По аналогии с поддержкой устройств DRM и evdev добавлена поддержка настройки доступа непривилегированных пользователей к устройствам hidraw (игровые контроллеры и джойстики).


    В systemd-machined добавлена поддержка регистрации непривилегированными клиентами виртуальных машин и контейнеров. Предоставлен доступ к функциональности systemd-machined через API Varlink, помимо D-Bus.




    В файл конфигурации networkd.conf добавлена новая секция "[IPv6AddressLabel]" для настройки меток и префиксов для адресов IPv6

    В команду 'networkctl edit' добавлена опция "--stdin" для получения содержимого файла из стандартного потока. В команды 'networkctl edit' и 'networkctl cat' добавлена поддержка редактирования и отображения файлов .netdev через указание сетевого интерфейса. Добавлена опция "--no-ask-password" для отключения интерактивной авторизации.


    В утилиты ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart, и systemd-sbsign добавлена опция "--certificate-source" для загрузки сертификата X.509 через провайдер OpenSSL вместо прямой загрузки из файла.

    В systemd-boot добавлена возможность использования кнопок управления громкостью для перемещения вверх и вниз по загрузочному меню, что может быть полезным на таких устройствах, как смартфоны. В утилиту bootctl добавлена поддержка установки БД UEFI Secure Boot в формате ESL(db/dbx/...) для systemd-boot.


    В journalctl добавлена опция "--list-invocation" для показа списка вызовов unit-ов и опция "--invocation" ("-I") для показа логов, связанных только с определённым вызовом.


    В systemd-nspawn добавлена поддержка непривилегированного использования FUSE (Filesystem in Userspace) в контейнерах. При использовании опции "--bind-user" обеспечен проброс в контейнер SSH-ключей пользователя, необходимых для доступа по SSH.

    В libsystemd добавлен новый программный интерфейс "sd-json", использующий формат JSON, а также интерфейс "sd-varlink", использующий IPC Varlink.

    Рекомендованная базовая версия ядра повышена до выпуска 5.4, сформированного в 2019 году. В следующем году планируют прекратить поддержку более старых ядер и отметить выпуск 5.4 в качестве минимально поддерживаемой базовой версии.

    Поддержка cgroups v1 признана устаревшей и по умолчанию отключена (для включения в командной строке ядра необходимо указать SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 в дополнение к активации в настройках systemd). В следующем выпуске systemd 258 планируется полностью удалить код, связанный с cgroups v1. В версии systemd 258 также
    намечено удаление поддержки скриптов сервисов System V.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=62380

Жизнь за Нер'зула!

Ответить