Linux文件系统扩展属性与目录操作详解
1. 扩展属性概述
在文件系统中,扩展属性是一项重要的功能。早期的ext3版本在存储扩展属性时受到限制,只能使用一个文件系统块,没有inode内存储,这导致每个文件的扩展属性实际限制在1KB到8KB之间,具体取决于文件系统块的大小。而XFS则没有这样的实际限制。不过,对于大多数情况,由于键和值通常是短文本字符串,这些限制一般不会造成问题。但在存储项目的整个版本控制历史到文件的扩展属性之前,还是需要谨慎考虑。
1.1 扩展属性命名空间
Linux目前定义了四个扩展属性命名空间,未来可能会定义更多。这些命名空间不仅仅是组织工具,内核会根据不同的命名空间实施不同的访问策略。具体如下:
| 命名空间 | 用途 | 访问权限 |
| ---- | ---- | ---- |
| system | 用于实现利用扩展属性的内核特性,如访问控制列表(ACLs) | 用户能否读写这些属性取决于所使用的安全模块,最坏情况下,包括root用户在内的所有用户都无法读取这些属性 |
| security | 用于实现安全模块,如SELinux | 默认情况下,所有进程都可以读取这些属性,但只有具有CAP_SYS_ADMIN能力的进程才能写入 |
| trusted | 在用户空间存储受限信息 | 只有具有CAP_SYS_ADMIN能力的进程才能读写这些属性 |
| user | 供常规进程使用的标准命名空间 | 内核通过常规文件权限位控制对该命名空间的访问。读取现有键的值,进程必须对给定文件具有读权限;创建新键或向现有键写入值,进程必须对给定文件具有写权限。只能将该命名空间的扩展属性分配给常规文件,不
超级会员免费看
订阅专栏 解锁全文
1138

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



