Выпуск системного менеджера systemd 256 с утилитой run0 для замены sudo

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3249
Зарегистрирован: 20.08.2022

#

Выпуск системного менеджера systemd 256 с утилитой run0 для замены sudo
Дата публикации:Wed, 12 Jun 2024 10:21:25 +0300




После полугода разработки представлен релиз системного менеджера systemd 256. Ключевые изменения: утилита run0 для замены sudo, утилита importctl для работы с дисковыми образами, возможность версионированного доступа к ресурсам, концепция капсул для запуска дополнительных сервисных менеджеров, режим перенаправления логов systemd-journald в произвольный сокет, поддержка протокола Varlink в systemd-networkd, systemd-machined, bootctl, systemd-creds и systemd-hostnamed, генератор юнитов "systemd-ssh-generator" и утилита "systemd-ssh-proxy".





Среди изменений в новом выпуске:
  • В состав включена утилита run0 для выполнения процессов под идентификаторами других пользователей, которая позиционируется как более безопасная замена программы sudo, реализованная в форме надстройки над командой systemd-run. В run0 вместо использования SUID осуществляется обращение к системному менеджеру с запросом запуска процесса, создания нового псевдотерминала (PTY) и пересылки данных между ним и текущим терминалом (TTY). Привилегированный процесс запускается в изолированном контексте, который порождается процессом PID 1, а не процессом пользователя, т.е. не наследует свойства окружения пользователя. Для авторизации и определения возможностей пользователя применяется Polkit. При работе с повышенными привилегиями в заголовок добавляется индикатор в виде красной точки, а оттенок фона в терминале меняется на красный.


    Добавлена новая утилита командной строки importctl, предназначенная для загрузки, импорта и экспорта дисковых образов с использованием сервиса systemd-importd. В importctl реализованы команды pull-tar, pull-raw, import-tar, import-raw, import-fs, export-tar, export-raw, list-transfers и cancel-transfer, функциональность которых выделена в отдельную утилиту из программы machinectl.



    Добавлен исполняемый файл systemd-vpick c реализацией протокола vpick, обеспечивающего версионированный доступ к ресурсам, таким как дисковые образы. Systemd-vpick позволяет загружать ресурсы из каталогов "*.v/", в которых может храниться несколько версий определённых файлов. Номер версии указывается в имени файлов, например, "mymachine_2.1.5.raw". Если при запросе явно не указывается номер версии, то автоматически будет использован файл с наиболее свежей версией. Поддержка версионированной загрузки ресурсов реализована в командах "systemd-nspawn --image=/--directory=", systemd-dissect и systemd-portabled, а также в настройках юнитов "RootDirectory=", "RootImage=", "ExtensionImages=" и "ExtensionDirectories=".


    Реализована концепция капсул ("capsules"), позволяющих запускать дополнительные отдельные сервисные менеджеры для управления группой процессов, работающих под временными пользователями, создаваемыми динамически и удаляемыми после завершения работы сервисного менеджера. Капсулы позволяют обойтись без создания учётных записей пользователей для запуска групп сервисов, используют домашний каталог "/var/lib/capsules/<имя_капсулы>" и набор типовых сервисов. Для запуска капсулы достаточно выполнить команду "systemctl start capsule@<имя>.service". Для работы в контексте капсул в различные утилиты, такие как systemctl и systemd-run, добавлена опция
    "--capsule="/"-C".

    В systemd-journald добавлена возможность перенаправления потока записей в сетевой или локальный сокет (AF_INET, AF_INET6, AF_UNIX, AF_VSOCK), указанный через параметр ForwardToSocket в journald.conf или через свойство 'journald.forward_to_socket'. Для ограничения отправляемых данных уровнем логгирования предложен параметр MaxLevelSocket. Для приёма логов может использоваться процесс systemd-journal-remote, в который добавлена поддержка сокетов AF_VSOCK и AF_UNIX.



    В systemd-vmspawn добавлена опция "--forward-journal" для перенаправления логов из виртуальной машины в хост-окружение, используя сокет AF_VSOCK. В systemd-journal-gatewayd добавлена возможность ограничения периодов времени, в которые будут приниматься логи. В утилиту journalctl добавлена опция "-T" ("--exclude-identifier") для игнорирования определённых идентификаторов syslog, а также опция "--list-namespaces" для показа списка доступных пространств имён.

    Расширены возможности по интеграции с sshd. Добавлена поддержка использования при авторизации входящих соединений ключей, полученных через userdbctl. Добавлен новый генератор юнитов "systemd-ssh-generator", который при наличии исполняемого файла sshd позволяет настроить его активацию в привязке к различным сокетам (например, в контейнерах можно настроить вызов sshd при обращении к 22 порту через AF_VSOCK). Добавлен "systemd-ssh-proxy" - плагин к утилите ssh (включается через ProxyCommand/ProxyUseFdpass), позволяющий подключаться через сокеты AF_VSOCK и AF_UNIX (например, можно использовать ssh вместо sudo для организации доступа локальных пользователей к ресурсам).

    В рамках инициативы по сокращению зависимостей у libsystemd реализована динамическая загрузка библиотек liblz4, libzstd, liblzma, libkmod и libgcrypt при помощи вызова dlopen() в ситуациях, когда их функции действительно необходимы.














    Помимо каталога /etc, различные компоненты systemd теперь пытаются загрузить основной файл конфигурации из каталогов /usr/lib, /usr/local/lib и /run. Например,
    systemd-logind будет определять файл конфигурации в следующей последовательности: /etc/systemd/logind.conf, /run/systemd/logind.conf,
    /usr/local/lib/systemd/logind.conf и /usr/lib/systemd/logind.conf. В systemd-udevd аналогичным способом реализовано переопределние файла udev.conf.

    Непривилегированным пользователям предоставлена возможность доступа к зашифрованным учётным данным сервисов. Для шифрования и расшифровки учётных данных для определённого пользователя в утилиту systemd-creds добавлены опции "--user" и "--uid".

    Реализована возможности сборки systemd из исходных текстов при отключении всех устаревших возможностей в OpenSSL 3.0.


    В системный менеджер добавлена настройка "ProtectSystem=", позволяющая управлять монтированием частей ФС в режиме только для чтения на уровне всей системы, а не только отдельных unit-ов. По умолчанию параметр ProtectSystem активирован для initrd для запрета записи в каталог /usr во время загрузки.

    Для unit-ов предложены новые настройки "WantsMountsFor=" для определения монтирования раздела как необязательной зависимости и "MemoryZSwapWriteback=" для управления параметром memory.zswap.write, появившемся в ядре Linux 6.8. В unit-ах .mount и .swap разрешено использование настройке "What=" идентификаторов в стиле fstab, таких как "UUID=…" и "LABEL=…". В настройке "RestrictNetworkInterfaces=" разрешено использование альтернативных имён сетевых интерфейсов.

    В юниты ".socket" с опцией "Accept=yes" добавлена настройка "MaxConnectionsPerSource=", позволяющая задать лимит на число одновременных соединений с одного IP-адреса или UID (для UNIX-сокетов).

    В процесс "systemd-bsod", реализующий аналог "синего экрана смерти", добавлена опция "--tty" для выбора терминала, на котором будет показано полноэкранное уведомление в случае возникновения критических ошибок (LOG_EMERG).


    В каталоге /dev обеспечено создание символических ссылок, сочетающих информацию на основе пути (by-path) и меток (by-{label,uuid}): "/dev/disk/by-path/<path>/by-<label|uuid|…>/<label|uuid|…>", что позволяет выделить одинаковые разделы на разных устройствах хранения (например, после клонирования содержимого диска на другое устройство). Для мультимедийных контроллеров systemd-udevd теперь создаёт символические ссылки "/dev/media/by-path/*" (например, "/dev/media/by-path/pci-0000:04:00.3-usb-0:1:1.0-media-controller").

    Добавлен сервис systemd-udev-load-credentials.service для загрузки udev-правил из базы учётных записей (credential).

    В процессах systemd-networkd и systemd-hostnamed реализован интерфейс Varlink. В systemd-hostnamed добавлена поддержка отдачи идентификаторов системы и загрузки через D-Bus, а также всех данных из файлов os-release и machine-info через D-Bus и Varlink. В systemd-networkd реализован экспорт свойств NamespaceId и NamespaceNSID через D-Bus и Varlink, а также перебор
    пиров LLDP, используя API на базе Varlink.

    В systemd-networkd реализованы настройки IPv6RetransmissionTimeSec и
    UseRetransmissionTime для управлением временем повторной отправки NS-сообщений (Neighbor Solicitation), применяемых для определения соседних хостов IPv6. Добавлена поддержка получения ключей для VPN Wireguard из базы учётных записей (credential). В link-файлы добавлен параметр ReceivePacketSteeringCPUMask для организации привязки обработчиков входящих пакетов к определённым CPU.


    В утилиту networkctl добавлены параметры 'mask' и 'unmask' для игнорирования файлов конфигурации (.network). Реализована команда 'networkctl edit --runtime' для редактирования временных файлов конфигурации в /run/systemd/network/.


    В systemd-nspawn добавлена поддержка переноса в контейнер сетевых интерфейсов для Wi-Fi-устройств.

    В systemd-resolved добавлена поддержка расширенных кодов ошибок DNS (Extended DNS Errors, RFC 8914), а также DNS-записей SVCB, NAPTR и HTTPS (RFC 9460, RFC 2915). Добавлена поддержка команды "systemctl reload systemd-resolved" для перезагрузки конфигурации systemd-resolved без перезапуска сервиса.




    Добавлен режим 'systemctl edit --stdin', позволяющий создавать и изменять unit-файлы на основе содержимого, передаваемого через стандартный входной поток (например, для создания юнитов из скриптов).

    Добавлена команда 'systemd-analyze architectures' для вывода списка известных архитектур CPU.


    Добавлена команда 'systemd-tmpfiles --purge' для удаления всех временных файлов и каталогов, созданных через настройки в tmpfiles.d, а также команда "systemd-tmpfiles --dry-run" для отображения журнала действий без их фактического выполнения. В portablectl добавлена опций "--clean" для очистки всех данных, связанных переносимыми сервисами (кэш, логи, состояние, runtime-данные и fdstore), после их отключения.


    В hostnamectl, resolvectl и loginctl добавлена опция '-j' для вывода в формате JSON.


    В утилите systemd-dissect реализована опция "--make-archive" для создания архивного файла (например, tar.gz) из дискового образа.


    Расширены возможности по запуску виртуальных машин. В утилиту systemd-vmspawn, предназначенную для запуска виртуальных машин, добавлены опции: "--firmware" для настройки прошивки, "--tpm" для включения программной реализации TPM, "--linux" для указания загружаемого ядра, "--initrd" для указания образа initrd, "-D" для задания корневого каталога, "--private-users" для включения пространства имён для пользователей, "--bind=" и "--bind-ro" для проброса частей ФС их хост-окружения в гостевую систему, "--extra-drive" для подключения дополнительных устройств хранения, "-n/--network-tap/--network-user-mode" для настройки сети, "--console/--background" для выбора метода взаимодействия с VM, "--pass-ssh-key/--ssh-key-type" для размещения SSH-ключей в VM. В команде "machinectl start" помимо возможности пуска контейнеров через systemd-nspawn добавлена поддержка запуска виртуальных машин через systemd-vmspawn.





    В systemd-homed реализована возможность разблокировки домашнего каталога пользователя после его входа через SSH. В утилиту homectl добавлен режим "--offline", позволяющий изменять свойства учётной записи без разблокировки домашнего каталога.

    Переработаны компоненты для обработки дисковых квот в ФС XFS и EXT4, что позволило реализовать возможность включения квот во время работы, а не только на стадии загрузки.



    В файл конфигурации sleep.conf добавлен параметр MemorySleepMode для настройки спящего режима.

    В утилиту varlinkctl добавлена поддержка нового транспорта "ssh:", который можно использовать с OpenSSH 9.4 и более новыми выпусками.


    Время хранения core-дампов увеличено с 3 дней до 2 недель.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61234

Жизнь за Нер'зула!

vall
Аватара пользователя
Администрация
Сообщения: 685
Зарегистрирован: 09.08.2022

#

12yoexpert:жесть. если в арче заменят sudo на _это_, я свалю обратно на gentoo, там openrc есть
Один из комментариев на первоисточнике новости относительно run0.
Ответить