Aching Notes

技术笔记、折腾记录和长期项目整理

sudo 权限批量收敛:新增、回收、校验和回滚怎么做

目标

sudo 权限治理最怕两件事:

  • 规则分散
  • 回收不干净

所以我现在只认一种方式:所有机器统一走 sudoers.d,不直接手改主文件。

目录和命名先统一

/etc/sudoers.d/
  10-base-admin
  20-ops-readonly
  90-temp-access

每个文件只放一类规则,临时权限也单独放,不和长期权限混在一起。

新增流程

新增权限时先落一个临时文件,再校验,再上线。

cp /etc/sudoers /etc/sudoers.bak
cat >/tmp/90-temp-access <<'EOF'
user1 ALL=(ALL) NOPASSWD:/usr/bin/systemctl status nginx
EOF

visudo -cf /tmp/90-temp-access
install -m 0440 /tmp/90-temp-access /etc/sudoers.d/90-temp-access
visudo -cf /etc/sudoers

回收流程

回收不要做“注释掉再说”,直接删文件或删规则,然后复验。

rm -f /etc/sudoers.d/90-temp-access
visudo -cf /etc/sudoers

如果机器很多,建议用 Ansible 批量分发这类文件,保持同一份模板。

校验要看什么

我会把校验分成三层:

  1. 文件语法对不对
  2. 规则权限对不对
  3. sudo -n 能不能直接过
visudo -cf /etc/sudoers
sudo -n true
sudo -l -U user1

回滚怎么做

回滚只做两步:

  1. 恢复备份
  2. 重新校验
cp /etc/sudoers.bak /etc/sudoers
visudo -cf /etc/sudoers

实战里最有用的部分

这篇能写的不是“sudo 有风险”,而是:

  • sudoers.d 收口
  • 新增和回收都走同一套流程
  • 语法校验必须和发布绑在一起
  • 备份是回滚边界,不是摆设

结论

sudo 权限这件事,一旦不收口,后面一定会散。把它固定成文件化、校验化、可回滚的流程,才算真的能长期维护。


已发布

分类

来自

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注