![阻止特定应用程序访问用户空间中的文件夹](https://linux22.com/image/947507/%E9%98%BB%E6%AD%A2%E7%89%B9%E5%AE%9A%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%AE%BF%E9%97%AE%E7%94%A8%E6%88%B7%E7%A9%BA%E9%97%B4%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我有一个应用程序,它会递归扫描大型目录,由于这些目录位于 NFS 上,因此速度更慢。似乎我无法配置应用程序来阻止这种情况。但是,我仍然想使用该应用程序,并且该应用程序实际上根本不需要访问这些目录。
相关问题但这里的解决方案是使用 AppArmor。
据我所知,AppArmor 需要 root 访问权限。但是,我正在寻找一种无需 root 访问权限即可实现的解决方案。此外,AppArmor 看起来太复杂了,不符合我的要求。
我可能可以通过注入一些小型库LD_PRELOAD
来包装所有opendir
调用。这样就可以解决问题。
但这样的事情一定已经存在了,不是吗?
答案1
我发现ld-预加载-打开我可以在其中设置映射。我只需将所有要阻止的路径映射到即可/dev/null
。这完全符合预期。
调试应用程序实际访问的文件/路径,我只需执行以下操作:
strace -e trace=file -f my-app