因此,我完全不知道修改 /etc/sudoers 文件的危险,只是想在其中进行简单的更改。但是,我似乎在其中输入了一些语法不正确的内容,导致了此问题:
$ sudo
sudo: >>> /etc/sudoers: syntax error near line 122 <<<
sudo: parse error in /etc/sudoers near line 122
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
我无法再编辑 /etc/sudoers 文件,因为我没有 root 访问权限。
我在网上看到的一个解决方法是使用:
$ su -
并输入 root 密码。但是,这个 amazon ec2 盒子似乎没有 root 密码,因此我无法使用su -
我看到的另一件事是重新启动计算机并执行一些允许您重置密码的单用户操作。 大问题是这是 amazon ec2,而我只是通过 SSH 进入盒子,我没有物理访问权限。
问题是,我是不是彻底完蛋了,或者有没有解决办法?这不是 Ubuntu,似乎是 CentOS。我现在也了解了visudo
,但我从中获得更改的网站没有提到这一点。
答案1
我曾经以完全相同的方式弄乱了一个实例,但我能够通过从单独的工作实例安装其 EBS 卷来恢复它。涉及许多步骤:
- 从 EC2 管理控制台停止您的 EC2 实例
- 转到“卷”屏幕并从实例中分离有问题的 EBS 卷
- 使用具有默认选项的普通 Linux AMI 启动一个新的微型实例(除非您已经有另一个工作实例)
- 新实例运行后,将有问题的 EBS 卷附加到它
- 然后安装它
一旦作为目录挂载,您就应该能够从新实例访问有问题的卷的文件系统并修复文件sudoers
。然后只需卸载并分离该卷并将其重新附加到另一个实例即可。