Ubuntu误修改sudoers导致无法使用sudo的解决办法

原文地址

我们在使用ubuntu时,经常会使用sudo命令,但是使用ubuntu用户登录,使用sudo命令时,经常会要求输入密码,为了方便,我们可能会修改root用户下 /etc/sudoers 文件,使sudo命令不需要输入密码,这个时候就不可避免的会输入错误,导致sudo命令无法使用,出现类似如下错误

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

捉急,怎么办,sudo运行不了,ubuntu下一般都不设置root密码,根本进入不了root用户。

这个时候常规的做法就是重启系统,进入grub界面,再进入recovery模式,修改sudoers文件,重启系统。

但是有时候,主机并不是自己控制的,自己只有ssh登录系统的使用权限。

这个时候下面这种方法就是救世主了:

使用下面的命令来编辑sudoers文件

pkexec visudo

但是却报如下错误:

==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/sbin/visudo' as the super user
Authenticating as: ceshi,,, (ceshi)
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}

这里的{pid}就是第二部获取的pid值(PS:记得去掉{})

4、这个时候,第二个终端会卡住,在第一个终端输入:
pkexec visudo
5、然后,第二个终端也卡主,回到第一个终端,会提示输入当前用户密码,输入
6、好吧,输入完密码,第一个终端卡主了,回到第二个终端,会发现,出现了sudoers的内容,编辑出错的地方,保存即可。
7、完成任务,修改完成,发现就可以继续使用sudo命令了,over

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

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值