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

12 апреля 2019 года

После двух месяцев разработки представлен релиз системного менеджера systemd 242. Из новшеств можно отметить поддержку туннелей L2TP, возможность управления поведением systemd-logind при перезапуске через переменные окружения, поддержку расширенных загрузочных разделов XBOOTLDR для монтирования /boot, возможность загрузки с корневым разделом в overlayfs, а также большое число новых настроек для разных типов юнитов.

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

  • В systemd-networkd обеспечена поддержка туннелей L2TP;
  • В sd-boot и bootctl реализована поддержка разделов XBOOTLDR (Extended Boot Loader), предназначенных для монтирования в /boot, в дополнение к разделам ESP, монтируемым в /efi или /boot/efi. Ядра, настройки, образы initrd и EFI теперь могут загружаться как из разделов ESP, так и из разделов XBOOTLDR. Указанное изменение позволяет использовать загрузчик sd-boot в более консервативных сценариях, когда сам загрузчик размещён в ESP, а загружаемые ядра и связанные с ними метаданные вынесены в отдельный раздел;
  • Добавлена возможность загрузки с передачей ядру опции "systemd.volatile=overlay", что позволяет разместить корневой раздел в overlayfs и организовать работу поверх доступного только для чтения образа корневого каталога с записью изменений в отдельный каталог в tmpfs (изменения в такой конфигурации теряются после перезапуска). По аналогии в systemd-nspawn добавлена опция "--volatile=overlay" для использования подобной функциональности в контейнерах;
  • В systemd-nspawn добавлена опция "--oci-bundle", позволяющая использовать наборы runtime для обеспечения изолированного запуска контейнеров, соответствующих требованиям спецификации Open Container Initiative (OCI). Для использования в командной строке и nspawn-юнитах предложена поддержка различных опций, описанных в спецификации OCI, например, для исключения частей файловой системы могут использоваться настройки "--inaccessible" и "Inaccessible", а для настройки стандартных потоков вывода добавлены опции "--console" и "--pipe";
  • Добавлена возможность управления поведением systemd-logind через переменные окружения: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,

$SYSTEMD_REBOOT_ TO_BOOT_LOADER_MENU и $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. При помощи данных переменных можно подключить свои обработчики процесса перезагрузки (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu и /run/systemd/reboot-to-boot-loader-entry) или вообще отключить их (при выставлении значения в false);

  • В команду "systemctl reboot" добавлены опции "--boot-load-menu=" и

"--boot-loader-entry=", позволяющие после перезагрузки выбрать конкретный пункт загрузочного меню или загрузочный режим;

  • Добавлена новая команда sandbox-изоляции "RestrictSUIDSGID=", использующая seccomp для запрета создания файлов с флагами SUID/SGID;
  • Обеспечено применение по умолчанию ограничений "NoNewPrivileges" и "RestrictSUIDSGID" в сервисах с включенным режимом динамической генерации идентификатора пользователя ("DynamicUser");
  • Применяемая по умолчанию в .link-файлах настройка MACAddressPolicy=persistent изменена для охвата большего числа устройств. Интерфейсы сетевых мостов, туннелей (tun, tap) и агрегированных линков (bond) не идентифицируют себя кроме как по имени сетевого интерфейса, поэтому данное имя теперь используется в качестве основы для привязки MAC и IPv4-адресов. Кроме того, добавлена настройка "MACAddressPolicy=random", которую можно использовать для привязки MAC и IPv4-адресов к устройствам в случайном порядке;
  • Генерируемые через systemd-fstab-generator юнит-файлы ".device" теперь не включают соответствующие юниты ".mount" в качестве зависимостей в секции "Wants=". Простое подключение устройства теперь не приводит к автоматическому запуску юнита для монтирования, но подобные юниты по-прежнему могут запускаться по другим причинам, например, как часть local-fs.target или как зависимость от других юнитов, зависимых от local-fs.target;
  • В команды "networkctl list/status/lldp" добавлена поддержка масок ("*" и т.п.) для отсеивания определённых групп сетевых интерфейсов по части их имени;
  • Переменная окружения $PIDFILE теперь устанавливается с использованием абсолютного пути, настроенного в сервисах через параметр "PIDFile=;
  • В число резервных DNS-серверов, используемых если явно не определён основной DNS, добавлены публичные серверы Cloudflare (1.1.1.1). Для переопределения списка резервных DNS-серверов можно использовать опцию "-Ddns-servers=";
  • При выявлении наличия контроллера USB-устройства (USB Device Controller) обеспечен автоматический запуск нового обработчика usb-gadget.target (когда система работает на периферийном устройстве USB);
  • Для unit-файлов реализована настройка "CPUQuotaPeriodSec=", определяющая период времени, относительно которого измеряется квота на процессорное время, задаваемая через настройку "CPUQuota=";
  • Для unit-файлов реализована настройка "ProtectHostname=", запрещающая сервисам изменять информацию об имени хоста, даже при наличии соответствующих полномочий;
  • Для unit-файлов реализована настройка "NetworkNamespacePath=", позволяющая привязать пространство имён к сервисам или socket-юнитам через указание пути к файлу пространства имён в псевдо-ФС /proc;
  • Добавлена возможность отключения подстановки переменных окружения процессам, запускаемым при помощи настройки "ExecStart=", через добавление символа ":" перед командой запуска;
  • Для таймеров (юниты .timer) предложены новые флаги "OnClockChange=" и

"OnTimezoneChange=", при помощи которых можно управлять вызовом юнита при изменении системного времени или часового пояса;

  • Добавлены новые настройки "ConditionMemory=" и "ConditionCPUs=", определяющие условия вызова юнита в зависимости от размера памяти и числа ядер CPU (например, ресурсоёмкий сервис можно запускать только если имеется необходимый объем ОЗУ);
  • Добавлен новый юнит time-set.target, принимающий локально установленное системное время, без использования сверки с внешними серверами точного времени при помощи юнита time-sync.target. Новый юнит может быть использован сервисами, которым достаточно точности не синхронизированных локальных часов;
  • В "systemctl start" и подобные команды добавлена опция "--show-transaction", при указании которой выводится сводка о всех работах, добавленных очередь из-за запрошенной операции;
  • В systemd-networkd реализовано определение нового состояния 'enslaved', используемого вместо 'degraded' или 'carrier' для сетевых интерфейсов, входящих в состав агрегированных линков или сетевых мостов. Для первичных интерфейсов в случае проблем с одним из составных линков добавлено состояние 'degraded-carrier';
  • В юниты .network добавлена опция "IgnoreCarrierLoss=" для сохранения сетевых настроек в случае обрыва связи;
  • Через настройку "RequiredForOnline=" в юнитах .network теперь можно задать минимально допустимое состояние линка, необходимое для перевода сетевого интерфейса в "online" и срабатывания обработчика systemd-networkd-wait-online;
  • В systemd-networkd-wait-online добавлена опция "--any" для ожидания готовности любого из указанных сетевых интерфейсов вместо всех, а также опция "--operational-state=" для определения состояния линка, свидетельствующего о готовности;
  • В .network юниты добавлены настройки "UseAutonomousPrefix=" и "UseOnLinkPrefix=", которые можно использовать для игнорирования префиксов при получении

анонса от маршрутизатора IPv6 (RA, Router Advertisement);

  • В .network юниты добавлены настройки "MulticastFlood=", "NeighborSuppression=" и "Learning=" для изменения параметров работы сетевого моста, а также настройка "TripleSampling=" для изменения режима TRIPLE-SAMPLING виртуальных интерфейсов CAN;
  • В .netdev юниты добавлены настройки "PrivateKeyFile=" и "PresharedKeyFile=", при помощи которых можно указать закрытый и разделяемый (PSK) ключи для интерфейсов WireGuard VPN;
  • В /etc/crypttab добавлены опции same-cpu-crypt и submit-from-crypt-cpus, управляющие поведением планировщика при миграции между ядрами CPU работ, связанных с шифрованием;
  • В systemd-tmpfiles обеспечена обработка файла блокировки перед выполнением операций в каталогах со временными файлами, что позволяет на время выполнения определённых действий отключить работу по чистке устаревших файлов (например, при распаковке tar-архива в /tmp могут быть раскрыты очень старые файлы, которые нельзя удалять до окончания действия с ними);
  • В команде "systemd-analyze cat-config" обеспечена возможность анализа конфигурации, разнесённой на несколько файлов, например, пользовательские и системные преднастройки, содержимое tmpfiles.d и sysusers.d, правила udev и т.п.
  • В "journalctl" добавлена опция "--cursor-file=" для определения файла для загрузки и сохранения указателя позиции;
  • В systemd-detect-virt добавлено определение гипервизора ACRN и подсистемы WSL ( Windows Subsystem for Linux) для последующего ветвления при помощи условного оператора "ConditionVirtualization";
  • Во время установки systemd (при выполнении "ninja install") прекращено создание в каталоге /etc символических ссылок на файлы systemd-networkd.service, systemd-networkd.socket,

systemd-resolved.service, remote-cryptsetup.target, remote-fs.target, systemd-networkd-wait-online.service и systemd-timesyncd.service. Для создания данных файлов теперь необходимо выполнить команду "systemctl preset-all".

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск системного менеджера systemd 242», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.