lsattr用于查看ext2/ext3/ext4文件系统中由chattr设置的底层隐藏属性,与rwx权限无关;核心属性包括i(第5位,不可变)、a(第2位,仅追加)、A(第3位,不更新atime)、e(末位附近,extent格式);常用选项有-a(含隐藏文件)、-d(查目录自身)、-R(递归);输出为16字符标志位,如----i--------e--表示已设i和e属性。

用 lsattr 命令查看文件的扩展属性与隐藏标志信息,它专用于显示 ext2/ext3/ext4 文件系统中由 chattr 设置的底层控制位,和常规 rwx 权限无关。
哪些属性最常遇到
输出中每 16 位字符对应一种标志,重点关注这几个:
-
i(第5位):不可变 —— 文件不能修改、删除、重命名,root 也需先
chattr -i才能操作 - a(第2位):仅追加 —— 日志类文件适用,可写新内容,但不能覆盖、截断或删除自身
- A(第3位):不更新访问时间(atime)—— 频繁读取时减少磁盘写入,对 SSD 友好
- e(最后一位附近):extent 格式 —— ext4 默认启用,纯存储优化标识,用户无需干预
常用查看方式
不加选项只查单个普通文件;多数实际场景需搭配选项:
- 查当前目录所有文件(含 .bashrc 等隐藏文件):
lsattr -a - 查某个目录自身的属性(不是里面的内容):
lsattr -d /path/to/dir - 递归查看整个目录树:
lsattr -R /var/log - 查指定隐藏文件(如 .ssh/config):
lsattr .ssh/config - 筛选带 i 属性的项:
lsattr -a | grep 'i$'
识别输出是否正常
标准输出是固定 16 位字符 + 路径,例如:
----i--------e-- /etc/shadow
从左到右第5位是 i,说明已加不可变锁;末尾 e- 表示使用 extent 存储。全为 - 就代表没设额外属性。
若报 Operation not supported,不是权限问题,而是文件系统不支持(比如挂载了 NTFS、XFS 或容器内文件系统),别尝试 sudo 强行解决。
前提:确保命令可用
lsattr 不是 shell 自带命令,属于 e2fsprogs 工具包:
- Ubuntu/Debian:
sudo apt install e2fsprogs - CentOS/RHEL:
sudo yum install e2fsprogs或sudo dnf install e2fsprogs - Alpine:
apk add e2fsprogs
装好后只对 ext2/ext3/ext4 生效;XFS、Btrfs 等不兼容该命令的完整功能。


















