След три с половина месеца разработка е представен релизът на системния мениджър systemd 253.
Сред промените в новия релийз:
- Включена е утилита 'ukify', която служи за изграждане, проверка и форматиране на подписи за унифицирани изображения на ядро (UKI, Unified Kernel Image), обединяващи обработчик за зареждане на ядрото от UEFI (UEFI boot stub), образа на ядрото на Linux и зареждането в паметта на системната среда initrd, използвана за начална инициализация преди монтиране на основната файлова система. Утилитата замества функционалността, предоставяна преди от командата 'dracut —uefi', и я допълва с възможностите за автоматично изчисляване на отклонения в PE файловете, обединяване на initrd, подписване на вградени образи на ядра, създаване на комбинирани образи с 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.
- За модулите е реализирана опцията «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
