在 Ubuntu 上允许无密码的“sudo su”

在 Ubuntu 上允许无密码的“sudo su”

这个问题网上已经回答过很多次了但这些答案对我来说都没有用

问题

使用私钥访问远程计算机,我通常需要 root 权限,这意味着要编写很长的密码,而且很烦人。

为了拥有sudo su,我尝试了以下步骤:

  • 确保该行<user> ALL=(ALL) NOPASSWD: ALL位于 /etc/sudoers 中
  • 确保用户位于sudo用户组中:$groups <user>-> sudo

但尝试sudo su只会提示我输入自己的密码:[sudo] password for <user>:

问题

如何实现无密码sudo su

答案1

我经常把它放在线下方

# User privilege specification
root    ALL=(ALL:ALL) ALL
+++ myuser ALL=(ALL) NOPASSWD: ALL

更好的方法是使用 /etc/sudoers.d 中自己的文件和上面的行。

如果您想使用组策略,则需要修改您的组的行

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) NOPASSWD: ALL

否则,组策略将覆盖您的用户策略,并且系统将要求您输入密码。

还有另一个提示:
请不要使用“sudo su”。而是使用sudo su -sudo -i.这将卸载您的环境并加载 root 环境,避免使用 root 帐户中的错误环境变量。

答案2

您的 sudoers 文件已经授予您运行(或可能是任何命令)的能力sudo su,但不包含该NOPASSWD:选项。

sudoers 文件中的顺序很重要:最后一场比赛获胜

您可以用来sudo -l列出Defaults您的用户帐户的所有 sudo 选项和所有允许的命令。

相关内容