我正在尝试创建文件访问过滤器。即,只有某些应用程序可以访问某些文件。
例如:如果试图打开机密信息,则只有“ /Application/Incometax.app/Contents/macosx/incometax”可以访问“ / Users / Prasanna / Confidentialinfo”任何其他应用程序,访问应该被拒绝。
我开始使用kauth模块并侦听Vnode范围。
无论何时访问文件,我都可以从回调中获取正在访问文件的“文件路径”,vfs_context和pid。
使用pid和proc_name API。我只有正在访问文件的进程名称。需要找到过程的绝对路径。
此外,作为回调的一部分收到的Vnode路径似乎有些不同。我如何将其转换为用户看到的路径。
例如:当我访问“ /tmp/info.txt”时,在回调中收到的路径是“ /private/tmp/info.txt”
请帮助: 1.获取正在访问文件的应用程序的绝对路径 2.将检索到的路径从Vnode路径转换为用户陆地路径。
参考: 1. Apple kauth documentation 2. Sample implementation of kauth 3. Similar stackoverflow question:无法从vfs_context获得路径吗?该结构似乎是私有的?
谢谢, 普拉萨纳