当前位置:首页 > Centos > 正文

Centos lsattr命令详解(手把手教你查看Linux文件系统属性)

在 Linux 系统中,尤其是 CentOS 这类企业级发行版中,文件除了常规的读写执行权限外,还可能拥有特殊的文件系统属性。这些属性可以控制文件是否能被删除、修改、重命名等,即使你是 root 用户也可能受限。要查看这些隐藏的属性,就需要用到 lsattr 命令。

Centos lsattr命令详解(手把手教你查看Linux文件系统属性) lsattr命令 查看文件属性 Linux文件系统属性 lsattr使用教程 第1张

什么是 lsattr 命令?

lsattr 是 “list attributes” 的缩写,用于列出文件或目录的扩展属性(Extended Attributes),这些属性由文件系统(如 ext2/ext3/ext4)提供支持。

常见的属性包括:

  • i:不可变属性(immutable),文件不能被修改、删除、重命名,也不能创建硬链接。
  • a:仅追加(append-only),文件只能追加内容,不能覆盖或删除已有内容。
  • s:安全删除(secure deletion),删除时用零填充数据(现代文件系统中通常无效)。
  • u:未删除(undeletable),删除时保留数据以便恢复(同样在现代系统中作用有限)。

如何使用 lsattr 查看文件属性?

基本语法如下:

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

1. 查看单个文件的属性

$ lsattr /etc/passwd-------------e-- /etc/passwd  

输出中,每行开头的 16 个字符代表属性。例如:e 表示文件使用 extent 格式(ext4 特性),其余为短横线表示无特殊属性。

2. 查看目录下所有文件的属性

$ lsattr /etc/----i--------e-- /etc/shadow-------------e-- /etc/hosts-------------e-- /etc/resolv.conf  

可以看到 /etc/shadow 文件设置了 i 属性,说明它被设为不可变,防止被意外修改或删除——这是系统安全加固的常见做法。

3. 常用选项

  • -d:查看目录本身的属性,而不是目录内的文件。
  • -R:递归查看子目录中的所有文件。
  • -a:显示以点(.)开头的隐藏文件。
# 查看 /etc 目录本身的属性$ lsattr -d /etc-------------e-- /etc# 递归查看 /var/log 下所有日志文件的属性$ lsattr -R /var/log  

如何设置或移除这些属性?

虽然本文重点是 Centos lsattr命令,但为了完整性,简单提一下设置属性的命令:chattr(change attributes)。

# 给文件 test.txt 添加不可变属性$ sudo chattr +i test.txt# 移除不可变属性$ sudo chattr -i test.txt# 设置仅追加模式(常用于日志文件)$ sudo chattr +a secure.log  

⚠️ 注意:只有 root 用户或具有 CAP_LINUX_IMMUTABLE 能力的进程才能修改这些属性。

为什么需要了解 lsattr?

掌握 查看文件属性 的技能对系统管理员至关重要:

  • 排查“明明有权限却无法删除文件”的问题;
  • 加强关键配置文件(如 /etc/passwd/etc/shadow)的安全性;
  • 审计系统是否存在异常文件属性设置(可能是恶意软件行为)。

总结

lsattr 是 CentOS 和其他 Linux 发行版中一个强大但常被忽视的工具。通过它,你可以深入了解文件系统的底层保护机制。结合 chattr,你还能主动加固系统安全。

无论你是刚接触 Linux 的小白,还是有一定经验的运维人员,掌握 Linux文件系统属性lsattr使用教程 都将大大提升你的系统管理能力。

提示:在生产环境中修改文件属性前,请务必确认操作后果,避免造成服务中断。