问题描述:
我已经打破了我的/etc/sudoers文件中出现拼写错误。现在我无法再使用任何 sudo 命令,因为出现以下错误。因此我无法修复我的 sudoers 文件,并且实际上陷入了困境。
$ sudo nano /etc/sudoers
>>> /etc/sudoers: syntax error near line 39 <<<
sudo: parse error in /etc/sudoers near line 39
sudo: no valid sudoers sources found, quitting
我发现一些解决方案说我应该启动到恢复模式(如下所示),我显然想避免这种情况。
Ubuntu:我的 sudoers 文件损坏了,我该如何修复?
问题:
-有没有其他方法可以修复它而不重新启动 ubuntu?
-如果在修改 sudoers 文件时很容易将自己锁定在 sudo 之外(每个人都可能打错字),为什么不从内存中读取 sudoers 配置,而是直接从文件中读取?应该有一个命令(例如 sudo-load)在将配置加载到内存之前确保语法正确,从而避免此类问题。
解决方案:
似乎有两种方法可以恢复它:
- 如果您有 root 密码,您可以简单地发出“su”,然后编辑文件
- 如果您没有 root 密码,您需要重新启动进入单用户模式
答案1
不,您必须重新启动,或者如果您允许 root 登录,则以 root 身份登录。
这就是您在修改 sudoers 文件时应始终使用的原因visudo
。visudo 将在保存 sudo 文件之前检查其语法,从而保护您免受此特定问题的困扰(但不会阻止您编写禁止您运行 sudo 的 sudoers 文件!)
请注意,sudoers 通常设置为即使在 Ubuntu 上也无法由 root 写入:
-r--r----- 1 root root 556 2010-04-18 15:05 sudoers
因此,您必须更改 sudoers 的访问权限才能使用 nano 进行修改。文件这样设置是有充分理由的。如果您遇到无法由 root 写入的文件,您应该在更改访问权限并开始编辑它之前三思而后行。