lsattr命令不存在需先安装e2fsprogs工具包:Ubuntu/Debian执行sudo apt install e2fsprogs,CentOS/RHEL执行sudo yum/dnf install e2fsprogs,Alpine执行apk add e2fsprogs;该命令仅支持ext2/ext3/ext4文件系统,XFS、Btrfs等不兼容。

lsattr 命令本身不存在,先装 e2fsprogs
直接运行 lsattr 报 command not found 是最常见起点——它根本不是 shell 自带命令,而是 e2fsprogs 工具包里的组件。Ubuntu/Debian 执行 sudo apt install e2fsprogs;CentOS/RHEL 用 sudo yum install e2fsprogs 或 sudo dnf install e2fsprogs;Alpine 则是 apk add e2fsprogs。装完才能用。
注意:lsattr 只在 ext2/ext3/ext4 文件系统上有效。XFS、Btrfs、NTFS 挂载卷、容器 rootfs(如多数精简镜像)、NFS 共享目录等,执行会报 Operation not supported——这不是权限问题,是内核不支持,别试 sudo 或改 chmod。
查单个文件,不用加任何选项
想确认某个具体文件有没有被设隐藏属性,最直接就是:lsattr /path/to/file。输出形如 ----i--------e-- /etc/shadow,其中第 5 位是 i 就表示已加不可变锁;最后两位是 e- 表示使用 extent 存储(ext4 默认,不用管);中间全是 - 就说明没额外属性。
常见误操作:
- 对非 ext 系统路径硬查,白等报错
- 漏掉路径,比如只输
lsattr不跟文件名,它会默认查当前目录所有非隐藏文件,容易漏目标 - 把隐藏文件(如
.bashrc)当普通文件查,但lsattr默认跳过以.开头的项,得显式写全名:lsattr .bashrc
查目录里所有文件(含隐藏项),必须加 -a
lsattr /etc 默认只列 /etc 下不以 . 开头的文件,.bashrc、.profile 这类全被过滤掉。要一网打尽,得加 -a:lsattr -a /etc。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
几个关键点:
-
-a和-R可以共用,但写法必须是lsattr -a -R /path或lsattr -aR /path(部分老版本不支持连写) -
lsattr -a查当前目录时,会显示.和..,别误以为是两个真实文件 - 如果只想看目录自身的隐藏属性(不是里面的内容),加
-d:lsattr -d /var/log
识别关键属性:i 和 a 最值得盯住
输出那串 16 位字符里,真正影响行为的就几个字母:
-
i(第 5 位):immutable。root 都删不掉、改不了、重命名不了——系统关键文件如/etc/passwd被篡改前常被加这个 -
a(第 2 位):append-only。日志文件(如/var/log/messages)加了它,程序能追加写,但不能覆盖、清空或rm,防删日志取证 -
A(第 1 位):不更新 atime。高频读场景(如数据库热数据目录)可减 SSD 写入磨损 -
e(倒数第 2 位):extent 格式,ext4 默认启用,纯技术标识,用户无需干预
其他属性如 s(安全删除)、u(可恢复删除)极少手动设置,且依赖文件系统支持,日常排查优先盯 i 和 a。
真正难搞的是:属性和 chmod 权限是两套机制,i 锁死之后,chmod 改权限、chown 改属主全失效——这时候光看 ls -l 会误判,必须 lsattr 才见真章。










