wiki/运维/操作系统/Linux/笔记/35.sudo配置.md
2026-04-08 15:02:24 +08:00

2.1 KiB
Raw Blame History

1、sudo 概览

sudo 是 Linux 中常见的权限委派机制,允许管理员授权普通用户以更高权限执行指定命令,而不必直接告诉对方 root 密码。

它的核心价值在于:

  • 最小权限授权
  • 便于审计操作记录
  • 避免多人共用 root 密码

2、基本概念

sudo 配置的核心通常写在:

/etc/sudoers

也可以拆分到:

/etc/sudoers.d/

实际修改时,强烈建议使用

visudo

这样可以在保存前做语法检查,避免配置写坏导致 sudo 不可用。

3、sudoers 规则格式

常见格式大致是:

用户或组  主机列表=(可切换身份)  命令列表

典型示例:

root    ALL=(ALL:ALL) ALL

含义可以理解为:

  • root:用户
  • ALL:允许从任意主机规则匹配
  • (ALL:ALL):可以切换为任意用户和组身份执行
  • ALL:允许执行任意命令

4、常见授权方式

4.1 授权单个用户

lzc ALL=(ALL:ALL) ALL

表示用户 lzc 可以执行任意 sudo 命令,执行时通常需要输入自己的密码。

4.2 授权用户组

%devops ALL=(ALL:ALL) ALL

表示 devops 组内用户可执行 sudo 命令。

4.3 免密执行

%devops ALL=(ALL:ALL) NOPASSWD: ALL

表示 devops 组内用户执行 sudo 时不需要输入密码。

5、常见运维建议

  • 优先按用户组授权,而不是给每个人单独写规则
  • 能精细授权命令时,尽量不要直接给 ALL
  • 免密 sudo 要谨慎,只给可信场景
  • 修改 sudo 配置时优先用 visudo
  • 生产环境中建议结合审计日志一起使用

6、排障提示

如果 sudo 突然不可用,优先检查:

  • /etc/sudoers 是否有语法错误
  • /etc/sudoers.d/ 中是否有冲突规则
  • 文件权限是否正确
  • 当前用户是否真的属于目标用户组

7、小结

  • sudo 用于做权限委派,而不是直接共享 root
  • 核心配置在 /etc/sudoers/etc/sudoers.d/
  • 推荐使用 visudo 修改配置
  • 最佳实践是最小权限、分组授权、谨慎免密