如何在非特权 Docker 容器中模拟 mv 失败?

如何在非特权 Docker 容器中模拟 mv 失败?

非特权 Docker 容器内的应用程序mv <source_file> <dest_dir>在 root 下执行,其中<source_file>必须是现有的常规文件并且<dest_dir>必须是现有的目录。除此之外,对权限、所有者/组、文件内容等没有任何要求。

设置此操作失败的环境(仅在容器内)的最简单方法是什么?


我尝试了只读绑定挂载,这会导致错误Read-only file system,但这仅适用于以下--privileged标志:

mount --bind -o ro foo dest_dir  # mount: /dest_dir: permission denied.
mv file dest_dir

我还尝试创建一个太小的文件系统,这会导致No space left on device错误,但这也需要安装,因此它也仅适用于以下标志--privileged

dd if=/dev/zero of=device bs=1M count=10
mkfs.ext4 device
mount -o loop device dest_dir  # mount: dest_dir: mount failed: Operation not permitted.
mv big_file dest_dir

相关内容