Выпуск системного менеджера systemd 246
31 июля 2020 года
После пяти месяцев разработки представлен релиз системного менеджера systemd 246. В новом выпуске реализована поддержка заморозки unit-ов, возможность верификации образа корневого диска по цифровой подписи, поддержка сжатия журнала и core-дампов с использованием алгоритма ZSTD, возможность разблокировки переносимых домашних каталогов при помощи токенов FIDO2, поддержка разблокировки разделов Microsoft BitLocker через /etc/crypttab, выполнено переименование BlackList в DenyList.
Основные изменения:
- Добавлена поддержка cgroup-контроллера freezer, при помощи которого можно остановить работу процессов и временно высвободить некоторые ресурсы (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"), systemd.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/<volume>.key и /run/cryptsetup-keys.d/<volume>.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.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.