编辑了 visudo,现在无法使用任何 sudo 命令

编辑了 visudo,现在无法使用任何 sudo 命令

Unix 和 shell 脚本新手,更新了 visudo

username ALL=(ALL) NOPASSWDMDS : /path/name

现在无法编辑 sudo、visudo 或使用任何 sudo 命令。

我怎样才能恢复到以前的状态?

当我尝试时

visudo
visudo: /etc/sudoers: Permission denied
visudo: /etc/sudoers: Permission denied

当我尝试时

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

答案1

首先,直接回答你的问题,@Tablemaker 和 @guillermochamorro 走在正确的轨道上。一些可能的选项是:

  • 如果您为 root 启用了基于密钥的登录,则通过特权 ssh 密钥登录
  • 通过管理员帐户登录并使用su命令成为 root(如果您知道当前的 root 密码)
  • 让其他人执行上述操作之一(如果他们有密钥或密码,但您没有)
  • 如果您在托管环境中,您(或其他人)可能有一些方法将 root 密码重置为已知密码,因此您可以按照su上述路线进行操作

对于未来可能物理访问计算机的读者来说,还可以从 Live CD 或 USB 记忆棒启动(甚至 PXE 启动,如果您碰巧有可用的基础设施),并修复您的 sudoers 文件。

希望预防胜于治疗,我想为未来可能会做您刚才所做的事情的读者提供这篇说明。 :)

您可能有机会避免完全这个问题,但是忽略了它。

visudo保存文件后检查文件语法的一些实现sudoers,并提醒您检测到的问题:

$ sudo visudo
(edit file to add the line given in your example, then type ZZ to save & exit)
/usr/local/etc/sudoers.tmp: 36 lines, 773 characters
>>> /usr/local/etc/sudoers: syntax error near line 36 <<<
What now?

在这里我们看到它visudo检测到您的sudoers文件中存在问题,并询问您如何处理这些问题。按Enter给出可用选项的简要概述:

Options are:
  (e)dit sudoers file again
  e(x)it without saving changes to sudoers file
  (Q)uit and save changes to sudoers file (DANGER!)

What now? 

显然,e将返回到编辑器以更正文件中的错误。如果保存后,语法警告再次出现,x建议选择保留 sudoers 文件不变,同时研究更改所需的正确语法。

Q选项是非常不可取的(因此危险!警告),并导致您现在遇到的情况:sudo安装无法正常工作。

相关内容