一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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),属组为 syslogadm,既允许日志轮转工具写入,又限制普通用户访问
  • 批量检查命令: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---
  • 注意:启用后 passwdusermod 等命令会失败,日常运维中建议仅在系统稳定期启用;变更前先 sudo chattr -i /etc/shadow 解锁,操作完立即重锁
  • 同理可锁定 /etc/passwd/etc/groupsudo 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 = 10num_logs = 5max_log_file_action = rotate

热门栏目