Ubuntu n00b здесь. Я переделываю контейнер Докера, что я создал использование следующего простого Dockerfile:
FROM ubuntu
CMD ["tail","-f","/dev/null"]
В контейнере, как пользователь root, я пытаюсь работать visudo
и получите следующий ответ:
удар: visudo: команда, не найденная
Я работал ls /etc
и кажется, что у меня нет sudoers файла также.
Действительно ли там что-то является особенным, я должен был вставить свой Dockerfile, чтобы заставить их существовать?
При создании контейнера Вы - корень, таким образом, можно создать пользователей без sudo.
Если Вы получаете контейнерное изображение, которое уже имеет a USER
директива, можно все еще стать корнем снова с USER root
перед использованием привилегированных команд. Можно позже выпустить другого USER
директива для становления пользователем выполнения снова. Другими словами:
Изображение, которое устанавливает не пользователя полномочия:
# "plainuser" image
FROM debian
RUN groupadd -g 1000 appgroup && useradd -g appgroup -u 1000 appuser
USER appuser
ENTRYPOINT ["/usr/bin/id"]
Выполненный с docker run --rm plainuser
проверять, что это действительно работает с пользователем appuser
.
Давайте получим его:
# "otheruser" image
FROM plainuser
USER root # Become root again
RUN groupadd -g 1001 appgroup2 && useradd -g appgroup2 -u 1001 appuser2
USER appuser2 # Set new execution user
Выполненный с docker run --rm otheruser
.
Я работал он из другого ответа: sudo
не установлен по умолчанию. Устанавливать sudo
:
apt-get update
apt-get install sudo