为什么只有知道文件的inode却不搜索链接到该inode的文件却无法访问文件?到文件的硬链接只包含名称和数字,告诉您在哪里可以找到有关该文件的所有 真实 信息的索引节点。当我被告知没有用户模式直接使用inode编号打开文件时,我感到很惊讶。
对于系统而言,这似乎是一种无害且有用的功能。为什么不提供?
某些操作系统 确实 具有该功能。例如,OS X需要它来支持Carbon File Manager,而在Linux上,您可以使用debugfs。当然,可以在任何UNIX上通过命令行通过来执行此操作find -inum,但是不能通过inode访问文件的真正原因是它不是特别有用。它 确实 绕过了文件权限,因为如果您可以在文件夹中读取文件,则无法读取或执行该文件,然后打开inode即可发现它。
debugfs
find -inum
它不是很有用的原因是您需要通过*stat()调用找到一个索引节点号,此时您已经 有了 文件名(或一个开放的fd)…或者您需要猜测该inum。
*stat()