Linux chattr命令使用详解
chattr命令用于改变文件属性。
用法
chattr [ -RVf ] [ -v version ] [ -p project ] [ mode ] files…
描述
符合mode的格式是+-=[aAcCdDeijPsStTu]
+: 选中的符合将被添加到文件-: 选中的符合将被从文件中移除=: 文件的属性将被设置为选中的文件
mode字符的含义:
| 字符 | 含义 |
|---|---|
| a | 让文件或目录仅供附加用途 |
| A | 当一个具有“A”属性的文件被访问时,它的atime记录不会被修改 |
| b | 不更新文件或目录的最后存取时间 |
| c | 将文件或目录压缩后存放 |
| C | 不使用Copy On Write |
| d | 将文件或目录排除在dump操作之外 |
| D | 同步目录更新 |
| e | 范围格式 |
| F | 目录查询时大小写不明感 |
| i | 不得任意更动文件或目录 |
| j | 使用数据日志 |
| P | 项目层次 |
| s | 保密性删除文件或目录 |
| S | 同步更新 |
| t | 没有尾部合并 |
| T | 目录顶部层次结构 |
| u | 预防意外删除 |
| E | 加密(只读) |
| I | 索引目录(只读) |
| N | 内联数据(只读) |
注意
并非所有的文件系统支持以上的所有文件属性
选项
| 选项 | 说明 |
|---|---|
| -R | 递归处理,将指定目录下的所有文件及子目录一并处理 |
| -V | 显示指令执行过程和程序版本号 |
| -f | 抑制大多数错误消息 |
| -v version | 设置文件的版本号 |
| -p proeject | 设置文件的项目编号 |
实例
用chattr命令防止系统中某个关键文件被修改(加锁):
1 | chattr +i /etc/resolv.conf |
解锁:
1 | chattr -i ~/h.txt |
让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
1 | chattr +a /var/log/messages |