#docker #containers
Вопрос:
Когда я запущу docker run -it -u someuser ubuntu
контейнер, он запустится с некоторыми привилегиями пользователя. Однако тот же самый процесс может просто запуститься su
, чтобы стать корневым. Если бы у меня было несколько томов из моей хост-системы, подключенных к этому контейнеру, контейнер, вероятно, смог бы выполнять некоторые операции корневого уровня на хосте. Как это предотвратить? Должен ли я удалить su
файл из образа контейнера?
Комментарии:
1. Если вы боитесь записи, вы можете установить тома только для чтения.
2. Вы не можете «просто запустить
su
«; он запросит пароль пользователя, а он не задан в стандартных образах Docker. Я вижу, что файлы Dockerfile часто проходят мимо, поэтому они изо всех сил стараются установить (очень простой, записанныйdocker history
) пароль пользователя и предоставить пользователю неограниченныеsudo
разрешения, что на самом деле имеет проблемы с безопасностью, которые вы описываете; но вам нужно специально сделать это в своем файле Dockerfile, чтобы иметь эту уязвимость.3. Спасибо @DavidMaze. Похоже, у меня был опыт работы с одним из этих плохо подготовленных изображений, и я сделал неправильные выводы.