Linux常用命令学习笔记:lsattr

1. 命令概述

  • 命令名称lsattr (英文全拼:list attributes)
  • 核心功能:查看文件的扩展属性(extended attributes)
  • 主要用途:查看文件或目录的特殊属性,如只读、不可删除、不可修改等
  • 相关命令chattr(修改扩展属性)

2. 语法格式

lsattr [选项] [文件...]

3. 常用选项

选项说明
-R递归显示目录及其子目录的属性
-a显示所有文件和目录,包括隐藏文件
-d显示目录本身的属性,而不是目录内容
-v显示文件版本号
-V显示版本信息
--help显示帮助信息

4. 扩展属性说明

(1) 常用属性

属性说明
a只允许追加内容(append only)
A不更新访问时间(no atime updates)
c压缩存储(compressed)
d不备份(no dump)
e使用 extents 格式(extent format)
i不可修改(immutable)
j数据日志(data journaling)
s安全删除(secure deletion)
t不进行尾部合并(no tail merging)
u不可删除(undeletable)
D同步目录更新(synchronous directory updates)
S同步更新(synchronous updates)
T目录层次结构顶部(top of directory hierarchy)

(2) 属性组合示例

  • e:默认属性,表示文件使用 extents 格式
  • i:文件不可修改、不可删除、不可重命名
  • a:文件只允许追加内容,不能修改或删除
  • d:文件不会被 dump 备份工具备份

5. 常用实例详解

(1) 基本用法

# 查看单个文件的属性
lsattr file.txt

# 查看多个文件的属性
lsattr file1.txt file2.txt

# 查看目录下所有文件的属性
lsattr /path/to/dir/

(2) 递归查看

# 递归查看目录及其子目录的属性
lsattr -R /path/to/dir/

# 递归查看并显示隐藏文件
lsattr -Ra /path/to/dir/

(3) 查看目录本身属性

# 查看目录本身的属性
lsattr -d /path/to/dir/

# 查看当前目录的属性
lsattr -d .

(4) 查看隐藏文件

# 查看所有文件,包括隐藏文件
lsattr -a /path/to/dir/

# 查看当前目录的所有文件(包括隐藏文件)
lsattr -a

6. 实际应用场景

场景一:查看系统关键文件属性

# 查看 /etc/passwd 文件的属性
lsattr /etc/passwd

# 查看 /etc/shadow 文件的属性
lsattr /etc/shadow

# 查看 /etc/ 目录下所有文件的属性
lsattr /etc/

场景二:查看日志文件属性

# 查看日志目录的属性
lsattr -d /var/log/

# 查看所有日志文件的属性
lsattr /var/log/*.log

场景三:查看配置文件属性

# 查看 nginx 配置文件的属性
lsattr /etc/nginx/nginx.conf

# 查看 ssh 配置文件的属性
lsattr /etc/ssh/sshd_config

场景四:查看用户目录属性

# 查看用户家目录的属性
lsattr -d ~/

# 查看用户目录下所有文件的属性
lsattr ~/

7. 与 chattr 命令配合使用

(1) 设置文件属性

# 设置文件为不可修改
sudo chattr +i file.txt

# 验证属性设置
lsattr file.txt
# 输出:----i---------e---- file.txt

# 设置文件为只允许追加
sudo chattr +a file.log

# 验证属性设置
lsattr file.log
# 输出:-----a--------e---- file.log

(2) 移除文件属性

# 移除不可修改属性
sudo chattr -i file.txt

# 移除只允许追加属性
sudo chattr -a file.log

(3) 设置目录属性

# 设置目录为不可修改
sudo chattr +i /path/to/dir/

# 查看目录属性
lsattr -d /path/to/dir/

# 递归设置目录及其子目录的属性
sudo chattr -R +i /path/to/dir/

8. 注意事项

  1. 权限要求:修改扩展属性需要 root 权限(使用 sudo
  2. 文件系统支持:扩展属性需要文件系统支持(如 ext2/3/4、xfs、btrfs)
  3. 属性含义:不同文件系统可能对某些属性的支持不同
  4. 系统文件:不要随意修改系统关键文件的属性,可能导致系统异常
  5. 属性冲突:某些属性可能与其他系统功能冲突

9. 常见问题解决

(1) 无法删除文件

# 查看文件属性
lsattr file.txt

# 如果显示 i 属性,移除它
sudo chattr -i file.txt

# 删除文件
rm file.txt

(2) 无法修改文件

# 查看文件属性
lsattr file.txt

# 如果显示 i 或 a 属性,移除它
sudo chattr -i file.txt
sudo chattr -a file.txt

# 修改文件
echo "new content" > file.txt

(3) 属性不显示

# 如果 lsattr 命令不存在,可能需要安装
sudo apt-get install e2fsprogs  # Debian/Ubuntu
sudo yum install e2fsprogs      # CentOS/RHEL

核心要点总结

  • lsattr 用于查看文件的扩展属性,chattr 用于修改扩展属性
  • 常用属性i(不可修改)、a(只允许追加)、d(不备份)
  • 常用选项-R(递归)、-a(显示隐藏文件)、-d(查看目录本身)
  • 权限要求:修改属性需要 root 权限
  • 实际应用:保护系统文件、防止误删、日志文件管理
  • 注意事项:不要随意修改系统关键文件的属性,可能导致系统异常

作 者:南烛
链 接:https://www.itnotes.top/archives/254
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇