如何为 vagrant 用户实现无密码 sudo?

如何为 vagrant 用户实现无密码 sudo?

我很困惑。这是/etc/sudoers

vagrant@ubuntu-xenial:~$ sudo cat /etc/sudoers                                                                                                                                                                      
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
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

如何实现用户无密码sudo vagrant

vagrant用户甚至不在该sudo组中:

vagrant@ubuntu-xenial:~$ id -a
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)

并且,正如预期的那样,将其他用户添加到sudo组时会要求我输入密码:

user1@ubuntu-xenial:~$ sudo ls
[sudo] password for user1: 

答案1

我也有同样的疑问,关于流浪用户如何能够在不进入我们熟悉的 CentOS 7 检查“标准”位置的情况下进行 sudo。

但是在 Debian 的“bullseye64”框中,您有以下 README/etc/sudoers.d/README

从 Debian 版本 1.7.2p1-1 开始,/etc/sudoers安装包时创建的默认文件现在包含以下指令:

#includedir /etc/sudoers.d

这将导致 sudo 读取并解析/etc/sudoers.d目录中任何不以字符结尾~或不包含.字符的文件。

注意,sudoers.d目录中至少要有一个文件(这个就可以),并且这个目录中的所有文件都应该是模式0440。

还请注意,由于 sudoers 内容可能相差很大,因此不会尝试在升级时将此指令添加到现有的 sudoers 文件中。如果您愿意,可以随意将上述指令添加到 /etc/sudoers 文件的末尾,以便为现有安装启用此功能!

最后,请注意,使用该visudo命令是更新 sudoers 内容的推荐方法,因为它可以防止许多故障模式。有关更多信息,请参阅man页面。visudo

答案2

我相信 brneor 答案的第二部分是关键

如果这不起作用,请寻找 10 安装程序文件在 /etc/sudoers.d 中.该文件可能包含上述行。

/etc/sudoers.d/ 中有一个 vagrant 文件,用于设置 NOPASSWD。至少在我使用的 Debian10 机器上就是这样设置的。

相关内容