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