千家信息网

如何理解ext2文件系统中的xattr

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容介绍了"如何理解ext2文件系统中的xattr"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
千家信息网最后更新 2025年02月23日如何理解ext2文件系统中的xattr

本篇内容介绍了"如何理解ext2文件系统中的xattr"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

§ 0x01 背景

文件系统支持一特性就是扩展性,给一个文件(inode)添加各种属性。对于ext2文件系统来说,xattr(extend attribution)是它支持的为数不多的现代文件系统的特征之一。

那么为什么需要这个特性呢?这要从文件系统的元数据和数据的区别说起。xattr属于元数据,元数据一般是固定的,但一些场景下它也要提供一定的扩展性,而xattr就是为元数据的扩展性而存在的。下面扯下我对元数据和数据的理解,分析下为什么需要元数据。

1.1 文件的元数据与数据

我们知道文件的数据分为两类:元数据(meta data)和数据(data)。元数据是用来控制用户对数据的操作的。这也符合k8s中通过对象控制对象的程序范式。

  1. 数据:记录真正对用户有意义的信息。如:文件中的内容;文件名。

  2. 元数据:辅助完成数据存取。如:文件的创建、修改时间,文件的权限。

一般来说元数据不需要用户主动感知,比如文件创建时,对应的时间信息由文件系统自动写入。但必需以不同的方式提供它的访问。如果和常规数据放一起了,如下:

filename: hello.txtmodify_time: 2021-3-7 20:00:00regular_data:hello world

这种方式可行吗?当然可行了。只是你无法控制用户是否会误操作,把对应的元数据改掉了;模块化编程的原则之一最小接口原则,在这里也适用,单独的接口修改,对比直接的修改来说,接口的能力(自由度)下降了,系统对用户的约束增强了,可以避免用户对数据的乱修改。
另外一个问题是,元数据的变更是稳定的,即使你频繁地读写一个文件,这个文件的元数据需要修改的只是对应的访问时间戳和修改时间戳。没有分开的情况下,元数据整体被频繁的读出,写入,这对系统来说是无意义的消耗,更别说在那个计算能力不足的年代背景下了。

通过以下分析,我们知道元数据需要单独存储。单独存储就需要单独的接口,因为普通文件的读写接口权限过大。但一方面,对一个文件来说,通过的读写接口不能满足对元数据修改的需求,需要提供其他系统接口。Linux下就是用ioctl系统调用实现对元数据的修改的。

§ 0x02 ext2的xattr实验

主要setfattr和getfattr。通过查看ext2代码才知道,它支持三种类型的attr。通过不同的命名前缀区分。

  1. security.xxx: 目前是selinux在用;

  2. user.xxx: 普通用户也可以使用;

  3. trusted.xxx: 只有超级用户可以使用,可以用来在用户空间实现一些特性。

示例:

  1. 为test文件增加一个属性。

setfattr -n user.word -v "hello world" testgetfattr -n user.word hello# file: hellouser.word="hello world"

§ 0x03 xattr的用途

  1. 目前了解的是ceph演进过程中,曾经用xattr来保存底层的一些信息;

  2. 安全审计相关的应用会用到security attr;

  3. attr同样也支持给目录增加属性,可能某些场景下可以用到,暂时没有想到。

"如何理解ext2文件系统中的xattr"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 文件 系统 用户 接口 时间 支持 信息 内容 就是 属性 扩展性 特性 控制 不同 可行 普通 频繁 原则 只是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 c语言加数据库图书管理系统 挑选超星数据库电子图书资源 济南手机软件开发外包 网络安全产品发展变化的趋势 汇金网络安全 四川大学网络安全推免 装备服务器 ai需要什么服务器配置 软件开发属于什么业态类型 兰州网络技术有限公司 高中信息技术 数据库说课稿 对网络安全的看法作文 潼关网络安全知识竞赛 如何开启服务器内网端口 坐标软件开发有限公司郑连强 网络安全建议作文英语高中 安卓程序监控数据库指针 健康码大数据用什么数据库 新世界各个服务器激活有区别么 描述软件开发的创新的句子 ifix报警数据库不匹配 无锡财务软件开发流程 软件开发的专业就业 eve星战前夜手游哪个服务器好 河南什么是网络技术代理商 数据库创建实验结果及分析 怎样做软件开发的老板 帆软报表服务器怎么设置外网访问 校园网络安全协议书范本 数据库系统的总体技术路线
0