Linux常用命令学习笔记:chattr

1. 命令概述

  • 命令名称chattr
  • 主要功能:改变文件或目录的属性。这些属性是存储在文件系统中的高级标志,可以控制文件系统的底层行为,提供更强的文件管理控制(如防删除、防修改)。
  • 核心特点chattr 设置的属性比常规的 rwx 权限更底层、更强大。一些关键属性需要 root 权限才能设置。
  • 查看属性:使用 lsattr 命令。

2. 语法格式

chattr [选项] [+/-/=属性] 文件或目录

3. 选项与属性模式

类别选项/符号说明
常用选项-R递归处理,对目录及其下的所有文件和子目录生效。
-V显示命令执行的详细信息。
-v显示命令版本信息。
属性模式+添加某个属性。
-移除某个属性。
=重置属性,即只拥有等号后指定的属性。

4. 常用属性详解

属性说明权限要求
a (Append Only)仅能追加:文件内容只能增加,不能修改或删除已有内容。非常适合日志文件。root
i (Immutable)不可变:文件不能被删除、修改、重命名、创建硬链接。最高级别的保护。root
A (No atime updates)不更新文件的最后访问时间(atime),有助于提升磁盘I/O性能。
c (Compressed)文件在磁盘上会自动进行压缩(需要文件系统支持)。
s (Secure Delete)安全删除:文件被删除时,其磁盘空间会被清零,数据不可恢复。
u (Undelete)与 s 相反。文件被删除后,其内容仍可恢复
d (No dump)文件在执行 dump 备份时会被跳过

核心提示:最常用且最重要的两个属性是 i(不可变) 和 a(仅追加),它们通常需要 sudo 权限。

5. 实例详解

(1) 添加属性 (+)

  • 防止系统关键文件被修改sudo chattr +i /etc/passwd sudo chattr +i /etc/shadow
  • 设置日志文件只能追加,不能清空sudo chattr +a /var/log/syslog
  • 递归保护整个目录sudo chattr -R +i /etc/important_configs/

(2) 移除属性 (-)

  • 取消文件的不可变属性以便修改sudo chattr -i file.txt

(3) 重置属性 (=)

  • 移除文件所有现有属性,并只设置为“仅追加”sudo chattr =a file.txt

6. 查看属性:lsattr 命令

设置属性后,使用 lsattr 命令来查看。

lsattr filename

输出示例

----i---------e-- file.txt
  • 输出中的 i 表示该文件设置了不可变属性。
  • e 是常见的扩展属性标识,表示该文件正在使用 ext 文件系统的扩展属性,通常可以忽略。

小结: chattr 命令是 Linux 系统管理和安全中一个非常强大的工具。它的核心价值在于通过设置底层文件系统属性,实现常规权限无法做到的强制保护

  • 记住两个最关键的属性+i(锁死文件) 和 +a(保护日志)
  • 操作前务必谨慎:错误地设置属性可能导致系统服务异常。修改系统文件属性前,请确保你了解其后果。
  • 操作流程:需要修改被 i 或 a 锁定的文件时,先 chattr -i 解锁,修改完成后再 chattr +i 锁上。

作 者:南烛
链 接:https://www.itnotes.top/archives/191
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇