#docker #security #root #sudo #privileges
Вопрос:
Довольно хорошо известно, что контейнеры docker должны запускаться от имени пользователей, не являющихся пользователями root. Но нормально ли, если контейнер запускается от имени пользователя, не являющегося пользователем root, но с sudo
привилегиями?
Пример:
FROM ubuntu:bionic
RUN apt-get install sudo
# A lot of work ...
RUN addgroup --gid 1000 app amp;amp; adduser --uid 1000 --ingroup app --disabled-password app
RUN adduser app sudo
RUN echo '%app ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER 1000
ENTRYPOINT ["entrypoint.sh"]
Ответ №1:
Не совсем. Это немного облегчает случайную поломку контейнера, но если в вашем приложении есть реальная ошибка безопасности, необходимость добавлять sudo
команды к командам на самом деле не замедлит атакующего.
Поскольку контейнер запускает только один процесс и поскольку при необходимости легко переключать пользователей в файле Dockerfile, обычно sudo
в Docker вообще нет необходимости.