
Linux chattr 命令
chattr 是 Linux 中用于修改文件或目录属性的命令。通过这些属性,可以实现对文件系统的高级控制,增强文件管理的安全性和灵活性。
语法格式
chattr [参数] [+/-/=属性] 文件或目录
常用参数
-
-R:递归操作,包括子目录内容 -
-V:显示详细执行信息 -
-v:输出命令版本号
属性操作方式
-
+:为文件添加指定属性 -
-:从文件移除指定属性 -
=:将文件属性设置为指定值
常见属性说明
| 属性 | 作用描述 |
|---|---|
| `a` | **仅允许追加**:只能在文件末尾写入新内容,无法删除或修改已有内容(需 root 权限)。 |
| `i` | **不可更改**:文件不能被删除、编辑、重命名,也无法创建硬链接(需 root 权限)。 |
| `A` | 禁止更新文件的访问时间戳(atime)。 |
| `c` | 启用自动压缩功能(依赖文件系统支持)。 |
| `s` | 安全删除模式:删除文件时数据会被覆盖清除(无法恢复)。 |
| `u` | 保留文件删除前的数据(与 s 属性互斥,可用于恢复)。 |
| `d` | 备份时跳过该文件(dump 工具不会处理)。 |
使用示例
添加属性(+)
sudo chattr +i file.txt # 设置文件为只读锁定状态 sudo chattr +a /var/log/syslog # 限制日志文件仅能追加内容
删除属性(-)
sudo chattr -i file.txt # 解除文件锁定状态
设定唯一属性(=)
sudo chattr =a file.txt # 清除所有属性,仅保留 a 属性
保护系统关键文件
chattr +i /etc/passwd chattr +i /etc/shadow
限制日志文件修改方式
chattr +a /var/log/messages
批量设置目录属性
chattr -R +i /etc/important/
查看当前文件属性(配合 lsattr 使用)
lsattr filename
查看结果示例:
----i--------- file.txt # 表示文件具有 i(不可变)属性










