是否有可能使某些 Linux 进程看到一组不同的带有容器的块设备(即没有 KVM 或 Xen 等虚拟化)?例如,在启动时系统识别sda
、sdb
和sdc
,然后创建loop0
和loop1
,并且我想启动一个进程(以 root 身份运行),该进程只看到sdb
和loop0
,但看不到上面的其他内容。请注意,即使进程调用,其他设备也必须保持隐藏状态麦克诺德(2)创建一个块设备节点(应该成功),并尝试打开它(应该失败并显示No such device
)。
请注意,使用该标志挂载文件系统nodev
不起作用,因为以 root 身份运行的进程可以在没有该标志的情况下重新挂载它。
请注意,不能选择以非 root 身份运行进程,因为一些复杂的用户空间组件正在假定 root 访问的系统上运行,并且更改这些组件的成本太高。降低这些进程的能力也不是一个选择。
这很可能是不可能的,因为http://lxr.free-electrons.com/source/include/uapi/linux/sched.h不包含CLONE_NEW...
块设备的标志。但也许我错过了一些东西。