直接锁定关键配置文件的不可变属性是最底层防篡改手段,需优先锁定/etc/passwd、/etc/shadow、/etc/group、/etc/sudoers、/etc/fstab、/etc/crypttab、/boot/grub2/grub.cfg等静态核心文件,避开动态文件,并严格遵循备份→验证→锁定三步法及配套监控与变更流程。
直接锁定关键配置文件的不可变属性,是防篡改最底层、最有效的手段之一。它不依赖用户权限判断,而是由文件系统内核强制拦截所有写操作——哪怕 root 用户也无法覆盖、删除或重命名加了 +i 属性的文件。但这不是“一锁了事”,必须配合备份、验证、受控变更与监控,才能真正落地生效。
加 +i 不是越多越好,锁错反而导致系统无法启动或服务异常。优先锁定以下极少变动、系统强依赖的静态配置:
visudo 编辑,并先运行 visudo -c 验证语法,否则加锁后无法更新/etc/nginx/nginx.conf(确认不启用热重载)明确避开这些动态文件:/etc/resolv.conf(NetworkManager 会写)、/etc/hostname(云平台自动更新)、/var/log/*(日志轮转必写)、/proc 或 /sys 下的虚拟文件——它们加 +i 会导致功能中断或命令报错。
顺序不可颠倒,跳过任一环节都可能引发故障:
cp /etc/sudoers /etc/sudoers.bak
visudo -c 确保语法无误;对 /etc/fstab 执行 mount -a 测试挂载逻辑是否通chattr +i /etc/sudoers;再用 lsattr /etc/sudoers 确认输出含 i 标志(如 ----i---------e---)echo test >> /etc/sudoers,应返回 Operation not permitted
加锁只是起点,日常运维必须建立闭环机制:
kysecctl --set config-immutable=on,再 systemctl restart kysec 持久生效auditctl -w /etc/sudoers -p wa -k sudoers_protect,配合 ausearch -k sudoers_protect 追踪访问行为Windows 无 chattr,但可通过组合方式实现类似效果:
%SystemRoot%System32driversetchosts、C:WindowsSystem32GroupPolicy 等路径,右键→“属性”→“安全”→编辑权限,移除非管理员用户的“写入”和“修改”权限icacls 固化权限,例如:icacls C:WindowsSystem32driversetchosts /inheritance:r /grant:r "SYSTEM:(RX)""Administrators:(RX)"