损坏的 sudoers 文件,Ubuntu 12.04

损坏的 sudoers 文件,Ubuntu 12.04

我的/etc/sudoers文件不知何故损坏了,所有具有 sudo 权限的用户都无法执行带有 sudo 前缀的任何命令!

sudo: parse error in /etc/sudoers.d/README near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

我已经尝试了以前类似问题中建议的几乎所有解决方案,例如

  1. 多次重启系统
  2. 尝试修改文件/etc/sudoers.d/README但无法成功。
  3. 在恢复模式下,挂载了文件系统rw并尝试修改上述文件,但没有成功
  4. pkexec bash......还是没用

文件中的行/etc/sudoers.d/README实际上是一个空行。

你能指导我吗?

谢谢。

答案1

我发现 sudoers README 中的所有行都必须以 为前缀#

我不明白为什么运行 sudo 时会处理 README,但未注释的行似乎会破坏它。当我的 Raspberry Pi 中的 SD 卡开始出现故障并损坏了许多文件时,我才偶然发现了这一点。尽管 README 文件不是文件夹中的唯一文件。

答案2

在我的基于 Ubuntu 的系统 (Mint) 上,/etc/sudoers.d/README全是注释,好像# ...没有一行不是注释。而其他文件包含/etc/sudoers.d/空白行,但 sudo 没有错误... 您的空白行可能包含一些奇怪的不可打印字符吗?十六进制编辑器应该可以显示其中的任何奇怪内容。

而且由于 README 文件全是注释,所以 sudo 没有必要工作,除了其中的这条注释:

# Note that there must be at least one file in the sudoers.d directory (this
# one will do), and all files in this directory should be mode 0440.

因此,只要该目录中还有另一个文件,您就可以尝试将损坏的 README 文件移出该目录,看看是否有帮助。

并且您应该能够在第 3 次尝试中以恢复模式修改文件,我假设您被授予修改任何文件的权限,例如从实时 cd/dvd/usb 启动,如果您无法编辑文件,则可能是文件和/或文件系统本身已损坏,尝试过fsck

这里还有另一个关于如何修复损坏的 sudoers 文件的广受欢迎(赞成)的指南,如果它不起作用,那么我会研究 fsck/损坏的文件系统的可能性。

答案3

我遇到了类似的问题,但问题是由我自己的操作引起的。我已经使用了一个文件

/etc/sudoers.d/randy-sudoers

进行个人改变,正如我被指示做的那样。

我认为自己很聪明,在我的 home 目录外创建一个子目录,并在那里创建一个 randy-sudoers 文件,我作为所有者并具有 rw 权限。我可以用鼠标垫 (Xubuntu) 随意编辑此文件。然后我编写了一个脚本将此文件复制到 /etc/sudoers.d.randy-sudoers 并根据需要更改所有者、组和权限。此链接中讨论了这一点,并标记为一个好主意,但让我告诉你,这是一个坏主意。https://ubuntuforums.org/showthread.php?t=1352310&highlight=visudo+busy

问题是我在文件中犯了一个错误。当我将它复制到 /etc/sudoers.d/randy-sudoers 时,我的 sudo 命令突然不再起作用了。它告诉我文件的第 20 行有错误。我可以在我的主子目录中修改它,但我无法使用 sudo 将其再次复制到 /etc/sudoers。我使用 sudo 的所有尝试都被阻止了,我需要这样做才能进行复制。

经过一番寻找,我发现我需要做的就是运行这个:

pkexec visudo -f /etc/sudoers.d/randy-sudoers

这使我能够绕过 sudo 命令并编辑文件并删除/更正有问题的行,然后再次保存。它提示我另存为

/etc/sudoers.d/randy-sudoers.tmp

我照做了。然后它检查了 tmp 文件的有效性并覆盖了原始有问题的文件。呼!我得救了。

相关内容