След три месеца разработка релиз на системен мениджър . В новото издание са добавени нови компоненти systemd-homed и systemd-repart, включена е поддръжка на преносими профили на потребители във формат JSON, осигурена е възможност за определяне на пространства от имена в systemd-journald, добавена е поддръжка на механизма «pidfd». Пълно преосмисляне на , където е събрана основната част от наличната документация и е предложен нов логотип.

Основни :
- Добавен е сервис , който осигурява управление на преносимите домашни каталози, предоставяни под формата на монтиран файл-образ, данните в който са криптирани. Systemd-homed позволява създаването на самостоятелни среди за данни на потребителя, които могат да бъдат преносими между различни системи, без да се грижат за синхронизация на идентификаторите и конфиденциалността. Параметрите на потребителските идентификационни данни са свързани с домашния каталог, а не със системните настройки — вместо /etc/passwd, /etc/group и /etc/shadow се използва профил в формат . Повече информация може да се намери в systemd-homed.
- Добавен е свързан компонент на systemd-homed «» («systemd-userdb»), който трансформира UNIX/glibc NSS записите в JSON записи и предоставя унифициран API Varlink за запитване и обход на записите. В свързания с домашния каталог JSON профил са указани параметрите, необходими за работата на потребителя, включително данни за името, хеша на паролата, ключовете за криптиране, квотите и предоставените ресурси. Профилът може да бъде заверен с цифров подпис, съхраняван на външен токен Yubikey. За управление на профилите е предложена утилита «userdbctl». Поддръжката на профили във формат JSON е добавена в различни компоненти на systemd, включително systemd-logind и pam-systemd, което позволява на потребителите на преносими каталози да организират автентикация, вход, настройка на променливи среди, създаване на сесии, установяване на лимити и др. В бъдеще се очаква възможността за генериране на JSON профили от фреймуърка sssd, с съхранение на потребителските настройки в LDAP.
- Добавена нова утилита „systemd-repart“, предназначена за переразпределение на дисковите дялове в формат GPT. Структура на дяловете се определя в декларативна форма чрез файлове, описващи кои дялове трябва или могат да съществуват. При всяко зареждане действителната таблица на дяловете се сравнява с тези файлове, след което се добавят липсващите дялове или, ако определеното в настройките относително или абсолютно размер не съвпада, се увеличава размерът на съществуващите. Допускаются само инкрементални промени, т.е. премахването и намаляването на размер не е възможно, дяловете могат само да бъдат добавени и увеличени.
Утилитата основно е предназначена за стартиране от initrd и автоматично определя диска, на който е разположен кореновия дял, което не изисква допълнителна конфигурация, освен файловете с определение на промените.На практика systemd-repart може да бъде полезен за образи на операционна система, които първоначално може да се предлагат в минимален вид, а след първото зареждане да се разширяват до размера на наличното блочно устройство или да се допълват с допълнителни дялове (например, кореновият дял може да се разширява, за да обхване целия диск, или след първото зареждане да се създаде дял за размяна или \/home). Друго приложение може да бъдат конфигурации с два взаимозаменяеми дяла – първоначално може да се предлага само първият дял, а вторият да се създава при първото зареждане.
- Появи се възможност за стартиране на няколко екземпляра на systemd-journald, всеки от които води логове в своето пространство на името. Освен основния systemd-journald.service в каталога .service е предложен шаблон за създаване на допълнителни екземпляри, привързани към своите пространства на името чрез директивата „LogNamespace“. Всяко пространство на името на логовете се обслужва от отделен фонов процес със собствен набор от настройки и лимити. Предложената възможност може да се окаже полезна за балансиране на натоварването при голям обем логове или за усилване на изолацията на приложенията. В journalctl е добавена опция „—namespace“, която ограничава запитването само до посоченото пространство на името.
- В systemd-udevd и други компоненти на systemd е добавена поддръжка на механизма за задаване на алтернативни имена на мрежовите интерфейси, позволяваща едновременно да се прилагат няколко имена за един и същ интерфейс. Размерът на името може да достигне 128 знака (по-рано името на мрежовия интерфейс беше ограничено до 16 знака). По подразбиране systemd-udevd сега задава на всеки мрежов интерфейс всички варианти на имена, генерирани от поддържаните схеми за наименование. Това поведение може да се промени чрез новите настройки AlternativeName и AlternativeNamesPolicy в .link файловете. В systemd-nspawn е реализирана генерирането на алтернативни имена с пълното име на контейнера за създадените на страната на хоста veth-връзки.
- В API sd-event.h е добавена поддръжка на подсистемата на ядрото на Linux „pidfd“ за обработка на ситуацията с повторно използване на PID (pidfd е свързан с конкретен процес и не се променя, докато PID може да бъде свързан с друг процес след приключването на текущия процес, асоцииран с този PID). Всички компоненти на systemd, с изключение на PID 1, са преведени на използването на pidfds, ако текущото ядро поддържа тази подсистема.
- В systemd-logind чрез PolicyKit е осигурена проверка на достъпа до операцията за смяна на виртуалния терминал. По подразбиране правата за смяна на активен терминал се предоставят само на потребители, които поне веднъж са инициирали сесия на локалния виртуален терминал.
- За улеснение на създаването на образи initrd с systemd, обработчикът PID 1 сега определя факта на използване в initrd и в този случай автоматично зарежда initrd.target вместо default.target. При подобен подход образите initrd и основната система могат да се различават само по наличието на файл /etc/initrd-release.
- Добавен е нов параметър за командния ред на ядрото — „systemd.cpu_affinity“, еквивалентен на опцията CPUAffinity в /etc/systemd/system.conf и позволяваща настройка на маската за привързване към CPU за PID 1 и други процеси.
- Осигурена е перезареждането на базата SELinux заедно с рестартиране на PID 1 чрез команди, подобни на „systemctl daemon-reload“.
- В обработчика PID 1 е добавена настройка „systemd.show-status=error“, при задаването на която на конзолата се извеждат само съобщения за грешки и съществени забавяния при зареждането.
- В systemd-sysusers е добавена поддръжка за създаване на потребители с име основна група, различна от името на потребителя.
- В systemd-growfs чрез опцията за монтиране x-systemd.growfs в /etc/fstab е добавена поддръжка за разширяване на XFS дялове, в допълнение към вече поддържаното разширяване на дяловете с Ext4 и Btrfs.
- В /etc/crypttab е добавена опцията x-initrd.attach за определяне на криптиран дял, който вече е отключен на етапа initrd.
- В systemd-cryptsetup е добавена поддръжка (опцията pkcs11-uri в /etc/crypttab) за отключване на криптирани дялове с помощта на смарткарти PKCS#11, например, за прикачване на криптиране на дялове към YubiKeys.
- В /etc/fstab са добавени новите опции за монтиране „x-systemd.required-by“ и „x-systemd.wanted-by“ за явно конфигуриране на unit-ите, определящи операциите по монтиране, извиквани вместо local-fs.target и remote-fs.target.
- Добавена е нова опция за песочна изолация на услугите — ProtectClock, която ограничава записа в системните часовници (достъпът е блокиран на ниво /dev/rtc, системни повиквания и разрешения CAP_SYS_TIME/CAP_WAKE_ALARM).
- В спецификацията и systemd-gpt-auto-generator е добавено определение на дяловете,
/var и /var/tmp. - В „systemctl list-unit-files“ при показване на списъка с unit-и се появи нова колона, отразяваща състоянието на активиране, предложено в предварителните настройки на производителя за този тип unit-и.
- В „systemctl“ е добавена опцията „—with-dependencies“, при активирането на която командите като „systemctl status“ и „systemctl cat“ ще показват не само всички свързани unit-и, но и unit-ите, от които те зависят.
- В systemd-networkd в конфигурацията qdisc е добавена възможността за настройка на параметрите TBF (Token Bucket Filter), SFQ (Stochastic Fairness Queuing), CoDel (Controlled-Delay Active Queue Management) и FQ (Fair Queue).
- В systemd-networkd е добавена поддръжка за мрежови устройства IFB ().
- В systemd-networkd в секция [Route] е реализиран параметър MultiPathRoute за настройка на multi-path маршрути.
- В systemd-networkd за клиента DHCPv4 е добавена опцията SendDecline, при посочване на която след получаване на DHCP отговор с адрес се извършва проверка за дублиране на адреса и в случай на конфликт адресът се отказва. За клиента DHCPv4 е добавена и опцията RouteMTUBytes, която позволява определяне на размера на MTU за маршрутите, генерирани от обвързването на IP адреси (leases).
- Настройката PrefixRoute в секция „[Address]“ на файловете „.network“ е обявена за остаряла. На нейно място е въведена настройката „AddPrefixRoute“, която има противоположен смисъл.
- В .network файловете в настройката Gateway от секцията «[Route]» е добавена поддръжка на новата стойност «_dhcp», при инсталирането на която статичният маршрут се избира на базата на шлюза, настроен чрез DHCP.
- В .network файловете в секцията «[RoutingPolicyRule]» се появиха настройки.
User и SuppressPrefixLength за задаване на маршрутизация от източника (source routing) на базата на диапазони UID и размера на префикса. - В networkctl в командата «status» е осигурена възможност за показване на логовете във връзка с всеки мрежов интерфейс.
- В systemd-networkd-wait-online е добавена поддръжка за задаване на максимално време на чакане за превключване на интерфейса в работно състояние и за изчакване на изчезването на интерфейса.
- Обработката на файловете .link и .network с празна или коментирана секция «[Match]» е преустановена.
- В .link и .network файловете в секцията «[Match]» се появи настройка «PermanentMACAddress» за проверка на постоянния MAC-адрес на устройствата в случай на използване на генериран случаен MAC.
- Секциите «[TrafficControlQueueingDiscipline]» в .network файловете са преименувани на «[NetworkEmulator]», а от наименованията на свързаните настройки е премахнат префиксът «NetworkEmulator».
- В systemd-resolved за DNS-over-TLS е добавена поддръжка на проверка на SNI.
Източник: opennet.ru
