我有一个应用程序,它会递归扫描大型目录,由于这些目录位于 NFS 上,因此速度更慢。似乎我无法配置应用程序来阻止这种情况。但是,我仍然想使用该应用程序,并且该应用程序实际上根本不需要访问这些目录。
相关问题但这里的解决方案是使用 AppArmor。
据我所知,AppArmor 需要 root 访问权限。但是,我正在寻找一种无需 root 访问权限即可实现的解决方案。此外,AppArmor 看起来太复杂了,不符合我的要求。
我可能可以通过注入一些小型库LD_PRELOAD
来包装所有opendir
调用。这样就可以解决问题。
但这样的事情一定已经存在了,不是吗?
答案1
我发现ld-预加载-打开我可以在其中设置映射。我只需将所有要阻止的路径映射到即可/dev/null
。这完全符合预期。
调试应用程序实际访问的文件/路径,我只需执行以下操作:
strace -e trace=file -f my-app