限制敏感目录写入需分层控制:一、收紧基础权限与属主,如/etc为755、/etc/shadow为640且属组shadow;二、用noexec,nosuid,nodev等挂载选项从内核层禁写;三、用chattr +i锁定关键文件;四、通过auditd和inotifywait监控并告警异常写入。
限制敏感目录的写入权限,不能只靠 chmod 降权,关键在于分层控制:基础权限最小化 + 挂载选项阻断行为 + 不可变属性锁定 + 审计追踪异常写入。单一手段容易被绕过。
这是最直接的第一步,但必须精准,避免误伤服务:
drwxr-xr-x(755),属主 root:root;其中 /etc/shadow 必须是 -rw-r-----(640)或更严的 -r--------(400),且属组设为 shadow
drwx------(700),禁止其他用户进入或列目录drwxr-x---(750),属组为 syslog 或 adm,既允许日志轮转工具写入,又限制普通用户访问ls -ld /etc /root /var/log /etc/shadow
sudo chmod 700 /root && sudo chown root:shadow /etc/shadow && sudo chmod 640 /etc/shadow
chmod 只控“能不能写”,挂载选项控“写了也无效”。对 /tmp、/home、/var/www/uploads 等用户可写但无需执行的目录尤其有效:
x 权限,也无法执行、提权或识别设备节点。例如:sudo mount -o remount,noexec,nosuid,nodev /tmp
/etc/fstab,在对应分区行的 options 字段添加 acl,如:UUID=abcd1234 /home ext4 defaults,acl,noexec,nosuid,relatime 0 2
mount | grep "$(df . | tail -1 | awk '{print $1}')" | grep acl,输出含 acl 即成功chmod 和 chown 都能被 root 覆盖,chattr +i 才是真正“锁死”:
sudo chattr +i /etc/shadow 后,连 root 也无法修改、删除、重命名该文件lsattr /etc/shadow 应显示含 i 标志,如 ----i---------e---
passwd、usermod 等命令会失败,日常运维中建议仅在系统稳定期启用;变更前先 sudo chattr -i /etc/shadow 解锁,操作完立即重锁/etc/passwd、/etc/group:sudo chattr +i /etc/passwd /etc/group
权限和属性是防线,审计和告警是哨兵。仅防不住,还要看得见:
auditd 记录所有写操作:sudo auditctl -w /etc/shadow -p wa -k shadow_write
sudo ausearch -k shadow_write | aureport -f -i
inotifywait 实现毫秒级响应:inotifywait -m -e modify,attrib,moved_to /etc --format '%w%f %e %T',配合脚本发邮件或写入告警日志/etc/audit/auditd.conf,设 max_log_file = 10、num_logs = 5、max_log_file_action = rotate