【发布时间】:2013-09-10 18:30:54
【问题描述】:
我了解 Netlink 是在 Linux 中通信内核和用户空间的现代且正确的方式。
我有一个需要配置的内核模块,所以我使用 Netlink 让它与用户空间应用程序对话。
一切都很好,但在我看来,任何用户都可以与我的模块交谈。我可以使用权限等锁定应用程序,但该项目是开源的,因此任何用户都可以轻松编译用户空间应用程序。因此,任何用户都可以配置我的内核。这对我来说并不好。
似乎我在这里遗漏了一些非常重要的东西,但我找到的 Netlink 文档都是关于如何让它运行,而不是它如何适应现实世界。
如何限制对模块的 Netlink 套接字的访问?如果这是不可能的,还有什么办法呢?
【问题讨论】:
-
与 netlink 没有直接关系,但仍然:如果您想配置内核模式组件,也许 debugfs 中的文件和模块的参数也是要考虑的选项。如果需要传递大量数据,是的,netlink 和内存映射文件通常是更好的选择。这取决于您,什么最适合您的项目。
-
@Eugene 我希望他们将此列为 Netlink 的弱点之一,这样我很久以前就可以放弃它了:/。当然,假设确实没有解决方案。但如果真的没有,我想知道 Netlink 有什么好的应用程序,因为这有点危险。