挂载点和 nodev 选项

挂载点和 nodev 选项

我正在研究设备文件,我发现一些安装点无法接受设备文件创建(如果nodev设置了选项)。考虑到我的mount输出:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
.....
debugfs on /sys/kernel/debug type debugfs (rw,relatime)

我尝试在其中创建设备文件/sys/kernel/debug(选择目录只是因为它没有该nodev选项),但不允许该操作。我不明白其背后的原理:为什么操作不可能?

答案1

您无法写入,/sys/kernel/debug因为它不是通用文件系统;这是内核的debugfs,它的存在是为了允许内核将调试信息导出到用户空间。

挂载选项的差异是由挂载的文件系统引起的。就你而言,我猜它们是由 systemd 安装的。 “核心”文件系统(/sys/proc/dev)在早期安装src/core/mount-setup.cmount_table详情请参阅),withnodev等等/sys/kernel/debug是通过安装的一个单独的单位,sys-kernel-debug.mount ,它不指定任何安装选项。我不确定安装选项差异背后是否有任何特定的理由。

至于为什么nodev重要,请参阅为什么 /etc/fstab 中的“nodev”如此重要?如何利用字符设备进行黑客攻击?

相关内容