一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux 文件属性权限排查:如何通过 lsattr 查看隐藏位

时间:2026-07-07 09:30:46 编辑:袖梨 来源:一聚教程网

lsattr用于查看Linux文件系统底层隐藏属性,而非rwx权限;核心属性包括i(不可变,root也无法删除)、a(仅追加)、A(不更新atime)、e(extent格式,默认);常用选项有-d(查目录自身)、-a(含隐藏文件)、-R(递归);输出为16字符标志位,如----i--------e--中第5位i表示已锁定。

lsattr 不是用来查看常规的 rwx 权限,而是专门查 Linux 文件系统底层的“隐藏属性位”——这些属性独立于 chmod 设置的权限,能真正锁死文件行为,比如 root 都删不掉。

哪些属性最值得你关注

输出中出现的字母不是随便排的,每个都对应一种硬性控制:

  • i:不可变(immutable)——不能改内容、不能删、不能重命名、不能链接,连 root 也得先解锁才能操作
  • a:仅追加(append only)——可写新内容(如日志),但不能覆盖已有行、不能清空、不能删除文件本身
  • A:不更新访问时间——每次读文件都不触发 atime 写入,对 SSD 或高频读场景有性能意义
  • e:extent 格式——ext4 默认启用,纯技术标识,一般不用管

常用 lsattr 查看方式

别只敲 lsattr 文件名,不同场景要用不同选项:

  • 看单个文件:直接 lsattr filename
  • 看目录本身属性(不是里面的内容):加 -d,例如 lsattr -d /etc
  • 看目录里所有文件(含 . 开头的隐藏文件):加 -a
  • 递归查整个目录树:加 -R,比如 lsattr -R /var/log

怎么判断 lsattr 输出是否正常

输出格式是固定 16 位字符 + 文件路径,例如:

----i--------e-- /etc/shadow

从左到右第 5 位是 i,说明已加不可变锁;最后两位是 e-,表示使用 extent 存储且无其他特殊标记。中间全是 - 就代表没设额外属性。

注意:如果看到空白或报错 “Operation not supported”,大概率是文件系统不支持(如 FAT32、NTFS 挂载卷),或者文件在容器/网络文件系统里,这类环境通常不提供扩展属性支持。

配合 chattr 才算闭环

lsattr 只负责“看”,真正起作用得靠 chattr:

  • 加锁:sudo chattr +i /etc/hosts
  • 解锁:sudo chattr -i /etc/hosts
  • 同时加多个:sudo chattr +ia /var/log/app.log
  • 递归加给整个目录:sudo chattr -R +i /opt/critical-app

操作必须用 root 权限,普通用户执行会提示 Permission denied。

热门栏目