linux - 为什么文件不能被inode操作?

标签 linux unix filesystems inode

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

这似乎是系统提供的一种无害且有用的功能。为什么没有提供?

最佳答案

安全原因——要访问文件,您需要对该文件的权限以及从根目录搜索所有目录的权限才能获取该文件。如果您可以通过 inode 访问文件,则可以绕过对包含目录的检查。

这允许您创建一个可以被一组用户(或一组组)访问的文件,而不是其他任何人——创建只能由用户访问的目录(每个用户一个目录),以及然后将文件硬链接(hard link)到所有这些目录 - 文件本身可供任何人访问,但实际上只能由对其链接到的目录之一具有搜索权限的人访问。

关于linux - 为什么文件不能被inode操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4606774/

相关文章:

linux - pthread_mutex 的 "default mutex attributes"是什么**

linux - 如何根据搜索在文件内容中附加字符串

c - 后台文件索引器(Windows、*Nix、跨平台)

linux - 如何修改我的 perl 脚本以使用多个处理器?

linux - Linux 应用程序的一个实例开始运行其自身的多个实例的可能原因是什么?

c++ - fork() 输出链

c - 解码数组

linux - 优化嵌入式Linux系统的根文件系统大小

linux - 如何在 Linux 中拦截文件更新?

linux - 将一个二进制文件的部分 stdout 输出替换为另一个二进制文件的输出的 unix 命令是什么?