2.1 KiB
2.1 KiB
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修改配置 - 最佳实践是最小权限、分组授权、谨慎免密