devtmpfs 对于命名空间来说有什么特殊之处吗?权限问题

devtmpfs 对于命名空间来说有什么特殊之处吗?权限问题

我想知道 devtmpfs 在命名空间方面是否特殊。

这是我的系统信息(使用 Vagrant 进行测试)

vagrant@ubuntu-xenial:~/test$ uname -a
Linux ubuntu-xenial 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

一个基本的演示可以最好地解释:

vagrant@ubuntu-xenial:~/test$ unshare --ipc --uts --user --mount --fork --pid --net --map-root-user
root@ubuntu-xenial:~/test# mkdir proc
root@ubuntu-xenial:~/test# mkdir sys
root@ubuntu-xenial:~/test# mount -t proc proc ./proc/
root@ubuntu-xenial:~/test# mount -t sysfs sysfs ./sys/
root@ubuntu-xenial:~/test# mkdir dev
root@ubuntu-xenial:~/test# mount -t devtmpfs devtmpfs ./dev/
mount: permission denied
root@ubuntu-xenial:~/test# exit
logout

我有权限挂载 proc 和 sys,但没有权限挂载 devtmpfs?

不过,tmpfs 可以工作(也可以使用相同的 unshare 命令运行)

root@ubuntu-xenial:~/test# mount -t tmpfs tmpfs ./dev/

EDIT2:根据 sourcejedi 的反馈将之前的编辑移至答案。

答案1

我相信这与文件系统标志有关FS_USERNS_MOUNThttps://lwn.net/Articles/652468/)。

内核的快速 grep 似乎表明它没有设置devtmpfslivegrep.com 结果

如果有人有更好的答案,我很乐意接受!

相关内容