我已经在 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 密钥登录服务器而无需密码,您可以尝试以下步骤:
- 将用户添加到 sudoers 文件。
sudo visudo
username ALL=(ALL) NOPASSWD:ALL
- 然后删除用户密码。
sudo passwd -d `whoami`
现在您将能够无需密码运行任何 sudo 命令。