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

Після п'яти місяців розробки представлений реліз системного менеджера systemd 246. У новому випуску реалізована підтримка заморозки unit-ів, можливість верифікації образу кореневого диска по цифровому підпису, підтримка стиснення журналу та core-дампів з використанням алгоритму ZSTD, можливість розблокування домашніх каталогів, що переносяться, за допомогою токенів FIDO2, підтримка розблокування розділів Microsoft BitLocker через /etc. crypttab, виконано перейменування BlackList на DenyList.

Основні зміни:

  • Додана підтримка контролера ресурсів 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

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