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

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
28-Ноя-2020 18:30

После четырёх месяцев разработки представлен релиз системного менеджера systemd 247. В новом выпуске добавлен экспериментальный обработчик нехватки памяти, проведено нарушающее совместимость обновление правил udev, в systemd-homed по умолчанию задействована ФС Btrfs, предложен механизм для безопасной передачи конфиденциальных данных в сервисы, стабилизирована утилита systemd-dissect.
Основные изменения:
  • В правила udev внесены нарушающие обратную совместимость изменения, необходимые для корректной реализации в udev uevent-событий "bind" и "unbind", внесённых в модель устройств ядра Linux 4.14 и обычно генерируемых для USB-устройств и устройств для которых необходимо до начала работы загрузить прошивку. Для использования нового systemd-udevd дистрибутивам потребуется обновить правила udev, заменив вызовы 'ACTION!="add|change",GOTO="xyz_end"' на 'ACTION=="remove",GOTO="xyz_end"'. Помимо изменения поставляемых в разных пакетах правил udev, изменения также необходимо будет внести в различные программы мониторинга, библиотеки и утилиты, работающие с правилами udev.
    Утверждается, что необходимость подобного изменения обусловлена не проблемами в systemd или udev, а нарушающим совместимость изменением в ядре Linux, которое привело к тому, что всё больше и больше драйверов используют события "bind" и "unbind", для поддержки которых требуется кардинальное изменение логики обработки событий. В качестве решения в systemd-udevd полностью переработана концепция тегов, позволяющих помечать и фильтровать устройства в процессе их отслеживания. Теги udev теперь жёстко привязываются к устройству и не могут быть удалены до того, как само устройство будет удалено. Такая мера гарантирует, что приложения смогут получить uevent для тегов, после применения вызова "unbind", так как тег теперь связывается не с событием устройства, а с самим устройством, и не меняется после нового события.
  • Добавлена экспериментальная поддержка раннего реагирования на нехватку памяти в системе (systemd-oomd), реализованная на базе обработчика oomd, который развивает компания Facebook. Oomd использует подсистему ядра PSI (Pressure Stall Information), позволяющую в пространстве пользователя проанализировать информацию о времени ожидания получения различных ресурсов (CPU, память, ввод/вывод) для точной оценки уровня загруженности системы и характера замедления работы.
    PSI позволяет выявить начало возникновения задержек из-за нехватки ресурсов и выборочно завершить работу ресурсоёмких процессов на стадии, когда система ещё не находится в критическом состоянии и не начинает интенсивно урезать кэш и вытеснять данные в раздел подкачки. Для управления предложена утилита oomctl. В unit-ах, допускающих ограничение ресурсов (.service, .mount, .swap, .slice, .socket и .slice), реализованы настройки ManagedOOMSwap, ManagedOOMMemoryPressure и ManagedOOMMemoryPressureLimitPercent.
  • В системных сервисах предложена (задействована в systemd-nspawn) новая логика безопасной передачи конфиденциальных данных, таких как пароли и ключи шифрования, а также сопутствующей информации, например, имён пользователей и сертификатов. Для организации передачи данных предложено два параметра SetCredential и LoadCredential, а сами учётные данные передаются через промежуточные файлы в отдельном каталоге, определяемом через переменную окружения $CREDENTIALS_DIRECTORY.
  • При создании домашних каталогов в разделах LUKS при помощи сервиса systemd-homed, обеспечивающем управление переносимыми домашними каталогами, по умолчанию теперь используется файловая система Btrfs. Для изменения типа ФС можно воспользоваться параметром DefaultFileSystemType в homed.conf. Отмечается, что в отличие от ext4 и xfs, применение Btrfs позволяет не только увеличивать, но и уменьшать размер примонтированного раздела.
  • В JSON-профили пользователей systemd-homed добавлена поддержка ключей восстановления, включающих автоматически сгенерированные запасные парольные фразы для разблокировки учётной записи или домашнего каталога, на случай потери токена FIDO2 или PKCS#11. Для прикрепления ключа восстановления к учётной записи предложена опция "--recovery-key", а сам ключ отображается в форме QR-кода для его сканирования и сохранения в надёжном месте.
  • Для каждого шифрованного каталога LUKS в systemd-homed реализована обработка флага "dirty", который сигнализирует, что каталог не был отключён должным образом, т.е. перед отключением не была запущена чистка освобождённых блоков.
  • Стабилизирован и размещён в /usr/bin инструмент systemd-dissect, выполняющий работу по разбору дисковых образов в соответствии с Bootable Partition Specification, по аналогии с systemd-nspawn. systemd-dissect может применяться для монтирования в локальную директорию дисковых образов со сложной раскладкой разделов (например, включающих разделы LUKS и Verity). В новом выпуске systemd-dissect также предложен новый параметр "--mkdir", который при указании в комбинации с параметром "--mount" позволяет создавать каталоги для монтирования образов, если они не созданы заранее. Также добавлены параметры "--copy-from" и "--copy-to" для копирования файлов и каталогов в образы и из образов без их монтирования. Для вывода отчёта о проверке образа в формате JSON предложена опция "--json".
  • Библиотеки libqrencode, libpcre2, libidn/libidn2, libpwquality и libcryptsetup теперь загружаются динамически с использованием dlopen(), вместо жёсткого указания зависимостей в заголовке ELF.
    Изменение позволяет загружать указанные зависимости при необходимости и только если они доступны. Если библиотеки не найдены, привязанная к ним операция не выполняется или вызывается запасной обработчик. Например, для создания урезанных системных образов дистрибутивов можно минимизировать список зависимостей, которые требуются для пакета systemd, переведя дополнительные библиотеки из категории "required" в "recommended".
  • Для сервисов, использующих параметры RootImage и RootDirectory, по умолчанию активирована настройка MountAPIVFS, включающая автоматическое подключение псевдо-ФС /proc/, /sys/ и /dev/.
  • PAM-настройки сервиса "systemd-user" перенесены из /etc/pam.d/ в каталог /usr/lib/pam.d/ (подразумевается, что в /usr/lib/pam.d/ размещены системные PAM-файлы, а /etc/pam.d/ позволяет их переопределить).
  • Для unit-файлов реализована настройка RootImageOptions, позволяющая переопределить параметры монтирования для любых ФС, монтируемых при обработке опции RootImage. Также добавлена настройка MountImages для монтирования дополнительных образов в доступное сервису дерево каталогов.
  • В таймеры добавлена настройка FixedRandomDelay, позволяющая при настройке случайно задержки через RandomizedDelaySec обеспечить стабильность данной задержки на указанной системе (но для разных юнитов задержки будут разными).
  • В сокеты добавлена настройка Timestamping для управления включением параметров SO_TIMESTAMP/SO_TIMESTAMPNS, которая может принимать значения
    "us", "ns" и "off".
  • В systemd-repart добавлена возможность генерации вывода в формате JSON (--json).
  • В systemd-tmpfiles добавлена опция "-E" для исключения служебных каталогов (эквивалентна набору "--exclude-prefix=/dev --exclude-prefix=/proc --exclude=/run --exclude=/sys"). Также добавлена опция "--image", которая похожа на "--root", но использует дисковый образ вместо каталога.
  • В journalctl добавлена опция "--image" для обращения к логам в дисковом образе. Обеспечена подсветка вывода в режиме "--output=cat".
  • В systemctl добавлен параметр "--timestamp", который можно использовать для настройки стиля выводимого времени (точность, часовой пояс).
  • В systemd-detect-virt и ConditionVirtualization реализовано определение системы управления контейнерами Pouch и виртуальных машин IBM PowerVM.
  • Systemd-nspawn переведён на использование каталога /run/host/incoming/ для проброса внешних точек монтирования в контейнеры, а также /run/host/notify для определения управляющих сокетов для контейнеров
  • Добавлен новый фильтр системных вызовов "@known", включающий все системные вызовы, известные на момент сборки systemd. Поведение списка "allow" фильтра системных вызовов немного изменено, и по умолчанию теперь допускаются (EPERM) только вызовы "@known", а для остальных выдаётся код ENOSYS. При выполнении команды "systemd-analyze syscall-filter" теперь выводятся две отдельные секции системными вызовами, известными на момент сборки, и системными вызовами, добавленными после. При установке переменной окружения $SYSTEMD_LOG_SECCOMP=1 в systemd-nspawn обеспечено отражение в логе аудита всех нарушений фильтра системных вызовов. Для отключения фильтра системных вызовов предложена переменная окружения $SYSTEMD_SECCOMP=0.
  • Для unit-файлов реализованы настройки ProtectProc и ProcSubset, включающие механизмы защиты procfs (hidepid и subset) для ограничения просмотра в /proc только своих процессов.
  • В сокеты добавлена настройка FlushPending для сброса всех ожидающих соединений после завершения связанного сервиса.
  • В systemd-repart добавлены настройки Format, Encrypt и CopyFiles для форматирования, LUKS-шифрования и заполнения любых новых разделов. В опции "--size" реализовано значение "auto" для автоматического выбора минимально возможного размера образа.
  • В systemd-resolved в дополнение к D-Bus и локального DNS (127.0.0.53) добавлен ещё один IPC-интерфейс - Varlink, который позволяет определять имена в initrd и на раннем этапе загрузки, когда D-Bus ещё недоступен. Добавлен параметр DNSStubListenerExtra для указания дополнительных IP для приёма запросов, в дополнение к 127.0.0.53:53.
    При обработке запросов через D-Bus и Varlink указание точки после имени хоста теперь воспринимается как отключение проверки с доменом, указанным в параметре "search", т.е. вызов "resolvectl query foo." эквивалентен "resolvectl query --search=off foo.".
  • В systemd-tmpfiles при автоматической чистке старых файлов в /tmp/ и /var/tmp/, помимо atime, mtime и ctime теперь учитывается и btime ("birth time").
  • В systemd-logind добавлена обработка клавиши KEY_RESTART и выполнение перезагрузки при её нажатии, по аналогии с обработкой клавиш EY_POWER, KEY_SUSPEND и KEY_SLEEP. Для переопределения обработчика предложены настройки
    HandleRebootKey и RebootKeyIgnoreInhibited.
  • В systemd-nspawn и systemd-machined обеспечена реконструкция жёстких ссылок при копировании содержимого OSTree.
  • В systemd-networkd в файлах .netdev появилась возможность создания туннелей "BareUDP". В файлах .network в параметр Gateway добавлена поддержка спецзначений
    "_dhcp4" и "_ipv6ra для настройки дополнительных локально определённых маршрутов к шлюзу при помощи DHCP и IPv6 Router Advertisement. Настройка и секция IPv6PrefixDelegation переименованы в IPv6SendRA.
  • В systemd-shutdown на последней стадии завершения работы реализована попытка отсоединения MD-устройств (программные RAID) по аналогии с отключением блочных устройств loopback и DM, в качестве подстраховки на случай если ранее подсистема хранения корректно их не отключила.
  • Изменена логика вызова обработчиков многостраничного просмотра (autopaging) - при запуске с использованием утилиты "sudo" в less теперь включается режим "secure" ($LESSECURE=1), запрещающий вызов внешних программ.
  • В "systemctl edit" реализован вывод в комментарии оригинального содержимого редактируемого юнита.
  • Юниты в пользовательском режиме разделены на три части: session.slice (юниты базового графического сеанса),
    app.slice (обычные пользовательские приложения) и background.slice
    (низкоприоритетные задачи). В дальнейшем для данных наборов планируется реализовать раздельные ограничения и защиту от исчерпания ресурсов.
  • Добавлена поддержка нового типа GPT-разделов RISCV32/64, который можно использовать для корневого раздела и раздела /usr.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_systemd
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 08:28
Часовой пояс: UTC + 5