错误:/etc/sudoers: syntax error near line

起源

为了修改User权限,手动用vim 修改了/etc/sudoers文件,结果导致报错:

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

自此,无法使用sudo命令,无法打开/etc/sudoers文件,当然也无法修改/etc/sudoers文件。

解决

网上的解决方法是,用下列命令重新打开sudoers文件,从而把之前修改的地方恢复。

pkexec visudo

但是,这个命令执行后,需要输入密码进入root权限,但因为sudoers文件损坏,输入密码后出现下列错误:

==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/sbin/visudo' as the super user
Authenticating as: ubuntu,,, (ubuntu)
Password:
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized
This incident has been reported.

这就尴尬了。最终的解决办法如下:(过程有点骚)

1、打开两个ssh终端,都是用同一个ubuntu用户登录

2、在第一个终端输入以下命令,获取pid

echo $$

3、在第二个终端,输入:

pkttyagent --process 刚刚得到的pid

4、这个时候,第二个终端会卡住,在第一个终端输入:

pkexec visudo

5、然后,第二个终端也卡主,回到第一个终端,会提示输入当前用户密码,输入

6、好吧,输入完密码,第一个终端卡主了,回到第二个终端,会发现,出现了sudoers的内容,编辑出错的地方,保存即可。

7、完成任务,修改完成,发现就可以继续使用sudo命令了,over

PS:这里用的编辑器是nano,以下是nano简单的保存方式:

linux下在编辑状态下退出请按Ctrl+X,会有两种情形:
①、如果文件未修改,直接退出;
②、如果修改了文件,下面会询问是否需要保存修改。输入Y确认保存,输入N不保存,按Ctrl+C取消返回。如果输入了Y,下一步会提示输入想要保存的文件名。如果不需要修改文件名直接回车就行;若想要保存成别的名字(也就是另存为)则输入新名称然后确定,这个时候也可用Ctrl+C来取消返回。

 

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 这个错误通常表示你没有足够的权限来编辑 /etc/sudoers 文件。你需要使用 root 用户身份来修改 /etc/sudoers 文件。可以使用以下命令以 root 用户身份打开 /etc/sudoers 文件: ``` sudo visudo ``` 然后在文件中进行修改。如果你不确定如何进行修改,可以参考一些教程或者咨询系统管理员。注意,在修改 /etc/sudoers 文件时一定要小心,因为错误的修改可能会导致系统无法使用。 ### 回答2: visudo 是一个编辑 sudoers 文件的命令,而 /etc/sudoerssudoers 文件的路径。当出现 "Permission denied" 的提示时,意味着当前用户没有足够的权限来编辑该文件。 要解决这个问题,有几种方法可以尝试: 1. 使用 root 用户或具有管理员权限的用户进行操作:visudo 命令需要管理员权限才能编辑 sudoers 文件。如果您当前的用户没有足够权限,可以通过切换到 root 用户或使用 sudo 命令来获得需要的权限。 2. 使用 sudo 命令:如果您当前的用户拥有 sudo 权限,可以尝试使用 sudo visudo 命令来编辑 sudoers 文件。该命令将会使用管理员权限运行 visudo,并且您需要输入当前用户的密码以确认权限。 3. 检查文件权限:确认一下 sudoers 文件和 /etc 目录的权限是否正确。通常情况下,sudoers 文件的权限应该是 440 或 400,而 /etc 目录应该是 755 或更高。如果权限设置不正确,可以使用 chmod 命令来更改文件的权限。 如果上述方法仍然无法解决问题,可能是其他因素导致的权限错误,比如 SELinux 或 AppArmor 等安全机制的限制。在这种情况下,您可能需要按照特定的操作系统和安全策略来调整相关设置。 总结:"visudo: /etc/sudoers: Permission denied" 错误表示当前用户没有足够的权限来编辑 sudoers 文件。通过使用具有管理员权限的用户、sudo 命令或检查文件权限,可以解决这个问题。 ### 回答3: 当出现"visudo: /etc/sudoers: Permission denied"错误时,这意味着您没有足够的权限来编辑sudoers文件。sudoers文件是存储用于管理用户访问sudo命令权限的配置文件。 只有超级用户(root)或具有sudo访问权限的用户可以编辑sudoers文件。 要解决此错误,您可以尝试以下几种方法: 1. 使用sudo命令:在命令前添加sudo以提升权限。例如,使用命令sudo visudo可以打开sudoers文件,并以超级用户权限运行visudo命令。 2. 作为超级用户登录:如果您有root用户的凭据,可以直接以root身份登录,并运行visudo命令以编辑sudoers文件。 3. 申请sudo访问权限:如果您是普通用户,但希望具有sudo访问权限并能够编辑sudoers文件,您可以联系系统管理员或root用户请求sudo访问权限。 请注意,编辑sudoers文件是一项敏感任务,因为错误的更改可能导致系统功能中断或安全漏洞。在编辑sudoers文件之前,请确保了解如何正确配置文件,并在必要时备份原始文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值