首页 > Sysadmin > 正文

Linux 添加 sudo 权限:组与规则

huyuanwen 2026-11-03 Sysadmin

给普通用户开 sudo,优先加组;个别场景再用独立规则。sudo 允许被授权用户以超级用户身份执行命令[1]。

方式一:加入系统 sudo 组

Ubuntu/Debian 默认有 sudo 组,加入即可获得授权[3]:

usermod -aG sudo <用户名>

登录新 shell 或运行 newgrp sudo 后生效。

验证:

su - <用户名> -c "sudo -n true; echo OK"

输出 OK 即成功。

方式二:创建独立 sudoers 规则

需要为单个用户限定命令时,用 /etc/sudoers.d/ 目录:

# 1. 生成规则文件(权限 0440)
cat > /etc/sudoers.d/10-myuser <<'EOF'
myuser ALL=(ALL) NOPASSWD:ALL
EOF
chmod 0440 /etc/sudoers.d/10-myuser

# 2. 语法检查(必须先做)
visudo -c

行首写用户名,后跟主机、runas、命令列表。配置文件的语法和结构由 visudo 检查[2]。

回滚

rm /etc/sudoers.d/10-myuser
# 或组方式
gpasswd -d <用户名> sudo

排错速查

现象 原因 处理
sudo: 未知用户 用户名错误 检查 /etc/passwd
parse error sudoers 语法有误 visudo -c 定位
not in sudoers 未加组且无规则 用 root 修 sudoers
需要密码 规则未带 NOPASSWD 确认行尾选项

实测与局限性

  • 实测环境:WSL2 Ubuntu 24.04,Sudo 1.9.15p5。
  • 已验证:组方式、独立规则、visudo 语法校验、NOPASSWD 生效。
  • 未覆盖:LDAP/SSSD 集中授权、AIX/Solaris 等非 Linux 平台、安全策略模块(pam_env、pam_limits)对 sudo 的联动限制。

参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。