chattr指令可改变linux文件系统的文件属性,通用格式为:+-=[aAcCdDeijsStTu]
“ aAcCdDeijsStTu ” 表示可以赋予文件的新属性,这些属性共有以下几种模式 。
* a:让文件或目录仅供附加用途;
* A:当一个具有“A”属性的文件被访问时,它的atime记录不会被修改;
* c:将文件或目录压缩后存放;
* d:将文件或目录排除在倾倒操作之外;
* i:不得任意更动文件或目录;
* j:如果文件系统安装有“data=order”或“data=writeback”选项,则具有“j”属性的文件在写入文件本身之前将其所有数据写入ext 3日志;
* s:当删除具有“s”属性集的文件时,其块将被归零并写回磁盘;
* S:当修改具有“S”属性集的文件时,更改将同步写入磁盘;这相当于应用于文件子集的“同步”挂载选项;
* u:当删除具有‘u’属性集的文件时,它的内容将被保存。
**语法格式:** chattr [参数] [文件]
**实用参数:**
| -R | 递归处理目录下的所有文件 |
| ---- | -------------------------- |
| -v | 设置文件或目录版本 |
| -V | 显示指令执行过程 |
| + | 开启文件或目录的该项属性 |
| -- | 关闭文件或目录的该项属性 |
| = | 指定文件或目录的该项属性 |
**参考实例**
用chattr命令防止系统中某个关键文件被修改(加锁):
```
[root@anycode ~]# chattr +i /etc/resolv.conf
```
解锁:
```
[root@anycode ~]# chattr -i /home/omd/h.txt
```
让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
```
[root@anycode ~]# chattr +a /var/log/messages
```