我的 Xenserver 中的 Ubuntu 14.04 服务器虚拟机中的 sudo 已损坏

我的 Xenserver 中的 Ubuntu 14.04 服务器虚拟机中的 sudo 已损坏

须藤在 Xenserver 中的 Ubuntu 14.04 服务器虚拟机中无法运行。我猜它坏了。我忘记了 root 用户的密码,无法登录。由于它是 XenServer 中的虚拟机,因此重新启动时不会显示 grub。我该如何修复此问题。

这是我使用 sudo 时遇到的错误:-

>>> /etc/sudoers: syntax error near line 1 <<<
>>> /etc/sudoers: syntax error near line 1 <<<
sudo: parse error in /etc/sudoers near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

附加信息:

ls -l /usr/bin/sudo

-rwsr-xr-x 1 root root 155008 Aug 28  2015 /usr/bin/sudo

ls -l /etc/sudoers

-r--r----- 1 root root 4 Mar  1 11:31 /etc/sudoers

谢谢

答案1

我不太清楚 xen 的情况,但使用 VirtualBox 时,您只需添加 Linux live iso 并将启动优先级设置为高于虚拟硬盘即可。然后,您应该能够启动到实时 Linux 并访问虚拟硬盘,使用以下命令挂载您的根分区

sudo mount /dev/sdxx /mountpoint 

或者自动挂载。然后导航到/etc/sudoers并修复错误的行。

sudo vim /挂载点/etc/sudoers

或者 nano 或者任何您喜欢的文本编辑器。

如果您有第二个虚拟机,您可以在那里执行上述操作,只需将虚拟硬盘添加到具有较低启动优先级的第二个虚拟机即可。

答案2

谢谢你的帮助。我刚刚解决了我的问题。

由于它是 XenServer 中的虚拟机,我无法通过按 Shift 键进入 grub。搜索了一段时间后,我找到了一种进入 root 用户的方法。我所做的是:

我右键单击有问题的虚拟机 -> 属性,

然后进入启动选项选项卡。我修改了操作系统启动参数:

-- 安静控制台 = hvc0

到:

单身的

然后重启后,我可以直接进入 root shell 提示符。我的首要任务是更改 root 密码。首次登录时更改用户密码不需要旧密码。我只需使用命令密码并且 VM 要求我输入新密码。

然后我将虚拟机的启动参数更改为--quiet console = hvc0并重新启动。

我已经将虚拟机克隆到另一台服务器。但由于这台虚拟机是一台实时服务器,我必须从问题中恢复过来。我使用 root 权限将 sudoers 文件从克隆服务器 ssh 到实时服务器中的另一个文件夹,因为直接复制文件时出现了一些错误。然后将文件复制到实时虚拟机中的 sudoers 文件,然后就好了!!

相关内容