Повышаем привилегии юзера через docker

от автора

В очередной раз в очередной статье попалось упоминание о том, «как запустить docker контейнер без sudo».

В самом деле, можно же сделать так, чтобы вместо ввода пароля просто написать «docker start …» прямо под пользователем, и всё будет работать.
Для этого достаточно внести пользователя в группу docker любым удобным способом, хоть прямым редактированием файла /etc/group, и сделать это один раз.

А теперь — почему так не стоит делать:

Для начала — внесем таки пользователя в группу docker:
$ sudo vi /etc/group
/docker
shift-A username
:wq

Ну или «правильный» способ — sudo usermod -aG docker $USER

Перелогиниваемся — docker ps -a — прекрасно, вот наши контейнеры, можно запускать, создавать новые.
Не нужно больше противное sudo со своим «введите пароль». Удобно.

Лишний раз проверим, что мы по-прежнему простой юзер, которому не положены рутовые права:

$ ls -l /root
ls: cannot open directory ‘/root’: Permission denied

Теперь создаем новый контейнер, ну например такой:

$ docker run -ti —name hack -v /root:/x debian
root@9ec4ae4e9277:/#

Теперь мы, зайдя как простой юзер, сидим внутри контейнера.
И проверяем:

# ls -l /x

Оп-па! Видим домашний каталог «настоящего» рута, можем там что-нибудь писать и менять, скажем, сделать себе удаленный доступ через .ssh/authorized_keys, или подмонтировать при создании контейнера любой другой интересный каталог, которого как юзер видеть не могли…

То есть простое добавление юзера в группу docker не только удобно, но и помогает обойти все эти пароли и права доступа.

Понятно, что если это ваша единоличная машина, и доступ к шеллу никто посторонний никогда не получит — всё это не проблема, но наверное не стоит так делать?

Вероятно, это можно как-то закрыть дополнительно, но «из коробки» оно как-то вот так работает…


ссылка на оригинал статьи https://habr.com/ru/articles/944664/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *