Состоялся (https://lists.freedesktop.org/archives/systemd-devel/2016-No...) выпуск системного менеджера systemd 232 (http://www.freedesktop.org/software/systemd/). Из новшеств можно отметить новую утилиту для монтирования дисковых разделов, дополнительные опции для усиления безопасности сервисов, поддержку динамического создания пользователей для сервисов, возможность запуска сервисов в отдельных пространствах имён идентификаторов пользователей, добавление идентификаторов запуска сервисов.Основные изменения:
- В состав включена (https://www.opennet.ru/opennews/art.shtml?num=45012) новая утилита 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 явно не определена другая точка монтирования;
- Добавлены два новых целевых юнита (https://www.freedesktop.org/software/systemd/man/systemd.spe...) для пользовательских сеансов: graphical-session.target, активируемый при работе любого графического сеанса (X, Wayland и т.п.), и graphical-session-pre.target, для запуска сервисов сопровождения графического сеанса, например, агентов SSH/GPG;
- Значительно переработан код инициализации виртуальных консолей, обеспечено копирование настроек шрифтов и раскладок клавиатуры для всех виртуальных консолей;
- В systemd-journal-gatewayd добавлена опция "--directory=" для обработки файлов из отдельной директории;
- В БД с параметрами оборудования в дополнение к ID_INPUT_MOUSE добавлена поддержка ID_INPUT_TRACKBALL для отдельной идентификации трекпадов;
- В 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-файлы ...
URL: https://lists.freedesktop.org/archives/systemd-devel/2016-No...
Новость: http://www.opennet.ru/opennews/art.shtml?num=45431