前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux命令(16)——chattr与lsattr命令

Linux命令(16)——chattr与lsattr命令

作者头像
恋喵大鲤鱼
发布2018-08-03 11:06:22
8120
发布2018-08-03 11:06:22
举报
文章被收录于专栏:C/C++基础

1.简介

chattr与lsattr分别用于改变和显示文件属性,与chmod命令相比,chmod只改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

2.chattr命令

2.1命令格式

代码语言:javascript
复制
chattr [ -RVf ] [ -v version ] [ mode ] files...

2.2参数说明

代码语言:javascript
复制
-R:递归地改变指定目录下文件的属性。此选项忽略符号链接;
-V:显示命令执行的详细信息;
-f:大部分错误信息不输出;
-v:设置文件版本号;
+:在原有参数设定基础上,追加参数;
-:在原有参数设定基础上,移除参数;
=:更新指定参数设定

最关键的是在[mode]部分,[mode]部分是由+-=和+-=[acdeijstuADST]这些字符组合的,这部分是用来控制文件的属性。

chattr可以改变的文件系统属性有:

属性

含义

a

append only,只允许向文件追加数据,不允许删除和修改文件内容。如果目录有具有这个属性,系统将只允许在目录下简历和修改文件,不允许删除任何文件。只有root才能设置该属性

c

compress,自动将文件压缩,在读取时自动解压缩

d

No dump,在进行文件系统备份时,dump指令忽略此文件

e

extent format,在ext文件系统中,表示该文件使用区段(extents)映射磁盘上的块

i

immutable,不允许对文件进行任何的修改。对于目录而言,只能修改目录之下的文件,不允许建立和删除文件。只有root能设置此属性

j

journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效

s

secure deletion,系统在删除文件时,使用0填充文件所在的区域

t

no tail-merging,文件拥有t属性时,与其它文件合并时末端不会存在局部块碎片

u

undeletable,与s相反,删除文件时,文件内容其实还存在磁盘中,以便以后能够恢复删除的文件

A

Atime,不能修改文件的最后访问时间

D

如果一个目录设置了D属性,任何改变将同步到磁盘;这等价于mount命令中的dirsync选项,同步目录

S

Sync,一旦应用程序对文件执行了写操作,则立刻将改动同步到磁盘

T

目录设置T属性,Orlov块分配器将该目录视为目录层次结构的顶部,提示块分配器该目录下的子目录是无关的,将被分散的分配

注意: chattr指令所修改的文件属性和chmod指令修改的文件属性是两个不同层次的属性,前者是底层文件系统来设定的,而chmod指令则是站在用户使用的角度来设定的。

2.3常见示例

(1)用chattr命令防止系统中某个关键文件被修改:

代码语言:javascript
复制
chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

(2)让某个文件只能追加内容,不能删除或修改,一些日志文件适用于这种操作。

代码语言:javascript
复制
chattr +a /data1/user_act.log

3.lsattr命令

3.1命令格式

代码语言:javascript
复制
lsattr [ -RVadv ] [ files... ]

3.2命令选项

代码语言:javascript
复制
-R:递归列出子目录及其文件的属性
-V:显示lsattr版本信息
-a:显示所有隐藏的文件属性
-d:如果是目录,则只显示目录本身的属性,而非目录内的文件名
-v:显示文件版本号

3.3使用示例

代码语言:javascript
复制
[root@add_friend_protect ~/dablelv]# lsattr -vV
lsattr 1.41.12 (17-May-2010)
18446744072009275534 --------------- ./demo
18446744072009481631 --------------- ./inputFile.txt
18446744072009374382 -----a--------- ./input_file.txt

第一行为lsattr版本信息,第一列为文件版本号,最后一个文件input_file.txt属性a,表示只追加属性。


参考文献

[1]man chattr [2]man lsattr [3](总结)Linux的chattr与lsattr命令详解

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.chattr命令
    • 2.1命令格式
      • 2.2参数说明
        • 2.3常见示例
        • 3.lsattr命令
          • 3.1命令格式
            • 3.2命令选项
              • 3.3使用示例
              • 参考文献
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档