有没有任何用户空间的API或第三方内核模块,可以帮助通过Linux上的inode访问文件?
我试图执行一些像这样的事情:
int read_file_by_ino(int ino, int pos, int size, char* buf); int write_file_by_ino(int ino, int pos, int size, const char* buf); int readdir_by_ino(...); int stat_by_ino(...); ...
该程序预计在root用户下运行,因此没有安全要求进行权限检查。
谢谢!
不知道我是否正确理解你的问题,但:
您可以从“/”目录开始,然后递归执行(或任何与此有关的循环)。 将inode值与strcut stat.ino_t
进行比较。 一旦找到它,打开路径/文件。
我不知道是否有一个更简单的方法,但你可以用bash做到这一点。 用ls -i命令你也可以看到inode,
$ ls -i 11147622 file.txt
第一列是inode号,blow命令显示当前目录中的inode
$ ls -i | awk {'print $1'}
所以你需要检查/子目录中的inode,直到找到它
ls -iR /
它显示所有的子目录,那里有inode号码的文件
现在你应该从/开始,并使用awk命令或者切换命令来获得第一列(inode编号在第一列中),然后将它与要查找的inode进行比较。
我在这里发现了关于类似主题的问题。
总结一下,看看这些命令:
find /path/to/mountpoint -inum <inode number>
sudo debugfs -R 'ncheck 393094' /dev/sdaX 2>/dev/null
希望这可以帮助你进一步调查。