我想以有效的方式记录进程在其生命周期中所做的所有文件访问.
目前,我们通过预加载拦截处理文件访问的C库调用的共享库来使用LD_PRELOAD来实现此目的.该方法在没有太多性能开销的情况下是有效的,但不是防漏的.
例如,我们的LD_PRELOAD共享库有一个用于dlopen的钩子.此挂钩用于跟踪对共享库的访问,但该机制无法记录共享库的三级依赖关系.
我们曾尝试使用strace的,但使用的性能开销strace的是一个非首发我们.我很好奇,如果我们有其他机制,我们可以探索拦截进程及其子进程以有效方式进行的文件访问.我愿意在内核级别探索选项,挂钩到VFS层或其他任何东西.
思考?