我使用以下方法更改了 sudoers 文件中的设置
sudo visudo
搞砸了。现在,当我尝试再次执行此操作或使用 sudo 打开任何文件时,我无法再打开它,并且收到以下错误消息:
>>> sudoers file: syntax error, line 7
现在怎么办?
有什么办法可以解决这个问题(恢复设置),还是我需要安装一个全新的 Linux 副本?
我得到所有这些信息的原因是我按下了“Q”,而系统却告诉我出现了一些错误,这对我来说非常愚蠢。
谢谢。
编辑:我的 sudoers 文件与普通 sudoers 文件没有什么不同。
我刚刚在该文件中添加了 timestamp_timeout = 0 行,所有这些问题就出现了。
我按照詹姆斯的建议做了,甚至删除了那行(timestamp_timeout = 0)。
我按照要求将文件权限改为 0440,然后正常启动。然后,我收到相同的错误消息:
sudoers file: syntax error, line 7
sudo: parse error in /etc/sudoers near line 7
如上。
我现在应该怎么做 ??
编辑2已解决:这就是我所做的:
- 使用 livecd 启动
- 删除旧的 sudoers 文件
- 创建新的 sudoers 文件并将所有内容复制到该文件中,即最低配置设置,幸运的是,我已将其保存在另一个文件中
- 将文件权限更改为 0440
- 从硬盘正常重新启动
万岁!
答案1
假设你没有给 root 用户设置密码,那么解决这个问题的最简单方法是使用如下的 live cd诺皮克斯. 启动光盘。挂载本地光盘,编辑文件,卸载光盘并重新启动。
答案2
很简单,启动计算机'单用户模式' 通过执行以下步骤:
- 重启
- 当 Grub 启动时,按 ESC(或 Esc)
- 按“e”编辑当前行
- 在包含“linux”的行末尾添加“single”
- 启动(按 b)
这将仅以一个用户 root 启动计算机。然后按照以下步骤操作:
- /usr/bin/vim /etc/sudoers(或者使用 nano,对你来说可能更容易)来解决问题
- 如果您不确定问题所在,请尝试从“/usr/share/doc/sudo/examples”(有所不同)复制所包含的 sudoers 示例,然后在那里添加您的用户。
- 保存文件,退出Vim
- 重启,享受吧!
答案3
James 提出的使用 Live CD(假设未启用 root 帐户)的想法很好。我想补充几点。
- 首先,你可能会很幸运,备份/etc/sudoers编辑文件时,会自动保存该文件。签入/ETC对于如下所示的文件
sudoers~
(您可以cd
到该目录并运行ls -A
没有root 权限,即使您无法以普通用户身份读取或编辑文件)。有些编辑器会尽可能创建这样的备份,因此您可能无需明确创建它即可拥有一个备份。 - 第二,如果你不知道如何要编辑该文件,您可以考虑将其(或第 7 行附近的区域)发布到这里或其他地方。虽然该文件本身与安全有关,但其中没有密码,因此发布它不会立即造成危害。
- 最后,请注意,您看到的错误消息并不一定意味着问题本身确实在第 7 行。错误可能在第 4 行,但仅在第 7 行被触发。
答案4
尝试按 e 进行编辑。这样您就可以编辑文件并更正错误。