След три месеца разработка пускането на системния мениджър . В новия брой са добавени нови компоненти 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" за явна настройка на единиците, определящи операциите по монтиране, извиквани вместо 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" при показването на списъка с единици е добавена нова колона, отразяваща състоянието на включване, предлагано в настройките по подразбиране на производителя за този тип единици.
- В "systemctl" е добавена опция "--with-dependencies", при активиране на която командите "systemctl status" и "systemctl cat" ще изписват не само всички свързани единици, но и единиците, от които те зависят.
- В 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 за настройка на многопътни маршрути.
- В 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
