我想删除文件“sudoers”中的一行,但我无法编辑该文件,出现错误:
****@****:~$ sudo vim /etc/sudoers
>>> /etc/sudoers: syntax error near line 16 <<<
sudo: parse error in /etc/sudoers near line 16
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
我尝试了两种不起作用的解决方案:
- 复制主目录中的文件以对其进行编辑。
- 使用命令
pkexec visudo
:>>> /etc/sudoers: syntax error near line
答案1
如果运行sudo cat /etc/sudoers
(或pkexec cat /etc/sudoers
),您应该会在输出顶部附近看到一条警告:
# 该文件必须以 root 身份使用 'visudo' 命令进行编辑
换句话说,在正常情况,你应该运行sudo visudo
或pkexec visudo
。作为visudo 联机帮助页会告诉你,
维苏多以安全方式编辑 sudoers 文件,类似于 vipw(8)。 visudo 锁定 sudoers 文件,防止同时进行多个编辑,提供基本的健全性检查,并检查解析错误。如果您使用例如 编辑文件
sudo vim /etc/sudoers
,您将无法获得 visudo 语法检查的好处。
如果正常流程不起作用,您可能需要从Live CD或USB启动,挂载所在分区/etc/sudoers
并删除无效行。请注意,visudo -c
orvisudo --check
允许您检查语法而不实际修改文件。