Linux每日一篇 - 88 - chattr
Linux文件属性修改神器!掌握chattr命令,轻松设置文件高级属性,保护重要文件!
chattr命令是什么?
chattr命令用于修改文件或目录的扩展属性,可以设置文件为不可变、只追加等特殊属性,提供比普通权限更强的保护机制。
基本用法
# 设置文件为不可变(不能修改、删除、重命名)
chattr +i filename
# 移除不可变属性
chattr -i filename
# 设置文件只能追加内容
chattr +a filename
# 移除只追加属性
chattr -a filename
# 递归设置目录及子文件属性
chattr -R +i directory/
# 查看文件属性
lsattr filename
# 设置多个属性
chattr +ai filename # 不可变+只追加
# 移除多个属性
chattr -ai filename
实用技巧
# 保护重要配置文件
chattr +i /etc/passwd
# 设置日志文件只能追加
chattr +a /var/log/myapp.log
# 递归保护整个配置目录
chattr -R +i /etc/myapp/
# 查看文件属性
lsattr /etc/passwd
# 临时移除保护进行修改
chattr -i important_file
# 修改文件...
chattr +i important_file
# 设置目录内容不能被删除
chattr +a directory/
# 保护脚本不被意外修改
chattr +i my_important_script.sh
# 递归查看目录属性
lsattr -R /etc/myapp/
常用场景
# 保护系统关键文件
chattr +i /etc/hosts
# 防止日志文件被覆盖
chattr +a /var/log/application.log
# 保护重要脚本
chattr +i /usr/local/bin/important_script
# 设置目录使其内容只能添加不能删除
chattr +a /var/backup/
# 保护SSL证书文件
chattr +i /etc/ssl/certs/mycert.pem
# 在脚本中临时修改保护
chattr -i /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
chattr +i /etc/resolv.conf
# 保护用户配置文件
chattr +i ~/.bashrc
# 保护整个配置目录
chattr -R +i /etc/nginx/