文件的访问标志有多少位?

文件的访问标志有多少位?

Linux文件系统上一个文件的权限占用了多少位?

答案1

添加到其他答案:

传统的 Unix 权限分为:

  • 读 (r
  • 写 (w
  • 执行文件/访问目录 ( x)

其中每一个都存储为一个位,其中 1 表示允许,0 表示不允许。

例如,只读访问(通常为写入r--)存储为二进制100或八进制4

这些权限有 3 组,决定了允许的访问权限:

  • 文件的所有者
  • 文件组
  • 所有其他用户

它们都一起存储在同一个变量中,例如rw-r-----,表示所有者可读写,组只读,其他人无权访问,存储为110100000二进制、640八进制。

这样就构成了 9 位。

然后,还有另外 3 个特殊位:

  • 设定值
  • 设置gid

man 1 chmod有关这些的详细信息,请参见。

最后,文件的类型使用 4 位存储,例如它是否是常规文件、目录、管道、设备或其他任何文件。

这些都一起存储在 inode 中,总共构成 16 位。

答案2

哪些权限?基本权限为16位; ext2 使用 32 位,另外 32 位用于文件标志 ( chattr(1));那么 POSIX ACL 还使用变量空间。/usr/include/linux/ext2_fs.h详情请参阅。 (ext3 和 ext4 构建于 ext2 之上,并且大多使用相同的结构。)

答案3

有关文件的信息存储在称为索引节点的数据结构中。此结构中有一个模式字段,其中包含权限。我的系统上的这个字段是一个无符号短整型,有 2 个字节和 16 位。

查看 Linux 源代码中的 fs.h 来亲自查看。

相关内容