翻译自man手册,水平有限,有错还望不吝指出。。。。

扩展属性是与文件和目录相关的name:value对,用来提供文件系统的一些附加功能,例如ACL。对文件或是目录拥有读权限的用户可以看到其扩展属性。扩展属性所需的空间被计算在文件属主的磁盘配额上。目前在Linux上支持扩展属性的文件系统有:ext2,ext3,ext4,XFS,JFS,reiserfs。

一、扩展属性名称空间
属性名称的格式是namespace.attribute。名称空间是用来定义不同的扩展属性的类。目前有security,system,trusted,user四种扩展属性类。
1、扩展的安全属性
安全属性名称空间被内核用于安全模块,例如SELinux。对安全属性的读和写权限依赖于策略的设定。这策略是由安全模块载入的。如果没有载入安全模块,所有的进程都对安全属性有读权限,写权限只有那些有CAP_SYS_ADMIN的进程才有。
2、扩展的系统属性
扩展的系统属性被内核用来存储系统对象,比如说ACL。对系统属性的读和写权限依赖于策略的设定。
3、受信任的扩展属性
受信任的扩展属性只对那些有CAP_SYS_ADMIN的进程可见和可获得。这个类中的属性被用来在用户空间中保存一些普通进程无法得到的信息。
4、扩展的用户属性
扩展的用户属性被分配给文件和目录用来存储任意的附加信息,比如mime type,字符集或是文件的编码。用户属性的权限由文件权限位来定义。对于普通文件和目录,文件权限位定义文件内容的访问,对于设备文件来说,它们定义对设备的访问。扩展的用户属性只被用于普通的文件和目录,对用户属性的访问被限定于属主和那些对目录有sticky位设置的用户。

二、文件系统的不同
一些系统,比如ext,reiserfs,为了能使用扩展用户属性,要求文件系统挂载时有user_xattr选项。
在ext文件系统中,每一个扩展属性必须占用一个单独的文件系统块,块大小取决于创建文件系统时的设置。
在XFS和reiserfs文件系统中,没有这种限制,每个扩展属性所存储的大小是可变的。

三、用户命令
1、attr:XFS文件系统对象上的扩展属性。用来存储文件的元信息。name最长256个字节,values最大64kb(values可为任意二进制数据)
XFS针对每个对象设置了两个独立的属性名称空间,root和user。root空加只能root访问,其他用户看不到也不能修改。user空间与文件权限有关,所以文件的属主可以决定谁可以查看和修改属性。
attr可以执行四种操作:
GET:-g attrname搜索有某个属性的对象并打印。
LIST:-l 列出对象的所有属性名称和空间大小
REMOVE:-r attrname 从对象上删除某个属性。
SET/CREATE:-s attrname 在对象上设置某个属性,属性值从stdin读入或-V attrvalue。
-R:设在root空间中,而不是user空间中

2、setfattr:设置对象属性(无文件系统限制)
-n name:指定属性名称
-v value:设置属性值。如果value是双引号括起来的,则将其中的字串看做文本,其中的反斜线和双引号需转义。如果是0x或0X开头,则作为十六进制数。若是0s或0S开头,作为base64编码的
-x name:删除属性
-h:如果是符号链接文件,不要follow。

3、getfattr:获取对象属性
-n name:显示指定名称的属性
-d:显示所有属性
-e en:在提取属性之后进行编码,en的值为text,hex和base64
-m pattern:正则表达式匹配的属性显示。默认匹配为'^user\\.',即匹配user名称空间的属性,可以指定为'-'匹配所有属性。
-R:递归显示

注:若setfattr显示“Operation is not support”,则setfattr的-n name需有namespace,例如:setfattr -n user.name

linux文件系统扩展属性的更多相关文章

  1. chattr lsattr linux file system attributes - linux 文件系统扩展属性

    我们使用 linux 文件系统扩展属性,能够对linux文件系统进行进一步保护:从而给文件 赋予一些额外的限制:在有些情况下,能够对我们的系统提供保护: chattr命令用来改变文件属性.这项指令可改 ...

  2. Linux 文件系统扩展属性【转】

    转自:https://blog.csdn.net/ganggexiongqi/article/details/7661024 扩展属性(xattrs)提供了一个机制用来将<键/值>对永久地 ...

  3. linux文件系统拓展属性

    在研究GlusterFS中,发现GlusterFS使用了文件系统的Extended Attributes,中文可以称之为文件系统扩展属性.由于资料比较少,中文资料更少,因此把记录几点Extended ...

  4. chattr - 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性

    SYNOPSIS(总览) chattr [ -RV ] [ -v version ] [ mode ] files... DESCRIPTION(描述) chattr 修改文件在Linux第二扩展文件 ...

  5. lsattr - 显示文件在Linux第二扩展文件系统上的特有属性

    SYNOPSIS(总览) lsattr [ -RVadv ] [ files... ] DESCRIPTION(描述) lsattr 显示文件在Linux第二扩展文件系统上的特有属性 OPTIONS( ...

  6. Linux文件系统简介一(磁盘分区、开机过程、目录结构、文件权限、文件扩展名、目录管理)

    Linux:就是一组软件,一套操作系统=核心+系统呼叫接口层. 1.操作系统 操作系统 = 核心(内核) + 系统呼叫(接口) 操作系统其实也是一组程序,重点在于管理计算机的所有活动以及驱动系统中的所 ...

  7. Ext4文件系统架构分析(三) ——目录哈希、扩展属性与日志

    struct dx_root Htree的内部节点: struct dx_node Htree 树根和节点中都存在的 Hash map: struct dx_entry 1.20 扩展属性EA 扩展属 ...

  8. linux中suid/sgid/sticky及扩展属性(attr)

    suid只适用于命令文件.(如/usr/bin/passwd) 当命令文件上有suid权限时,则操作用户的权限变成属主权限.命令文件上无suid权限则操作用户的权限不变. 查看suid权限: [roo ...

  9. Linux实战教学笔记08:Linux 文件的属性(上半部分)

    第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...

随机推荐

  1. python中关于round函数的小坑

    这个一直都想写,但是因为这个点比较小,所以一直懒得动手.不过还是补上吧,留着早晚是个祸害. round函数很简单,对浮点数进行近似取值,保留几位小数.比如 >>> round(10. ...

  2. 每日英语:Don't Call Us Bossy

    [Confident girls are often called the other B-word, and it can keep them from reaching their full po ...

  3. Python多线程与多线程中join()的用法

    多线程实例 https://www.cnblogs.com/cnkai/p/7504980.html 知识点一:当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行流的最小单元,当设置多线程时 ...

  4. NodeJS + PhantomJS 抓取页面信息以及截图

    利用PhantomJS做网页截图经济适用,但其API较少,做其他功能就比较吃力了.例如,其自带的Web Server Mongoose最高只能同时支持10个请求,指望他能独立成为一个服务是不怎么实际的 ...

  5. STM32 多通道ADC采样,采用Timer1进行采样率控制,利用DMA进行传输

    http://blog.csdn.net/varding/article/details/17559399 http://www.51hei.com/stm32/3842.html https://w ...

  6. Linux(C/C++)下的文件操作open、fopen与freopen

    open是linux下的底层系统调用函数, fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲. linxu下的fopen是open的封装函数,fopen最终还是要调用底层的 ...

  7. Spring AOP 详解[转]

    此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题.最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决.一方面是为了以更加灵活的方式来解决问题,另一方 ...

  8. wpf 模板选择器DataTemplateSelector及动态绑定,DataTemplate.Triggers触发器的使用

    通常,如果有多个 DataTemplate 可用于同一类型的对象,并且您希望根据每个数据对象的属性提供自己的逻辑来选择要应用的 DataTemplate,则应创建 DataTemplateSelect ...

  9. plsql 常用函数-转

    PLSQL常用函数 1)处理字符的函数 || 或 CONCAT---并置运算符. 格式∶CONCAT(STRING1, STRING2) 例:’ABC’|| ’DE’=’ABCDE’ CONCAT(‘ ...

  10. oracle 11G rac 11.2.0.1 打补丁9413827

    这是升级到以后11.2.0.2.11.2.0.3.11.2.0.4的基础 主要参考两篇文章: Upgrade_11.2.0.1_GI_CRS_to_11.2.0.2_in_Linux.PDF文件 ht ...