chattr [-RVf] [-v version] [mode] files…

  chattr修改文件在Linux第二扩展文件系统(E2fs)上的特有属性。符号模式(mode)有+-=[aAcCdDeijsStTu]。

操作符+用来增加选定的属性;-用来撤消选定的属性;=用来指定文件的唯一属性。字母’aAcCdDeijsStTu’选择文件的新属性:仅附加(a),不更新atime(A),压缩(c),不受写时拷贝影响(C),没有转储(d),同步目录更新(D),扩展格式(e),不可变(i),数据日志(j),安全删除(s),同步更新(S),不支持尾部合并(t),目录层次结构(T)和不可删除(u)。

以下属性是只读的,可以由lsattr(1)列出,但不能通过chattr修改:压缩错误(E),大文件(h),索引目录(l),内联数据(N),压缩原始访问(X),压缩脏文件(Z)。

并非所有文件系统都支持或使用所有标志;有关特定于文件系统的详细信息,请参阅特定于文件系统的手册页,例如btrfs(5),ext4(5)和xfs(5)。

(1).选项

-R 以递归方式修改目录及其下内容属性
-V 详尽给出chattr的输出信息,并打印出程序版本
-f 不列出大多数错误信息
-v version 设置文件系统的版本

(2).属性

具有a属性集的文件只能在追加模式下打开以进入写入。只有超级用户或具有CAP_LINUX_IMMUTABLE功能的进程才能进行设置或清楚此属性。

访问具有A属性集的文件时,不会修改其atime记录。这可以避免笔记本电脑系统的一定数量的磁盘I/O。

设置了c属性的文件由内核自动压缩到磁盘上。从此文件读取将返回未压缩的数据,写入文件会先压缩数据再将数据存储到磁盘。注意:请务必了解(3).缺陷与限制

设置了C属性的文件不会受写时拷贝更新的影响。仅在执行写时拷贝的文件系统上支持此标志。注意:对于dtrfs,应该在新文件或空文件上设置C标志。如果在已有数据块的文件上设置它,则当分配给文件的块完全稳定时,它是未定义的(?)。C标志在目录上设置,它对目录没有影响,但在该目录下中创建的新文件将是No_COW属性。

设置了d属性的文件不能对其运行dump(8)程序进行备份。

当修改了设置D属性的目录时,会在磁盘上同步写入更改;这相当于已用与文件子集的’dirsync’挂载选项。

e属性表示该文件正在使用扩展区来映射磁盘上的块。可能无法使用chattr(1)删除它。

实验性压缩补丁使用E属性来指示压缩文件具有压缩错误。它可能不会使用chattr(1)设置或重置,尽管它可以lsattr(1)显示。

h属性表示文件以文件系统块大小为单位而不是以扇区为单位存储块,并且意味着该文件(或一次)大于2TB。它可能不会使用chattr(1)设置或重置,尽管它可以由lsattr显示。

无法修改具有i属性的文件:无法删除或重命名文件,无法为此文件创建链接,也无法将数据写入文件。只有超级用户或拥有CAP_LINUX_IMMUTABLE功能的进程才能设置或清除此属性。

Htree代码使用I属性来指示使用散列树索引目录。它可能不会使用chattr(1)设置或重置,尽管它可以由lsattr(1)显示。

如果文件系统使用”data=ordered”或”data=writeback”选项挂载,则具有j属性的文件会在写入文件本身之前将其所有数据写入ext3或ext4日志。当使用”data=journal”选项挂载文件系统时,所有文件数据都已记录,并且此属性不起作用。只有超级用户或拥有CAP_SYS_RESOURCE功能的进程才能设置或清除此属性。

设置了N属性的文件表示该文件在inode本身内具有内联存储的数据。它不能使用chattr(1)设置或重置,尽管它可以由lsattr(1)显示。

删除具有s属性集的文件时,其块将归零并写入磁盘。注意:请务必了解(3).缺陷与限制

修改具有S属性集的文件时,会在磁盘上同步写入更改;这相当于应用于文件子集的’sync’挂载选项。

具有t属性的文件在文件末尾将没有与其他文件合并生成的部分块片段(对于那些支持尾部合并的文件系统)。这对于例如LILO这种直接读取文件系统和不能理解合并文件的应用程序是必要的。注意:在本文中(此时系统是CentOS7.2),ext2和ext3文件系统不支持尾部合并。

对于Orlov块分配器,具有T属性的目录将被视为目录层次结构顶层。这是对于ext3和ext4使用的块分配器的一个提示,表明该目录下的子目录不相关,因此为了分配的目的应该分开。例如,在/home目录中设置T属性是一个非常好的主意,以便/home/john和/home/mary被放置在单独的块组中。对于未设置此属性的目录,Orlov块分配器将尽可能将子目录分组在一起。

当具有u属性集的文件被删除时,其内容被保留。这允许用户请求回复删除。注意:请务必了解(3).缺陷与限制

实验压缩补丁使用X属性来指示可以直接访问压缩文件的原始内容。它目前可能使用chattr(1)来设置或重置,尽管它可以由lsattr(1)显示。

实验压缩补丁使用Z属性来指示压缩文件是脏的。它可能不会使用chattr(1)设置或重置,尽管它可以由lsattr(1)显示。

(3).缺陷与限制

在当前主流Linux内核中实现的ext2、ext3和ext4文件系统不遵循c,s,u属性。

j选项仅在文件系统挂载在ext3或ext4时才有用。

D选项仅在Linux内核2.5.19及以上版本才有用。

(4).实例

创建一个root用户都无法删除的文件

[root@xuexi ~]# touch 1
[root@xuexi ~]# ll 1
-rw-r--r--. 1 root root 0 1月 9 13:21 1
[root@xuexi ~]# lsattr 1
---------------- 1
[root@xuexi ~]# chattr +i 1
[root@xuexi ~]# ll 1
-rw-r--r--. 1 root root 0 1月 9 13:21 1
[root@xuexi ~]# lsattr 1
----i----------- 1
[root@xuexi ~]# rm -rf 1
rm: 无法删除"1": 不允许的操作

如果想要删除必须使用命令将第二文件系统的特有属性i去除

[root@xuexi ~]# chattr -i 1
[root@xuexi ~]# ll 1
-rw-r--r--. 1 root root 0 1月 9 13:21 1
[root@xuexi ~]# lsattr 1
---------------- 1
[root@xuexi ~]# rm 1
rm:是否删除普通空文件 "1"?y

(5).扩展

查看第二文件系统的属性lsattr [-RVadv] [files]

-R 递归目录及其下内容的属性

-V 显示程序版本

-a 列出所有,包括.开头的文件属性

-d 列出目录属性,而不是其下内容属性

-v 显示文件版本

Linux命令之chattr的更多相关文章

  1. 2018/03/08 每日一个Linux命令 之 chattr/lsattr

    每日一个Linux命令 2018-03-08 Linux 命令 chattr/lsattr chattr [-参数] [+/-属性] [文件或者目录] 经过今天没有对铃,粥熬糊了,我就知道...... ...

  2. linux命令 chattr超级权限控件

    linux命令:chattr 1.作用 修改ext2和ext3文件系统属性(attribute),使用权限超级用户.   linux命令:chattr 1.作用修改ext2和ext3文件系统属性(at ...

  3. Linux命令随笔

    Linux命令总结 man ==命令帮助; help ==命令的帮助(bash的内置命令); ls ==list,查看目录列表; -ld:查看目录权限; -l:(long)长格式显示属性; -F:给不 ...

  4. Linux命令整理中...

    Linux命令整理中... 最常用命令(我最近最常用的一般放在前面tipsbychsry) clear 清屏 date 显示日期 cal 显示日历 cal 2014 显示2014年的日历 shutdo ...

  5. LINUX命令总结 -------来自 水滴娃娃 的CSDN

    LINUX命令总结 标签: LINUX命令总结 2014-01-27 15:54 41039人阅读 评论(1) 收藏 举报  分类: linux(1)  版权声明:本文为博主原创文章,未经博主允许不得 ...

  6. 嵌入式开发应该掌握的一些Linux命令

    Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, ...

  7. Linux命令(持续更新ing)

    *.命令语法:  a.在进行参数设定时,通常为“-”号,若为完整参数名称,则输入“--”符号;  b.指令太长的时候,可以使用“\”符号使指令连续到下一行;  c.各种符号的意义:    ''     ...

  8. linux 命令总结(转载)

    linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Lin ...

  9. 运维必须掌握的150个Linux命令

    线上查询及帮助命令(1个)man 目录操作命令(6个)ls tree pwd mkdir rmdir cd 文件操作命令(7个)touch cp mv rm ln find rename 文件查看及处 ...

随机推荐

  1. (转)Linux下使Shell 命令脱离终端在后台运行

    转自: http://www.linuxidc.com/Linux/2011-05/35723.htm 方法如下: (1)输入命令: nohup 你的shell命令 & (2)回车,使终端回到 ...

  2. CentOS 5.8 安装python 和 yum

    centos 5.8  资源路径: http://vault.centos.org/5.8/os/x86_64/CentOS/ rpm -Uvh http://vault.centos.org/5.8 ...

  3. python学习笔记(一)之为什么学习python

    python的特点: 跨平台 实现同一个功能是Java代码的1/5 python应用范围: 操作系统 web 3D动画 企业应用 云计算 如何学习python? 学习语法 验证例子 学会总结 课外实践

  4. HDU 1070 Milk (模拟)

    题目链接 Problem Description Ignatius drinks milk everyday, now he is in the supermarket and he wants to ...

  5. 关于Solaris系统“mpt_sas”驱动

    1.mpt_sas 驱动源文件所在系统源代码中目录: illumos-soulos/usr/src/uts/common/sys/scsi/adapters/mpt_sas  -- 头文件 illum ...

  6. Python eval 函数说明

    eval(str [,globals [,locals ]]) -- 函数将字符串str当成有效Python表达式来求值,并返回计算结果. 例 :  eval('3+4')         ==> ...

  7. FastDFS介绍和配置过程

    由于网站使用nfs共享方式保存用户上传的图片,附件等资料,然后通过apache下载的方式供用户访问,在网站架构初期,使用这种简单的方式实现了静态资源的读写分离,但随着网站数据量的增加,图片服务器渐渐成 ...

  8. FreeRADIUS + MySQL 安装配置笔记

    FreeRADIUS + MySQL 安装配置笔记 https://www.2cto.com/net/201110/106597.html

  9. ue4.3正式版源码链接

    ue4.3正式版源码链接 http://tieba.baidu.com/p/3170253742

  10. C基础 工程中常用的排序

    引言 - 从最简单的插入排序开始 很久很久以前, 也许都曾学过那些常用的排序算法. 那时候觉得计算机算法还是有点像数学. 可是脑海里常思考同类问题, 那有什么用呢(屌丝实践派对装逼学院派的深情鄙视). ...