Запуск команд docker с пользователем без прав root (возможно, с пользователем www-data в Apache) - PullRequest
0 голосов
/ 09 ноября 2018

Я занимаюсь разработкой простого приложения Flask (настроенного с помощью веб-сервера Apache), которое предоставляет веб-интерфейс для управления докером. Мой сервер apache работает как пользователь «www-data» и использует его для всех своих операций API.

Но я получаю сообщение об ошибке «Отказано в доступе» для следующего: докер изображения запуск докера и т.д… поскольку он не позволяет пользователю «www-data» запускать вышеуказанные команды.

Не могли бы вы дать мне предложение по использованию пользователя "www-data" для операций докера.

Я не хочу добавлять пользователя www-data в список пользователей.

Будет ли правильным добавление пользователя в группу Docker ???

Или, пожалуйста, предложите мне лучшее практическое решение для этого.

Спасибо Гурупрасед

1 Ответ

0 голосов
/ 09 ноября 2018

Было бы проще, яснее и не менее опасно сказать Apache запускать ваш процесс как root .

Помните, что, если вы вообще можете запустить какую-либо команду Docker, вы можете получить неограниченный доступ на уровне root ко всему в системе. Например, если ваш инструмент решит, что он действительно хочет хочет www-data быть в списке sudoers хоста, он может

docker run --rm -v /:/host busybox \
  sh -c 'echo www-data ALL = (ALL) NOPASSWD: ALL >> /host/etc/sudoers'

В зависимости от того, что делает ваш инструмент управления, он потенциально предлагает равный незащищенный доступ корневого уровня к хосту любому, кто может получить доступ к веб-странице. Даже если это не так, вам нужно быть предельно осторожным в том, как вы вызываете Docker (другой SO-ответ, на который я смотрел, имел потенциал для рутирования системы, если пользователь мог создать каталог с произвольным именем и запустить скрипт оттуда например).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...