我正在开发嵌入式 Linux 系统(内核为 5.10.24)。
我试图从内核禁用 sysfs,但我发现其他一些东西依赖于 sysfs,所以我必须在内核构建中启用 sysfs。
现在我想隐藏下面的文件和目录/sys
,或者禁用列表/sys/
。
我更改了/etc/fstab
安装方式/sys
,如下所示
sysfs /sys sysfs ro,noexec 0 0
。
并ls -l /
显示以下内容,
dr-xr-xr-x 13 root root 0 Jan 1 2020 sys
我仍然可以通过 获取列表ls -l /sys
。
那么有没有办法将 sysfs 挂载为只写(无法列出 下的内容/sys
)?
答案1
我没有看到sysfs
使用常规 Linux 工具将内容设为只写的选项。
如果限制某些进程的内容就足够了,sysfs
那么我会看到两个选项:
绑定安装
创建例如/sys-limited
这些mount --bind ...
应用程序所需的一切/sys
。然后,您将这些进程放入单独的安装命名空间(所有进程都可以相同),然后您就可以在其中进行操作mount --bind /sys-limited /sys
。
保险丝
更多的工作(好吧,这取决于您需要进行多少更改/sys
)但更灵活:您编写自己的 FUSE 模块,当然,它也可以提供只写访问权限,或者只显示您已列入白名单的条目。然后将其挂载/sys-limited
并进行上面提到的命名空间分离。