在长期使用的开发机、测试机上,频繁输入 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免密