我很困惑。这是/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 机器上就是这样设置的。