Ubuntu设置sudo免密

作者:Administrator 发布时间: 2026-08-13 阅读量:1 评论数:0

Ubuntu sudo 免密配置

目标

ubuntu 用户执行 sudo 命令时不再需要输入密码。

原理

sudo 允许在 /etc/sudoers.d/ 目录下放置独立的授权文件,系统会在解析 /etc/sudoers 时一并读取。在其中写入 NOPASSWD 规则即可实现免密。

配置步骤

1. 创建 sudoers 规则文件

sudo bash -c 'echo "ubuntu ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ubuntu-nopasswd'

各字段含义:

字段含义
ubuntu免密的目标用户
ALL=(ALL)允许在所有主机上以任意身份执行
NOPASSWD: ALL执行所有命令都不需要密码

2. 设置正确的文件权限

sudoers 文件对权限有严格要求,权限错误会导致 sudo 拒绝加载:

sudo chmod 440 /etc/sudoers.d/ubuntu-nopasswd

3. 校验语法

sudo visudo -c -f /etc/sudoers.d/ubuntu-nopasswd

输出 parsed OK 表示语法正确。

注意:语法校验前千万不要关闭当前终端,以防写错导致 sudo 无法使用。

4. 验证是否生效

sudo -n whoami

输出 root 即表示免密生效(-n 表示非交互模式,若不支持免密会直接报错)。

恢复为需要密码

删除规则文件即可恢复:

sudo rm /etc/sudoers.d/ubuntu-nopasswd

安全建议

  1. NOPASSWD: ALL 等于授予完全 root 权限,建议仅在受信任的个人环境使用。

  2. 如需限制范围,可改为仅对特定命令免密,例如:

    ubuntu ALL=(ALL) NOPASSWD: /usr/bin/systemctl
    
  3. 生产环境建议优先使用 sudo 密码 + 密钥登录的双重保护。

评论