为什么用户vagrant可以执行“sudo su -”而无需输入密码?

14

我是一位新接触Vagrant的学生。我发现,在Vagrant监管的虚拟机中,只需执行 "sudo su -" 命令即可切换至root用户,无需输入密码。好奇心驱使下,我查看了 "/etc/sudoers" 文件,但未找到与用户vagrant相关的信息。请问有哪位能够解释这种情况吗?


1
我的快速解决方法是使用 sudo su - - sparebytes
3个回答

15

/etc/sudoers文件包含另一个文件,该文件包含NOPASSWD行。

vagrant@ubuntu-12:~$ sudo cat /etc/sudoers.d/vagrant 
%vagrant ALL=NOPASSWD:ALL

5
基于http://docs.vagrantup.com/v2/boxes/base.html的说明:Vagrant 的许多方面都期望默认的 SSH 用户已配置无密码 sudo。这使得 Vagrant 可以配置网络、挂载同步文件夹、安装软件等等。
正如moodh所提到的,
vagrant ALL=(ALL) NOPASSWD: ALL

将允许“无密码”sudo。


-1

为了跟上最近的vagrant box ubuntu/xenial64,有一个文件/etc/sudoers.d/90-cloud-init-users,其内容如下:

# User rules for ubuntu
ubuntu ALL=(ALL) NOPASSWD:ALL

已经没有/etc/sudoers.d/vagrant文件,也没有vagrant用户。


我正在使用vagrant 2.2.4,并尝试在powershell窗口环境中运行vagrant up, 但是遇到了一个错误:“SSH命令响应了非零退出状态。Vagrant假定这意味着命令失败。此命令的输出应在上面的日志中。请阅读输出以确定出了什么问题。” 我从网络上看到,我应该添加vagrant ALL =(ALL)NOPASSWD:ALL,但是如果我在Windows 10上运行vagrant up并在Windows Powershell上运行,则无法理解应该在哪里添加此信息。 - Prashant Pathak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接