插件窝 干货文章 Linux的chattr命令与lsattr命令怎么使用

Linux的chattr命令与lsattr命令怎么使用

文件 属性 chattr 删除 389    来源:    2025-04-24

chattrlsattr 是 Linux 系统中用于管理文件/目录扩展属性的命令,主要用于设置或查看文件的特殊属性(如防删除、防修改等)。以下是详细使用方法:


1. lsattr 命令(查看属性)

作用:查看文件/目录的扩展属性。
语法

lsattr [选项] [文件/目录]

常用选项: - -a:显示所有文件(包括隐藏文件)。 - -d:仅显示目录本身的属性(而非内容)。 - -R:递归显示子目录的属性。

示例

lsattr file.txt          # 查看单个文件的属性
lsattr -a /home          # 显示目录下所有文件(含隐藏文件)属性
lsattr -d /var/log       # 查看目录本身的属性
lsattr -R /etc           # 递归查看/etc下所有文件的属性

输出示例

----i---------e---- /etc/passwd
  • e 表示文件使用 ext4 文件系统的扩展属性。
  • i 表示文件不可修改(Immutable)。

2. chattr 命令(修改属性)

作用:修改文件/目录的扩展属性(需 root 权限)。
语法

chattr [操作符][属性] [文件/目录]

操作符: - +:添加属性 - -:移除属性 - =:强制设置为指定属性(覆盖原有)

常用属性

属性 作用
a 仅允许追加内容(不可删除/修改已有内容)
i 不可修改/删除/重命名/创建硬链接(Immutable)
A 不更新文件的访问时间(atime)
c 文件压缩存储(需文件系统支持)
s 安全删除(文件被删除时用零填充磁盘空间)
u 文件被删除后保留数据(可恢复)
e 文件使用 ext4 的扩展存储(默认启用,无需手动设置)

示例

chattr +i /etc/passwd       # 防止/etc/passwd被修改或删除
chattr -i /etc/passwd       # 解除不可修改属性
chattr +a /var/log/audit.log # 只允许追加日志(不可删除)
chattr -R +A /var/www/html  # 递归禁用目录下所有文件的atime更新

3. 注意事项

  1. 权限要求chattr 通常需要 root 权限。
  2. 文件系统支持:仅适用于 ext2/ext3/ext4、xfs、btrfs 等文件系统。
  3. 重要文件保护:对系统关键文件(如 /etc/passwd)设置 +i 可增强安全性。
  4. 误操作恢复:若误设属性导致文件无法操作,通过 chattr -i -a 解除限制。

4. 常见问题

  • Q:设置了 +i 后无法删除文件?
    A:需先运行 chattr -i 文件名 解除属性。

  • Qlsattr 显示 e 属性?
    A:这是 ext4 文件的默认标记,无需处理。

  • Q:属性不生效?
    A:检查文件系统是否支持(如 NTFS/FAT 不支持)。


通过合理使用这两个命令,可以有效保护关键文件不被误删或篡改。