将用户添加到 sudoers 后,sudo 需要密码

将用户添加到 sudoers 后,sudo 需要密码

我已经在 sudoers 文件中添加了我的用户,重启后 ubuntu 仍然需要密码才能执行命令。

下面是我的 sudoers 文件。

root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

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

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

aman    ALL=(ALL:ALL) ALL

这里的“aman”是当前登录的用户名。

实际上,在我的 ubuntu 16.04 中我遇到了 wifi 问题,我可以使用以下命令解决,但我想在启动时执行此命令而不提示输入密码。

systemctl restart network-manager.serviceroot

我也尝试过以下命令,但没有成功,每次我要执行命令时,ubuntu 都会提示我输入密码。

usermod -aG sudo username

更新:- 下面是我的 sudoers 文件屏幕截图

在此处输入图片描述

注意:- 当我执行 whoami 命令时终端显示“aman”

下面的图片显示我是管理员 在此处输入图片描述

答案1

您应该使用 NOPASSWD 选项

aman ALL=(ALL) NOPASSWD:ALL

但是,我不建议这样做,因为用户aman可以在没有密码的情况下执行任何操作。我只允许 systemctl 命令在没有密码的情况下执行,如下所示:

aman     ALL=NOPASSWD:/bin/systemctl

这样比较安全。

答案2

这是正常行为,在 sudoers 列表中仅意味着您可以使用该sudo命令,但系统会要求您输入密码。

如果你想使用 sudo 而不需要密码,你需要在NOPASSWD:ALL后面添加aman ALL=(ALL:ALL)/etc/sudoers

(该行看起来像aman ALL=(ALL:ALL) NOPASSWD:ALL

这里

答案3

我不知道现在回答是否太晚。但我最近遇到了同样的问题,什么都不起作用。因此,如果您使用 ssh 密钥登录服务器而无需密码,您可以尝试以下步骤:

  1. 将用户添加到 sudoers 文件。
sudo visudo
username ALL=(ALL) NOPASSWD:ALL
  1. 然后删除用户密码。
sudo passwd -d `whoami`

现在您将能够无需密码运行任何 sudo 命令。

相关内容