- 工信部备案号 滇ICP备05000110号-1
- 滇公网安备53011102001527号
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
- CN域名投诉举报处理平台:电话:010-58813000、邮箱:service@cnnic.cn
Linux chattr 命令详解
欢迎来到8455线路检测中心技术小课堂,每天分享一个技术小知识。
chattr(Change Attributes)是用于更改 Linux 文件系统上文件扩展属性的命令,这些属性控制着文件的高级行为特性。
基本语法
chattr [选项] [+-=] [属性] 文件...
常用属性
核心属性
属性 描述 适用文件系统
a (append only) 只能追加内容,不能修改或删除 ext2/3/4, xfs, btrfs
i (immutable) 不可修改、删除、重命名、链接 ext2/3/4, xfs, btrfs
A (no atime updates) 不更新访问时间 ext2/3/4, reiserfs
c (compress) 启用压缩(内核处理) ext2/3/4
s (secure deletion) 安全删除(清零后删除) ext2/3/4
u (undeletable) 删除后可恢复 ext2/3/4
d (no dump) 不被 dump 备份 ext2/3/4
S (synchronous updates) 同步更新(立即写入磁盘) ext2/3/4
j (data journaling) 数据日志(ext3/4) ext3/4
常用操作符
+:添加属性
-:移除属性
=:设置精确属性(移除其他)
常用示例
1. 设置文件为不可修改
# 设置文件为只读不可修改
sudo chattr +i important_file.txt
# 尝试删除会报错
rm important_file.txt
# rm: cannot remove 'important_file.txt': Operation not permitted
2. 设置文件只能追加
# 日志文件只能追加,不能修改已有内容
sudo chattr +a /var/log/app.log
# 可以追加新内容
echo "New log entry" >> /var/log/app.log
# 但不能修改或删除
echo "Modify" > /var/log/app.log
# bash: /var/log/app.log: Operation not permitted
3. 查看文件属性
# 使用 lsattr 查看文件属性
lsattr important_file.txt
# ----i----------- important_file.txt
# i 表示设置了 immutable 属性
4. 递归设置目录
# 递归设置目录下所有文件
sudo chattr -R +i /etc/important_configs/
# 注意:-R 选项在设置目录本身时行为不同
5. 组合使用属性
# 设置多个属性
sudo chattr +aAi file.txt
# 移除特定属性
sudo chattr -i file.txt
# 精确设置属性(移除其他,只保留指定属性)
sudo chattr =ai file.txt
实用场景
保护系统文件
# 防止关键配置文件被修改
sudo chattr +i /etc/passwd
sudo chattr +i /etc/shadow
sudo chattr +i /etc/sudoers
保护日志完整性
# 确保日志不被篡改
sudo chattr +a /var/log/auth.log
sudo chattr +a /var/log/syslog
开发环境保护
# 保护配置文件模板
sudo chattr +i config_template.conf
注意事项
1.需要root权限:大多数属性需要超级用户权限
2.文件系统支持:不同属性支持不同的文件系统
3.谨慎使用:
设置 +i后无法通过 rm -f删除
必须先 chattr -i才能修改
4.备份文件:chattr +d的文件不会被 dump备份
5.性能影响:某些属性(如 S同步写入)可能影响性能
故障排除
忘记取消属性
# 如果文件设置了 +i,无法用普通方式修改
# 必须先用 root 取消属性
sudo chattr -i protected_file
查看所有属性
# 详细查看文件属性
lsattr -v file.txt
# 或递归查看目录
lsattr -R /etc/
与权限的区别
标准权限:控制谁可以读、写、执行
扩展属性:控制文件的高级行为特性
扩展属性在标准权限检查之后生效
chattr是系统管理员的重要工具,特别适合保护关键系统文件不被意外或恶意修改。
8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。
更多技术知识,8455线路检测中心期待与你一起探索。
售前咨询
售后咨询
备案咨询
二维码

TOP