是否有像fanotify这样的设施,但对于exec()操作?像kauth in MacOS,但在用户空间。Linux - fanotify,但对于exec()?
fanotify似乎只通知(和允许/拒绝)文件打开/关闭/读/写。
我看过代码可以通过other means(也可以here)通知fork和exec,但是没有办法允许或拒绝一个exec。此外,这种方法似乎有缺点,因为并非所有内核都使用netlink/proc连接器进行编译,并且可能会被事件淹没。
是否有像fanotify这样的设施,但对于exec()操作?像kauth in MacOS,但在用户空间。Linux - fanotify,但对于exec()?
fanotify似乎只通知(和允许/拒绝)文件打开/关闭/读/写。
我看过代码可以通过other means(也可以here)通知fork和exec,但是没有办法允许或拒绝一个exec。此外,这种方法似乎有缺点,因为并非所有内核都使用netlink/proc连接器进行编译,并且可能会被事件淹没。
也许你正在寻找SELinux,这是一个Linux内核模块,它提供了细粒度的安全策略的实施,比如谁或什么可以执行某个文件。
它是否具有某种API,还是仅通过配置文件进行设置? – craig65535
是:http://selinuxproject.org/page/LibselinuxAPISummary – Kaz
感谢您的链接。不过,我想要弄清楚这个API有什么可能。我可以编写一个能够得到执行通知的模块,然后将访问决定返回给selinux?或者,API是否更多用于阅读/构建静态配置? 例子我见过使用libselinux的项目就像SE-PostgreSQL,从我的阅读中,他们使用它来符合已经在selinux中设置的访问控制。 – craig65535
我相信“流程事件连接器”是你在找什么。该接口将允许您接收fork,exec和setuid/setguid事件的通知。
查看更多在LWN(https://lwn.net/Articles/157150/)和一个伟大的博客文章(不是我的)在http://netsplit.com/the-proc-connector-and-socket-filters。
这将在用户级工作到底如何?在我看来,这是只能在内核中实现的东西。 –
我想知道是否有一个用户界面可以用于内核中的一些预先存在的功能,例如上面链接中的netlink代码。 – craig65535