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

Після трьох з половиною місяців розробки представлений реліз системного менеджера systemd 253.

Серед змін у новому випуску:

  • До складу включена утиліта 'ukify', призначена для складання, перевірки та формування підписів для уніфікованих образів ядра (UKI, Unified Kernel Image), що об'єднують обробник для завантаження ядра з UEFI (UEFI boot stub), образ ядра Linux та системне оточення, що завантажується в пам'ять initrd, що застосовується для початкової ініціалізації на стадії до монтування кореневої ФС. Утиліта замінює собою функціональність, що раніше надається командою 'dracut —uefi', і доповнює її можливостями для автоматичного розрахунку зсувів у PE-файлах, об'єднання initrd, підписи вбудованих образів ядра, створення комбінованих образів c sbsign, евристикою для визначення uname ядра, перевіркою зображення заставкою та додаванням підписаних PCR-політик, згенерованих утилітою systemd-measure.
  • Додано підтримку initrd-оточень не обмежених розміщенням у пам'яті, в яких замість tmpfs використовується overlayfs. Для таких оточень systemd не виконує видалення всіх файлів в initrd після перемикання кореневої ФС.
  • У сервіси доданий параметр OpenFile для відкриття довільних файлів у ФС (або підключення до Unix-сокетів) і передачі пов'язаних з ними файлових дескрипторів в процес, що запускається (наприклад, коли потрібно організувати доступ до файлу для непривілейованого сервісу без зміни прав доступу на файл) .
  • У systemd-cryptenroll при реєстрації нових ключів реалізовано можливість розблокування зашифрованих розділів за допомогою токенів FIDO2 (-unlock-fido2-device) без необхідності введення пароля. Забезпечено зберігання із сіллю заданого користувачем PIN-коду для ускладнення визначення методом перебору.
  • Додано налаштування ReloadLimitIntervalSec та ReloadLimitBurst, а також опції командного рядка ядра (systemd.reload_limit_interval_sec та /systemd.reload_limit_burst) для обмеження інтенсивності перезапуску фонових процесів.
  • Для unit-ів реалізована опція «MemoryZSwapMax» для налаштування властивості memory.zswap.max, що визначає максимальний розмір zswap.
  • Для unit-ів реалізована опція "LogFilterPatterns", що дозволяє задати регулярні вирази для фільтрації інформації, що виводиться в балку (може використовуватися для виключення певного виводу або збереження тільки певних даних).
  • У scope-юнітах реалізовано підтримку налаштування «OOMPolicy» для завдання поведінки при спробі витіснення при нестачі пам'яті (для сеансів входу виставлено значення OOMPolicy=continue, щоб OOM killer їх примусово не завершував).
  • Визначено новий тип сервісів - "Type = notify-reload", який розширює тип "Type = notify" можливістю очікування завершення обробки сигналу перезапуску (SIGHUP). На новий тип переведені сервіси systemd-networkd.service, systemd-udevd.service та systemd-logind.
  • У udev задіяна нова схема найменування мережевих пристроїв, відмінність якої в тому, що для не прив'язаних до шини PCI USB-пристроїв тепер виставляється ID_NET_NAME_PATH для забезпечення більшої передбачуваності імен. Для змінних SYMLINK реалізовано оператора '-=', який залишає символічні посилання не налаштованими, якщо до цього було визначено правило їх додавання.
  • У systemd-boot перероблена передача затравки для генераторів псевдовипадкових чисел в ядрі та дискового бекенда. Додано підтримку завантаження ядра не тільки з розділу ESP (EFI System Partition), наприклад, з прошивки або безпосередньо для QEMU. Забезпечено аналіз параметрів SMBIOS для визначення запуску в оточенні віртуалізації. Реалізовано новий режим 'if-safe', при якому сертифікат для UEFI Secure Boot завантажується з ESP тільки, якщо вважається безпечним (запускається у віртуальній машині).
  • В утиліті bootctl реалізовано генерацію системних токенів на всіх системах EFI, крім оточення віртуалізації. Додані команди 'kernel-identify' та 'kernel-inspect' для відображення типу образу ядра та інформації про опції командного рядка та версії ядра, unlink для видалення файлу, пов'язаного з першим типом завантажувальних записів, cleanup для видалення всіх файлів з каталогу "entry-token" в ESP і XBOOTLDR, не пов'язаних з першим типом завантажувальних записів. Забезпечено обробку змінної KERNEL_INSTALL_CONF_ROOT.
  • У команді 'systemctl list-dependencies' забезпечено обробку опцій «—type» і «—state», а в команді 'systemctl kexec' додано підтримку оточень на базі гіпервізора Xen.
  • У файлах .network у розділі [DHCPv4] з'явилася підтримка опцій SocketPriority і QuickAck, RouteMetric=high|medium|low.
  • У systemd-repart додані опції «—include-partitions», «—exclude-partitions» та «—defer-partitions» для фільтрації розділів типу UUID, що, наприклад, дозволяє збирати образи в яких один розділ побудований на основі вмісту іншого розділу . Також додано опцію «—sector-size» для вказівки розміру сектора, що використовується під час створення розділу. Додано підтримку генерації ФС erofs. У налаштуванні Minimize реалізовано обробку значення «best» для вибору мінімально можливого розміру образу.
  • У systemd-journal-remote дозволено використання налаштувань MaxUse, KeepFree, MaxFileSize та MaxFiles для обмеження споживання дискового простору.
  • У systemd-cryptsetup додано підтримку відправлення попереджувальних запитів до токенів FIDO2 для визначення їх наявності до автентифікації.
  • У crypttab додані нові параметри tpm2-measure-bank та tpm2-measure-pcr.
  • У systemd-gpt-auto-generator реалізовано монтування розділів ESP і XBOOTLDR в режимах "noexec, nosuid, nodev", а також додано облік переданих через командний рядок ядра параметрів rootfstype і rootflags.
  • У systemd-resolved надано можливість налаштування параметрів резолвера через вказівку опцій nameserver, domain, network.dns і network.search_domains у командному рядку ядра.
  • У команді systemd-analyze plot з'явилася можливість виводу у форматі JSON при вказівці прапора json. Для керування висновком також додані нові опції "-table" і "-no-legend".
  • У 2023 році планується припинити підтримку cgroups v1 та роздільних ієрархій каталогів (коли /usr монтується окремо від кореня або розділені каталоги /bin та /usr/bin, /lib та /usr/lib).

Джерело: opennet.ru

Додати коментар або відгук