Ubuntu配置sudo免密

在长期使用的开发机、测试机上,频繁输入 sudo 密码确实会影响效率。
为一个受信任的指定用户配置 sudo 免密,既能提升操作流畅度,也能保留一定的安全边界。

下面介绍如何为当前用户单独创建一条免密规则,以及如何安全地回退。

手动创建免密规则

1. 用 visudo 创建独立的规则文件

推荐将规则放到 /etc/sudoers.d/ 目录下,而不是直接修改 /etc/sudoers,这样更清晰且方便管理。

sudo visudo -f /etc/sudoers.d/$USER-nopasswd

这会以安全的方式打开一个新文件,并在保存时进行语法检查。

2. 写入以下内容

你的用户名 ALL=(ALL:ALL) NOPASSWD: ALL

例如用户名为 ubuntu,就写成:

ubuntu ALL=(ALL:ALL) NOPASSWD: ALL

如果你希望用变量自动填入当前用户名,可以先确认 $USER 的值:

echo $USER

然后在编辑器中写入该用户名对应的行。

3. 保存并设置正确权限

sudo chmod 440 /etc/sudoers.d/$USER-nopasswd

权限必须是 440,否则 sudo 会出于安全原因忽略该文件。

4. 验证配置是否生效

先清除已有的 sudo 凭证缓存,然后测试是否能无密码执行 whoami 并输出 root

sudo -k
sudo whoami

如果输出 root 且没有提示输入密码,说明配置成功。

一步到位命令

如果你不想手动编辑文件,也可以用下面的命令一次性完成配置:

echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/$USER-nopasswd >/dev/null
sudo chmod 440 /etc/sudoers.d/$USER-nopasswd
sudo visudo -cf /etc/sudoers.d/$USER-nopasswd

最后一条 visudo -cf 会专门检查该文件的语法,如果看到类似 parsed OK 的输出,说明规则本身没有写错。

如何取消 sudo 免密

当不再需要免密,或要恢复到正常需要密码的状态时,只需删除对应的规则文件即可:

sudo rm /etc/sudoers.d/$USER-nopasswd

删文件后,sudo 会立即恢复到默认行为,无需重启任何服务。


内容来源:Ubuntu配置sudo免密

LICENSED UNDER CC BY-NC-SA 4.0
评论