最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux 权限加固:限制系统敏感目录的写入权限设定
时间:2026-07-08 09:49:57 编辑:袖梨 来源:一聚教程网
限制敏感目录写入需分层控制:一、收紧基础权限与属主,如/etc为755、/etc/shadow为640且属组shadow;二、用noexec,nosuid,nodev等挂载选项从内核层禁写;三、用chattr +i锁定关键文件;四、通过auditd和inotifywait监控并告警异常写入。
限制敏感目录的写入权限,不能只靠 chmod 降权,关键在于分层控制:基础权限最小化 + 挂载选项阻断行为 + 不可变属性锁定 + 审计追踪异常写入。单一手段容易被绕过。
一、先收紧基础权限与属主
这是最直接的第一步,但必须精准,避免误伤服务:
-
/etc:应为
drwxr-xr-x(755),属主root:root;其中/etc/shadow必须是-rw-r-----(640)或更严的-r--------(400),且属组设为shadow -
/root:必须是
drwx------(700),禁止其他用户进入或列目录 -
/var/log:建议
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 等用户可写但无需执行的目录尤其有效:
-
noexec,nosuid,nodev 组合:即使文件有
x权限,也无法执行、提权或识别设备节点。例如:sudo mount -o remount,noexec,nosuid,nodev /tmp -
启用 ACL 支持:让细粒度授权真正生效。编辑
/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