如果您可以运行任何docker命令,那么您可以非常简单地将主机根目录:
docker run --rm -v /:/host busybox \
cat /host/etc/shadow
此外,Docker容器经常在自己的容器空间中作为根运行,这意味着无论您选择向其公开主机文件系统的哪个部分,它们都可以作为任意用户ID进行任意更改。您可以使用
docker run -u
选择不同的用户ID,但您可以选择
任何
用户ID,甚至是属于共享系统上另一个用户的ID。
使用起来很合理
sudo
作为一种获得需要根权限的方法,这是一种典型的开箱即用的Docker配置。
一天结束时,唯一真正的入口是文件上的Unix权限。
/var/run/docker.sock
. 这通常是模式0660所拥有的专用
docker
组。如果你不介意你的普通用户在没有任何控制的情况下读写任意的主机文件,你可以把自己添加到这个组中。这通常适用于开发人员的笔记本电脑;但对于任何类似于生产系统的东西,它都需要真正考虑其安全性的影响。