Можно ли запускать контейнер docker от имени пользователя, не являющегося пользователем root, но с правами sudo?

#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 вообще нет необходимости.