Linux文件及其元数据管理全解析
1. 文件扩展属性概述
在Linux系统中,对文件的键数量、键长度、值大小以及与文件关联的所有键值对所占用的总空间,系统本身并没有严格的限制。不过,不同的文件系统存在实际的限制。例如,ext3文件系统中,一个文件的所有扩展属性必须能存放在该文件inode的空闲空间以及最多一个额外的文件系统块中。老版本的ext3甚至只能使用一个文件系统块,而不能利用inode内的存储空间。这意味着每个文件的扩展属性实际限制在1KB到8KB左右,具体取决于文件系统块的大小。与之不同的是,XFS文件系统几乎没有实际限制。但通常情况下,即使是ext3的这些限制也不会造成太大问题,因为大多数键和值都是短文本字符串。不过,在存储项目的整个版本控制历史到文件的扩展属性之前,还是需要仔细考虑。
2. 扩展属性命名空间
扩展属性的命名空间不仅仅是组织工具,内核会根据不同的命名空间实施不同的访问策略。目前,Linux定义了四个扩展属性命名空间,未来可能会定义更多。具体如下:
| 命名空间 | 用途 | 访问权限 |
| ---- | ---- | ---- |
| system | 用于实现利用扩展属性的内核特性,如访问控制列表(ACLs)。例如system.posix_acl_access。 | 用户能否读写这些属性取决于所使用的安全模块,最坏情况下,包括root用户在内的所有用户都无法读取这些属性。 |
| security | 用于实现安全模块,如SELinux。 | 默认情况下,所有进程都可以读取这些属性,但只有具备CAP_SYS_ADMIN能力的进程才能写入。 |
| trusted | 在用户空间存储受限信息。 |
超级会员免费看
订阅专栏 解锁全文
1367

被折叠的 条评论
为什么被折叠?



