强制执行关键操作必须经过双人授权,不是靠改几行 sudo 配置就能实现的,核心在于把“谁申请”“谁审批”“谁执行”三者拆开,用日志、脚本和审批通道串起来。它不改变 sudo 本身,而是让 sudo 只响应“已被双签确认”的命令。
不能让同一个人既提申请又点通过。需提前划分两组用户:
禁用直接 sudo,所有需双审的操作(如 systemctl restart nginx、rm -rf /var/log/*、修改 /etc/hosts)必须走统一入口,例如:
sudo-approve --cmd "systemctl restart nginx" --reason "证书更新后重启"
该脚本会:
审批人确认后,系统自动在 /etc/sudoers.d/ 下生成一个带过期时间的临时授权文件,例如:
/etc/sudoers.d/req-20260617-8A3F: %ops-lead ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
该文件设置 5 分钟有效期,超时自动清理;同时记录审批人、时间、原始请求 ID 到审计日志;执行完成后立即删除该片段,不留持久权限。
每次操作闭环都留下三条可关联的日志:
三者可通过请求 ID 关联,满足审计要求。不复杂但容易忽略。