Каковы преимущества добавления пользователя в группу `docker` вместо предоставления ему доступа `sudo` к хосту?

Каковы преимущества добавления пользователя в группу `docker` вместо предоставления ему доступа `sudo` к хосту?

Есть ли реальное преимущество в добавлении пользователя в dockerгруппу по сравнению с предоставлением ему sudoдоступа к хосту?


Если говорить длинно, то я пишу руководство, показывающее, как члены группы dockerмогут напрямую взаимодействовать (т. е. без использования sudo) с сервером Docker через сокет домена Unix, который dockerdпрослушивает сервер.

Однако, предоставляя непривилегированному пользователю право создавать произвольные контейнеры, кажется, что пользователь получаетэффективныйroot-доступ к хосту: например, таким образом становится довольно легко изменять хостовую fs через привязку монтирования. Или взаимодействовать с ядром через procfs/ sysfs. Так в чем смысл помещать кого-то в dockerгруппу, а не предоставлять этому пользователю root-доступ к системе?

решение1

Или пользователь может простозагрузить удобный контейнер Docker, который переносит их прямо в оболочку root.

Предоставление доступа к сокету Docker действительно фактически гарантирует возможность повышения привилегий.

Здесь важно объявить о своих намерениях. Вы помещаете кого-то в dockerгруппу, чтобы они могли запускать контейнеры без необходимости sudoпостоянно запускать каждую команду. Вы помещаете кого-то, sudoersкогда хотите, чтобы они могли sudoи запускать любую команду как root.

Если вы не хотите предоставлять доступ к сокету Docker случайным лицам, вам наверняка следует использовать систему оркестровки, например OpenShift или Kubernetes.

Связанный контент