修复损坏的 sudoers 文件

Max*_*Max 10 ubuntu sudo

可能的重复项:
Ubuntu:我的 sudoers 文件被破坏了,我该如何修复它?

问题描述:

我在/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
Run Code Online (Sandbox Code Playgroud)

我发现很少有解决方案说我应该启动到恢复模式(如下所示),我显然想避免这种情况。
Ubuntu :我的 sudoers 文件出错了,我该如何修复?

问题:

- 有没有其他方法可以在不重新启动 ubuntu 的情况下修复它?
- 如果在修改 sudoers 文件时很容易将自己锁定在 sudo 之外(每个人都会打错字),为什么不直接从内存中读取 sudoers 配置而不是从文件中读取?将有一个命令(例如 sudo-load)在将配置加载到内存之前确保语法正确,从而避免此类问题。

解决方案:
似乎有两种方法可以恢复它:
- 如果您有 root 密码,您可以简单地发出“su”,然后编辑文件
- 如果您没有 root 密码,您需要重新启动到单用户模式

peh*_*hrs 13

不,如果您允许 root 登录,则必须重新启动或以 root 登录。

这就是您visudo在修改 sudoers 文件时应始终使用的原因。visudo 将在保存之前检查 sudo 文件的语法,保护您免受此特定问题的影响(但不会编写禁止您运行 sudo 的 sudoers 文件!)

请注意,sudoers 通常设置为即使在 Ubuntu 上也不能被 root 写入:

-r--r----- 1 root root 556 2010-04-18 15:05 sudoers
Run Code Online (Sandbox Code Playgroud)

因此,您必须更改了 sudoers 的访问权限才能使用 nano 对其进行修改。像这样设置文件有一个很好的理由。如果您遇到一个不能被 root 写入的文件,您应该在更改访问权限并开始编辑它之前三思而后行。