Sudoers 文件混乱

Sudoers 文件混乱

我不小心在sudoers文件中犯了一个错误,现在我无法修复它,因为如果我尝试更改文件,它会给出权限被拒绝的消息。如果我用来sudo打开该文件,则会显示语法错误并且找不到有效的sudoers源,并且不会执行该命令。我使用的是 raspbian,一种 Debian 风格。

有谁知道如何摆脱这个第22条军规?

答案1

  1. 如果您知道root密码(并且已设置),您可以使用suBeenroot和 edit /etc/sudoers
  2. 如果您的根文件系统位于 SD 卡上,您可以将其推出并/etc/sudoers在 PC 或任何其他设备上进行编辑(只要它有读卡器)。
  3. 您可以进入U-Boot(引导加载程序)命令行(通常通过按键盘上的按钮或通过UART)并添加1到Linux内核命令行以进入单用户模式。在这种模式下,您将root并且可以编辑/etc/sudoers。也可以看看

答案2

您将必须启动到单用户模式。

https://serverfault.com/questions/482079/debian-boot-to-single-user-mode

作为 root 用户,您将能够编辑 sudoers 文件来修复它。我强烈建议您visudo将来使用该命令编辑 sudoers 文件,以避免再次执行此操作,因为 visudo 在保存文件之前会对文件进行语法检查。

答案3

如果您在云实例上,那么您会遇到更多麻烦。

有一些技术取决于发行版,但如果您已经安装并运行了 Docker,那么您通常可以通过 Docker 容器来解决问题。这是因为,通常,Docker 服务以 root 身份运行,对容器内已安装卷所做的任何操作都会受到主机上 root 的影响。

在主机上:

docker run --rm -ti -v /etc:/usr/local/etc busybox sh

“busybox”只是一个不错的小型发行版,下载起来并不需要很长时间。如果您已经有一个包含可用 shell 的 Docker 映像,则只需使用它即可。

在 Docker 容器上:

cd /usr/local/etc
vi sudoers

您可能已将错误文件添加到/etc/sudoers.d/目录中。在这种情况下,可能只需删除该文件即可。

当您退出容器时,您可以sudo再次进行。

哇!

相关内容