一尘不染

为什么文件不能被inode操纵?

linux

为什么只有知道文件的inode却不搜索链接到该inode的文件却无法访问文件?到文件的硬链接只包含名称和数字,告诉您在哪里可以找到有关该文件的所有 真实
信息的索引节点。当我被告知没有用户模式直接使用inode编号打开文件时,我感到很惊讶。

对于系统而言,这似乎是一种无害且有用的功能。为什么不提供?


阅读 222

收藏
2020-06-03

共1个答案

一尘不染

某些操作系统 确实 具有该功能。例如,OS X需要它来支持Carbon File
Manager
,而在Linux上,您可以使用debugfs。当然,可以在任何UNIX上通过命令行通过来执行此操作find -inum,但是不能通过inode访问文件的真正原因是它不是特别有用。它 确实
绕过了文件权限,因为如果您可以在文件夹中读取文件,则无法读取或执行该文件,然后打开inode即可发现它。

它不是很有用的原因是您需要通过*stat()调用找到一个索引节点号,此时您已经 有了 文件名(或一个开放的fd)…或者您需要猜测该inum。

2020-06-03