lsattr命令用于查看linux文件系统中由chattr设置的扩展属性,如i(不可修改)、a(只追加)等内核级特殊标志,不显示常规rwx权限,常用于排查文件无法删除或修改的问题。

lsattr 命令用于查看 Linux 文件系统中文件或目录的扩展属性,特别是那些由 chattr 设置的隐藏标志(如不可修改、不可删除、只追加等)。它不显示常规权限(如 rwx),而是显示内核级的特殊属性,常用于排查“为什么文件删不掉”“为什么改不了”这类问题。
基础用法:查看单个文件或目录的属性
直接运行 lsattr 加上目标路径即可:
- lsattr filename — 查看单个文件的属性
- lsattr dirname — 查看目录本身的属性(不递归)
- lsattr -d dirname — 显式指定只显示目录自身(等同上一条)
常用选项:让输出更实用
实际使用中常配合以下选项:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- lsattr -a — 显示包括隐藏文件(以 . 开头)在内的所有条目
- lsattr -R — 递归显示目录下所有子目录和文件的属性
- lsattr -l — 以长格式显示属性的完整英文名称(如 “append only”),便于理解
- lsattr -V — 查看命令版本(部分旧系统可能不支持某些属性)
关键属性含义:识别常见“加锁”状态
输出中每行开头是一串字母,代表当前文件/目录启用的属性。重点关注以下几种:
- a — 只允许追加内容(如日志文件),不能覆盖或截断
- i — 不可修改(immutable):无法删除、重命名、写入、链接,甚至 root 也无法操作(最严格的“加锁”)
- A — 禁止更新访问时间(atime),减少 I/O
- S — 同步写入(每次修改立即写入磁盘)
- d — 不参与 dump 备份
例如:----i---------e--- /etc/passwd 表示该文件被设为 immutable(i),且使用了扩展属性(e)。
注意事项与常见问题
这些属性依赖于文件系统支持(ext2/3/4、XFS、Btrfs 等大多支持,但 FAT/NFS 通常不支持)。还需注意:
- 普通用户无法查看其他用户文件的属性(除非有读权限);i 属性会阻止几乎所有操作,包括 root —— 必须先用 chattr -i 解除才能修改
- 某些属性(如 i、a)只能由 root 或具备 CAP_LINUX_IMMUTABLE 能力的进程设置/清除
- 在容器或只读挂载环境中,lsattr 可能报错或返回空,需确认文件系统是否支持及挂载选项(如 ro 本身已限制写入,与 chattr 属性无关)










