Докер: Как отключить пользователя root в conatiner? - PullRequest
0 голосов
/ 24 января 2019

Доставка изображений клиентам, которых они обычно делают

$ docker-compose up -d

для развертывания в производстве. Легко получить root и довольно легко увидеть / изменить весь файл:

$ docker-compose exec <service> /bin/sh
/bin/sh(root)# ...

Как можно избежать получения клиентами полных прав доступа ко всем файлам с правами root при запуске контейнера. Может быть, это вообще невозможно в Docker, но тогда пользователям должно быть как минимум сложнее получить полный доступ ко всему внутри контейнера.

Есть ли лучшая практика для добавления учетных записей без полномочий root в контейнеры?

1 Ответ

0 голосов
/ 24 января 2019

Вы не можете.Вы всегда можете запустить

docker exec -u 0 (container ID) sh

, чтобы получить корневую оболочку.(Предполагая, что образ имеет оболочку, но почти все делают.)

Также помните, что любой, кто может выполнить любую команду docker, может редактировать любой файл на хосте, и оттуда может легко стать пользователем root и можетпродвигайтесь в /var/lib/docker до глубины души.

Обычно считается хорошей практикой устанавливать контейнеры для запуска без полномочий root с помощью RUN adduser, чтобы создать пользователя с использованием инструментов базового дистрибутива, а затем Dockerfile * 1011.* директива, но оператор может переопределить это во время выполнения, если он действительно этого хочет.

...