【发布时间】:2011-01-05 16:52:45
【问题描述】:
为什么你只知道文件的inode,而不搜索链接到该inode的文件,却无法访问该文件?文件的硬链接只包含一个名称和一个数字,告诉您在哪里可以找到包含有关文件的所有真实信息的 inode。当我被告知没有用户模式的方式可以直接使用 inode 号打开文件时,我感到很惊讶。
这似乎是系统提供的一种无害且有用的功能。为什么不提供?
【问题讨论】:
-
这样做的用例是什么?
-
@user 这个问题的灵感来自这个问题。 stackoverflow.com/questions/4605851/… 我还可以看到它被用来将文件传递给另一个有权访问该文件但无权访问我的目录结构的用户。
-
这正是不允许的原因。如果允许按 inode 编号访问文件,您可以简单地尝试每个 inode 编号并绕过所有目录权限。
-
一个用例肯定会像其他已经打开文件的人一样打开同一个文件。 UNIX 上的文件名可能同时指向其他文件。
-
但是如果你有文件名,你可以得到一个 inode - 这个用例仍然对你开放。因此,您可以比较 inode 并验证 -samefile(如果有)。但是你不能单独通过 inode 直接操作。无论如何,我认为这就是我要了解的要点。
标签: linux unix filesystems inode