如何修复 /etc/sudoers 文件以识别我?

如何修复 /etc/sudoers 文件以识别我?

目前,我收到以下终端错误:

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

我尝试利用此处找到的指南来修复我的 /etc/sudoers 文件:

http://www.psychocats.net/ubuntu/fixsudo

我按照每个单词的顺序跟踪所有内容,并设法重写 sudoers 文件,并在 sudoers 文件中添加我的用户名(尽管没有“@”符号)以获得完整的 root 权限。我仍然收到上面的 sudo 错误。

请不要对我感到不安,我对 Linux 还比较陌生,我正在尝试学习 Linux 基础课程中与系统管理相关的更深入的过程。我希望我的询问能够得到好评。我提前感谢大家的帮助。祝大家平安与祝福。

答案1

如果 sudo 是访问 root 帐户的唯一方法,并且您在某处没有正在运行的 root shell,则需要通过外部方式重新获得对 root 帐户的访问权限,通常需要对计算机进行物理访问。最常见的方法是在启动提示符处选择“单用户模式”或“恢复模式”(您可能需要执行一些操作,例如按住Shift才能出现启动提示符)。如何执行此操作取决于引导加载程序的设置,不同的发行版的做法有所不同,因此请查找与您的发行版相关的文档或教程。

如果您无法在单用户模式下进入根提示符,您可以通过添加init=/bin/sh到内核命令行来进入更精简的模式。您将进入 root shell,但需要运行一些命令才能获得可用的环境:

mount -t proc proc /proc
mount -o remount,rw /
bash

您现在可以编辑有问题的文件。

如果您希望多个终端处于单用户模式,您可以使用命令在另一个虚拟控制台上打开一个新的 shell openvt。使用Ctrl++ Alt、++F1等在虚拟控制台之间切换。CtrlAltF1

不要sudoers直接编辑。使用visudo。此命令调用编辑器,然后检查文件的语法,如果存在语法错误,则中止修改。您仍然可以将自己锁在门外,例如删除授予您访问权限的线路,但这确实降低了风险。

Ubuntu 使用 nano 作为默认编辑器。许多其他发行版按照传统使用 vi。要选择不同的编辑器,请设置VISUAL环境变量,例如

export VISUAL=joe

/var/tmp如果您想要复制该文件以便在正常模式下重新启动后可以读回,您可以使用该目录作为临时存储区域。确保您的普通帐户可以读取该文件。

cp /etc/sudoers /var/tmp
chmod a+r /var/tmp/sudoers

提示:每当您进行的更改可能会影响您访问帐户的能力时,请在一个窗口中保留正在运行的 shell,并在另一个窗口中测试您的访问权限。如果您无法访问,请切换回正在运行的 shell 并修复问题或立即恢复更改。

答案2

我真的很感谢你的帮助。我在恢复模式下输入的 sudo 文件确实有错误。在指定“默认 secure_path”(更准确地说是“)行中的路径时,我缺少右引号。我能够解决该问题,现在我可以再次启动 sudo 并运行:)。太棒了!

非常感谢女士们先生们的帮助。

相关内容