将用户放入docker
组而不是授予她sudo
访问主机的权限有什么真正的优势吗?
长话短说,我正在编写一个教程,展示该组的成员如何通过服务器正在侦听的 Unix 域套接字直接与 docker 服务器docker
交互(即,不使用)。sudo
dockerd
然而,通过授予非特权用户创建任意容器的权力,用户似乎获得了对主机的有效root 访问权限:例如,通过绑定挂载修改主机 fs 变得非常容易。或者通过procfs
/与内核交互sysfs
。那么,将某人加入docker
组而不是授予该用户对系统的 root 访问权限有什么意义呢?
或者用户可以只加载一个非常方便的 Docker 容器,将它们直接扔到根 shell中。
授予对 docker 套接字的访问权限确实实际上保证了提升权限的能力。
这里重要的是宣布你的意图。您将某人放入
docker
组中,以便他们可以运行容器,而无需一直运行sudo
每个命令。当您希望某人sudoers
能够以sudo
root 身份运行任何命令时,您可以将其放入。如果您不想让任意人访问 Docker 套接字,那么几乎可以肯定您应该使用诸如 OpenShift 或 Kubernetes 之类的编排系统。