<< Click to Display Table of Contents >> Администрирование (Linux) > Локальная установка системы > Установка системы (Directum Launcher) Запуск контейнеров без привилегий суперпользователя |
В режиме Rootless служба Docker запускается от учетной записи без привилегий суперпользователя (root). При этом по умолчанию службы сервисов Directum RX запускаются внутри docker-контейнеров от имени суперпользователя. Для дополнительной безопасности работы настройте запуск служб от учетной записи без привилегий root:
1.В Directum Launcher во встроенном редакторе YAML в секцию common_config добавьте параметр CONTAINER_BUILD_ARGS и укажите в нем значения для параметров:
•USER_ID – идентификатор пользователя, от имени которого запускаются сервисы внутри контейнеров;
•USER_NAME – имя пользователя, от которого запускаются сервисы внутри контейнеров.
Пример настройки:
CONTAINER_BUILD_ARGS:
USER_ID: '665'
USER_NAME: 'test_user'
Важно. В операционной системе идентификатор пользователя включает число из диапазона, указанного ранее в параметре subuid, и строится по формуле:
<Начало диапазона subuid> + USER_ID - 1
Например, для subuid указан диапазон rxuser:100000:65536, начало диапазона – 100000. Для параметра USER_ID указано значение 665. В результате в операционной системе идентификатор пользователя будет иметь значение 100664. От пользователя с этим идентификатором в операционной системе будут создаваться и читаться файлы.
2.Продублируйте значения параметра CONTAINER_BUILD_ARGS для контейнеров с HAProxy и приложением Centrifugo. Для этого в Directum Launcher во встроенном редакторе YAML добавьте параметр в секции SungeroHaproxy и SungeroCentrifugo.
Примечание. У некоторых контейнеров, например Centrifugo, большой список зарезервированных групп. По этой причине идентификатор, указанный в параметре USER_ID, может конфликтовать с идентификаторами из диапазона значений параметра subgid. В этом случае при изменении настроек в консоли отображается значение non-zero code: 1. Для решения конфликта необходимо сменить идентификатор USER_ID на любой другой незарезервированный. Обычно незанятые идентификаторы имеют значения больше 1000.
3.Если какой-либо сервис нужно запускать под своей уникальной учетной записью, то параметр CONTAINER_BUILD_ARGS добавьте в секцию этого сервиса и задайте имя пользователя и идентификатор.
4.Очистите лог-файлы и статус-файлы, если они уже успели записаться после установки Directum RX.
5.Выдайте другим пользователям (Other) права на запись в папки, созданные при установке Directum RX, а также права на запись в папку /home/<user>/.dotnet. Вместо <user> укажите имя пользователя, от которого запущена служба Docker. Это необходимо, так как запись файлов в эти папки будет выполняться от пользователей с разными идентификаторами.
6.Если используются ГОСТ-сертификаты, то другим пользователям (Other) также выдайте полные права на папку /home/<user>/.local/share/docker/volumes/etc_opt и вложенные файлы. Вместо <user> укажите имя пользователя, от которого запущена служба Docker. Кроме того, если для некоторых сервисов заданы уникальные учетные записи, то необходимо добавить ГОСТ-сертификаты в каждый контейнер с уникальным пользователем. Например, для запуска сервиса хранилищ в контейнере настроена уникальная учетная запись user1, остальные сервисы запускаются от учетной записи user2. В этой ситуации сертификат ГОСТ нужно добавить в контейнер с сервисом хранилищ и в один из контейнеров с сервисом, который запускается от пользователя user2.
7.В Directum Launcher нажмите на кнопку Применить настройки.
© Компания Directum, 2024 |