Релиз systemd 232
Основные изменения:
- В состав включена новая утилита systemd-mount, которая позиционируется не как замена традиционной системной команды mount, а как специфичная для systemd надстройка для манипуляций точками монтирования и автомонтирования на уровне генерации unit-файлов, что позволяет интегрировать операции монтирования в цепочку зависимостей systemd. При этом сами операции монтирования по-прежнему выполняются через вызов утилиты mount из пакета util-linux. Вместо мгновенного выполнения монтирования после запуска команды, systemd-mount добавляет задание в очередь сервисного менеджера и позволяет связывать монтирование зависимостями, например, обеспечить корректный порядок добавления разделов с учётом вложенных точек монтирования или под контролем systemd запустить инструмент для проверки целостности ФС.
Для внешних накопителей systemd-mount обеспечивает отслеживание корректности извлечения и при необходимости автоматически запускает fsck перед монтированием. Вместо фактического монтирования после подключения накопителя systemd лишь готовит точку автомонтирования, но монтирует файловую систему только после первого обращения к устройству. При отсутствии активных операций в течение определённого промежутка времени осуществляется отмонтирование раздела, что позволяет минимизировать негативные последствия при неожиданном извлечении устройства без его предварительного отмонтирования;
- В сервисном менеджере реализована концепция идентификаторов запуска - при каждом запуске сервиса, ему присваивается уникальный идентификатор (128-разрядный случайный UUID), который затем отображается в логах и позволяет отследить всю активность для данного экземпляра сервиса и отделить записи активных сервисов от данных, не привязанных к рабочим сервисам;
- Добавлена возможность динамического создания пользователей на время работы сервиса. При указании "DynamicUser=yes" на время работы сервиса виртуально создаётся новый пользователь с идентификатором из диапазона 61184..65519, который становится видим в системе благодаря NSS-модулю nss-systemd.so, который следует добавить в /etc/nsswitch.conf. Для очистки выделенных сервису ресурсов после завершения работы необходимо использовать опции "PrivateTmp=", "RemoveIPC=", "ProtectHome=read-only" и "ProtectSystem=strict". Кроме динамического создания пользователей в nss-systemd также обеспечено определение пользователей root и nobody, что позволяет обойтись без файлов /etc/passwd и /etc/group в chroot-окружениях или урезанных контейнерах;
- Добавлена опция "ProtectKernelModules=" отключающая инициирование сервисом загрузки или выгрузки модулей ядра и закрывающая доступ сервиса к /usr/lib/modules;
- Реализована возможность перемонтирования файловой системы для сервиса в режиме только для чтения (за исключением директорий /dev, /proc и /sys). Режим включается через указание значения "strict" в опции "ProtectSystem=";
- Добавлена опция "ProtectKernelTunables=", запрещающая изменение сервисом файлов в директориях /sys и /proc, которые перемонтируются в режиме только для чтения;
- Добавлена опция "ProtectControlGroups=" для отключения возможности записи в /sys/fs/cgroup;
- Проведена работа по усилению безопасности различных сервисов при помощи опций "ProtectKernelTunables=yes", "ProtectControlGroups=yes" и "RestrictAddressFamilies=";
- Добавлена опция "PrivateUsers=" реализующая возможность запуска сервисов в собственных пространствах имён идентификаторов пользователей, в которых только root, nobody и uid/gid самого сервиса сопоставлены с реальными идентификаторами, а остальные отражены на идентификатор nobody;
- В процесс systemd-nspawn добавлена поддержка пространства имён cgroup, который при запуске контейнеров теперь создаёт отдельную иерархию cgroup. Вернуться к старому поведению можно при помощи переменной окружения $SYSTEMD_NSPAWN_USE_CGNS;
- Добавлена опция "MemorySwapMax=" для ограничения максимального размера подкачки при использовании унифицированной иерархии cgroup;
- В унифицированной иерархии cgroup представлена поддержка контроллера CPU (требует применения ядра с патчами), для управления которой добавлены опции "CPUWeight=", "CPUStartupWeight=" и "CPUAccounting=";
- Обеспечено определение системы виртуализации bhyve, используемой во FreeBSD;
- В /etc/systemd/system.conf добавлена опция "CtrlAltDelBurstAction=" для настройки поведения при нажатии комбинации Ctrl-Alt-Del более 7 раз за 2 секунды;
- Поддержка динамического создания юнитов для монтирования и автомонтирования разделов (для создания теперь можно использовать bus API без размещения unit-файлов в ФС);
- Обеспечена возможность использования директории /efi в качестве точки монтирования для загрузочного раздела EFI, если данная директория создана, а в fstab явно не определена другая точка монтирования;
- Добавлены два новых целевых юнита для пользовательских сеансов: graphical-session.target, активируемый при работе любого графического сеанса (X, Wayland и т.п.), и graphical-session-pre.target, для запуска сервисов сопровождения графического сеанса, например, агентов SSH/GPG;
- Значительно переработан код инициализации виртуальных консолей, обеспечено копирование настроек шрифтов и раскладок клавиатуры для всех виртуальных консолей;
- В systemd-journal-gatewayd добавлена опция "--directory=" для обработки файлов из отдельной директории;
- В БД с параметрами оборудования в дополнение к ID_INPUT_MOUSE добавлена поддержка ID_INPUT_TRACKBALL для отдельной идентификации трекпадов;
- Для кода, вызываемого из команд "ExecStop=" и "ExecStopPost=", добавлены переменные окружения $SERVICE_RESULT, $EXIT_CODE и $EXIT_STATUS, отражающие информацию о завершении сервисов;
- Объявлена устаревшей настройка SplitMode=login в Journald;
- В systemd-run и systemctl добавлена опция "--wait", которая запускает команду только после завершения работы указанного сервиса или юнита;
- В "machinectl list" в списке работающих контейнеров обеспечен показ IP-адресов и информации о выпуске ОС;
- В systemd-nspawn при использовании образов с таблицей разделов GPT обеспечено монтирование ESP в директории /boot или /efi в окружении контейнера, используя тот же набор правил, что применяются для PID 1 на стороне хост-системы, что позволяет корректно использовать для обеспечения загрузки контейнера такие утилиты, как "bootctl";
- В systemd-nspawn обеспечено bind-монтирование файла /etc/resolv.conf в окружение контейнеров, т.е. все системные изменения /etc/resolv.conf теперь сразу подхватываются в изолированных окружениях;
- Добавлена возможность ограничения максимального числа экземпляров сервисов в привязке к IP, запускаемых при активации по обращению к сокету. В дополнение к "MaxConnections=" добавлена опция "MaxConnectionsPerSource=";
- В systemd-networkd добавлена поддержка настройки сетевого интерфейса vcan ("Virtual CAN");
- В .link-файлы в секции "[Link]" добавлены опции UDPSegmentationOffload=, TCPSegmentationOffload=, GenericSegmentationOffload=, GenericReceiveOffload= и LargeReceiveOffload= для включения/выключения для сетевых интерфейсов UDP Segmentation Offload, TCP Segmentation Offload, Generic Segmentation Offload, Generic Receive Offload и Large Receive Offload;
- В .netdev-файлы в секции "[Bridge]" добавлены опции STP=, Priority=, AgeingTimeSec= и DefaultPVID= для включения/выключения протокола STP (Spanning Tree Protocol), приоритета, времени устаревания и идентификатора порта VLAN;
- В .netdev-файлы в секцию "[Link]" добавлена опция ARP=no для отключения протокола ARP;
- В файлах .netdev добавлены опции "RemoteChecksumTx=" и "RemoteChecksumRx=" для управления логикой удалённого расчёта контрольных сумм для сетей VXLAN;
- В systemd-resolved для resolved.conf реализована опция "DNSStubListener", позволяющая управлять созданием обработчиков DNS (127.0.0.53:53).
- Добавлены дополнительные опции настройки IP-адреса: "HomeAddress=", "DuplicateAddressDetection=", "ManageTemporaryAddress=", "PrefixRoute=" и "AutoJoin=";
- Добавлены новые опции настройки журнала из командной строки ядра: "systemd.journald.max_level_console=", "systemd.journald.max_level_store=", "systemd.journald.max_level_syslog=", "systemd.journald.max_level_kmsg=" и "systemd.journald.max_level_wall=";
- В "cryptsetup" и /etc/crypttab добавлена поддержка шифрованных разделов, созданных в VeraCrypt.
Источник: http://www.opennet.ru/opennews/art.shtml?num=45431
|
0 | Tweet | Нравится |
|