Docker: bash: /dev/null: 权限被拒绝

Docker: bash: /dev/null: 权限被拒绝

我使用 docker 解压 linux chroot,然后在其中执行命令,但我在 chroot 中得到了这个。

echo ciao > /dev/null
bash: /dev/null: Permission denied

我认为空设备一定已损坏,所以我尝试了其他方法:

rm -f /dev/null ; mknod -m 0666 /dev/null c 1 3; echo ciao > /dev/null 
bash: /dev/null: Permission denied

但它也没有奏效。

stat在 main 上的操作/dev/null和 chroot 内的操作没有任何区别。

我写这篇文章是因为我似乎是第一个写到这个问题的人。

答案1

出于速度原因,我的 chroot 被提取到 tmpfs 上,我将其挂载--tmpfs /tmpfs:exec到 docker。

我的坐骑是这样的:

tmpfs on /tmpfs type tmpfs (rw,nosuid,nodev,relatime)`

事实证明,与我必须通过覆盖docker 添加到 tmpfs 安装的exec默认值的方式类似noexec,有一个nodev我必须覆盖的传递。

所以参数就变成了这样:

--tmpfs /tmpfs:exec,dev

烦人的部分是mknod不会失败或报告任何错误。设备文件已创建,但无法运行。

相关内容