Після п'яти місяців розробки
Основні
- Додана підтримка контролера ресурсів freezer на базі cgroups v2, за допомогою якого можна зупинити роботу процесів та тимчасово вивільнити деякі ресурси (CPU, введення/виведення та потенційно навіть пам'ять) для виконання інших завдань. Управління заморожуванням та розморожуванням unit-ів здійснюється за допомогою нової команди «systemctl freeze» або через D-Bus.
- Додана підтримка верифікації образу кореневого диска цифрового підпису. Перевірка здійснюється за допомогою нових налаштувань у сервісних юнітах: RootHash (кореневий хеш для верифікації дискового образу, вказаного через опцію RootImage) та RootHashSignature (цифровий підпис у форматі PKCS#7 для кореневого хешу).
- В обробнику PID 1 реалізовано можливість автоматичного завантаження передкомпільованих правил AppArmor (/etc/apparmor/earlypolicy) на початковому етапі завантаження.
- Додані нові налаштування unit-файлів: ConditionPathIsEncrypted та AssertPathIsEncrypted для перевірки розміщення зазначеного шляху на блоковому пристрої, в якому використовується шифрування (dm-crypt/LUKS), ConditionEnvironment та AssertEnvironment для перевірки змінних оточення (наприклад, PAM).
- Для юнітів *.mount реалізовано налаштування ReadWriteOnly, що забороняє монтувати розділ у режимі тільки для читання, якщо не вдалося примонтувати його для читання та запису. У /etc/fstab цей режим налаштовується за допомогою опції "x-systemd.rw-only".
- Для юнітів *.socket додано налаштування PassPacketInfo, що включає додавання ядром додаткових метаданих для кожного пакету, що читається з сокету (включає режими IP_PKTINFO, IPV6_RECVPKTINFO та NETLINK_PKTINFO для сокету).
- Для сервісів (юніти *.service) запропоновано налаштування CoredumpFilter (визначає секції пам'яті, які слід включати в core-дампи) та
TimeoutStartFailureMode/TimeoutStopFailureMode (визначає поведінку (SIGTERM, SIGABRT або SIGKILL) при настанні таймууту під час запуску або зупинки сервісу). - У більшості опцій додано підтримку вказівки шістнадцяткових значень, заданих за допомогою префікса «0x».
- У різних параметрах командного рядка та файлах конфігурації, пов'язаних з налаштуванням ключів або сертифікатів, реалізовано можливість вказати шлях до unix-сокетів (AF_UNIX) для передачі ключів та сертифікатів через звернення до IPC-сервісів, коли небажано розміщувати сертифікати на незашифрованих дискових сховищах.
- Додано підтримку шести нових специфікаторів, які можна використовувати в unit-ах , tmpfiles.d/, sysusers.d/ та інших конфігураційних файлах: %a для підстановки поточної архітектури, %o/%w/%B/%W для підстановки полів з ідентифікаторами з /etc/os-release та %l для встановлення короткого імені хоста.
- У unit-файлах припинено підтримку синтаксису ".include", який був оголошений застарілим 6 років тому.
- У налаштуваннях StandardError та StandardOutput припинено підтримку значень «syslog» та «syslog-console», які будуть автоматично конвертовані в «journal» та «journal+console».
- Для автоматично створюваних точок монтування на основі tmpfs (/tmp, /run, /dev/shm тощо) забезпечено виставлення лімітів на розмір та число inode, що відповідає 50% від розміру ОЗУ для /tmp та /dev/shm, та 10% від ОЗУ для решти.
- Додані нові параметри командного рядка ядра: systemd.hostname для виставлення імені хоста на початковій стадії завантаження, udev.blockdev_read_only для обмеження всіх пов'язаних з фізичними накопичувачами блокових пристроїв режимом тільки для читання (для вибіркового скасування можна використовувати команду «blockdev -setrw») .swap для відключення автоматичної активації розділу підкачки, systemd.clock-usec для встановлення системного годинника в мікросекундах, systemd.condition-needs-update і systemd.condition-first-boot для перевизначення перевірок ConditionNeedsUpdate і ConditionFirstBoot.
- За замовчуванням забезпечена установка sysctl fs.suid_dumpable у значення 2 («suidsafe»), що дозволяє зберегти core-дампи для процесів з прапором suid.
- У БД обладнання з ChromiumOS запозичений файл /usr/lib/udev/hwdb.d/60-autosuspend.hwdb, що включає відомості про PCI та USB-пристрої, що підтримують автоматичний перехід у режим сну.
- У networkd.conf додано налаштування ManageForeignRoutes, при включенні якої systemd-networkd почне керувати всіма маршрутами, налаштованими іншими утилітами.
- До файлів .network додано секцію «[SR-IOV]» для налаштування мережевих пристроїв з підтримкою SR-IOV (Single Root I/O Virtualization).
- У systemd-networkd до секції «[Network]» додано налаштування IPv4AcceptLocal для дозволу прийому на мережному інтерфейсі пакетів, що прийшли з локальною вихідною адресою.
- У systemd-networkd додано можливість налаштування дисциплін пріорітизації трафіку HTB через секції [HierarchyTokenBucket] та
[HierarchyTokenBucketClass], "pfifo" через [PFIFO], "GRED" через [GenericRandomEarlyDetection], "SFB" через [StochasticFairBlue], "cake"
через [CAKE], «PIE» через [PIE], «DRR» через [DeficitRoundRobinScheduler] та
[DeficitRoundRobinSchedulerClass], «BFIFO» через [BFIFO],
"PFIFOHeadDrop" через [PFIFOHeadDrop], "PFIFOFast" через [PFIFOFast], "HHF"
через [HeavyHitterFilter], «ETS» через [EnhancedTransmissionSelection],
«QFQ» через [QuickFairQueueing] та [QuickFairQueueingClass]. - У systemd-networkd до секції [DHCPv4] додано налаштування UseGateway для відключення застосування інформації про шлюз, отриманої через DHCP.
- У systemd-networkd у секції [DHCPv4] та [DHCPServer] додано налаштування SendVendorOption для встановлення та обробки додаткових опцій виробника.
- У systemd-networkd у секції [DHCPServer] реалізовано новий набір опцій EmitPOP3/POP3, EmitSMTP/SMTP та EmitLPR/LPR для додавання інформації про сервери POP3, SMTP та LPR.
- У systemd-networkd у файлах .netdev у секції [Bridge] з'явилося налаштування VLANProtocol для вибору протоколу VLAN.
- У systemd-networkd у файлах .network у секції [Link] реалізовано налаштування Group для керування групою лінків.
- Налаштування BlackList перейменовані на DenyList (для забезпечення зворотної сумісності обробка старого імені збережена).
- У systemd-networkd додано велику порцію налаштувань, пов'язаних з IPv6 і DHCPv6.
- У networkctl додано команду «forcerenew» для примусового оновлення всіх прив'язок адрес (lease).
- У systemd-resolved у налаштуванні DNS з'явилася можливість вказати номер порту та ім'я хоста для верифікації сертифіката DNS-over-TLS. У реалізації DNS-over-TLS додано підтримку перевірки SNI.
- У systemd-resolved додано можливість налаштування перенаправлення однокомпонентних DNS-імен (single-label, з одного імені хоста).
- У systemd-journald забезпечено підтримку застосування алгоритму zstd для стиснення великих полів у журналах. Проведено роботу із захисту від виникнення колізій у хеш-таблицях, що застосовуються в журналах.
- У journalctl при виведенні повідомлень лога додані URL-адреси з посиланнями на документацію.
- У journald.conf додано налаштування Audit для керування включенням аудиту в процесі ініціалізації systemd-journald.
- У systemd-coredump додано можливість стиснення core-дампів за допомогою алгоритму zstd.
- У systemd-repart додано налаштування UUID для призначення UUID створеному розділу.
- У сервісі systemd-homed, що забезпечує управління домашніми каталогами, що переносяться, додана можливість розблокування домашніх каталогів за допомогою токенів FIDO2. У бекенд шифрування розділів LUKS додано підтримку автоматичного повернення порожніх блоків файлової системи при завершенні сеансу. Додано захист від подвійного шифрування даних, якщо визначено, що розділ /home в системі вже застосовується шифрування.
- У /etc/crypttab додано налаштування: «keyfile-erase» для видалення ключа після використання та «try-empty-password» для спроби розблокування розділу з порожнім паролем до запиту пароля у користувача (корисно для встановлення зашифрованих образів із призначенням пароля після першого завантаження) , а не під час встановлення).
- У systemd-cryptsetup під час завантаження реалізовано підтримку розблокування розділів Microsoft BitLocker за допомогою /etc/crypttab. Також додана можливість читання
ключів для автоматичного розблокування розділів із файлів /etc/cryptsetup-keys.d/.key та /run/cryptsetup-keys.d/.key. - Доданий генератор systemd-xdg-autostart-generator для створення unit-файлів із файлів автозапуску .desktop.
- У bootctl додана команда reboot-to-firmware.
- У systemd-firstboot додані опції: «—image» для вказівки дискового образу для завантаження, «kernel-command-line» для ініціалізації файлу /etc/kernel/cmdline, root-password-hashed для завдання хеша пароля root і "- delete-root-password" для видалення пароля root.
Джерело: opennet.ru