记一次自己挖的坑

在ubuntu中如果以一个普通用户的身份以sudo命令修改了/etc/sudoers文件的所属人所属组或者权限导致sudo命令不能使用,会出现报错

sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

这个时候就会形成一种死循环,想把sudoers文件的权限更改回来,就得使用sudo命令,但是sudo命令使用又会报错,怎么办??
解决办法
首先需要开两个终端
在第一个终端上

echo $$

这里就会输出一个PID
然后在第二个终端

pkttyagent --process PID

这里的PID是第一个终端输出的PID,回车之后第二个终端就会卡在那,之后在第一个终端

pkexec visudo

这时候第一个终端也会卡住,但是第二个终端就会弹出让输入用户密码验证,输入当前用户的密码,回车之后,第一个终端就打开了visudo的文件,CTRL+x退出,然后在第一个终端sudo命令就可以使用了。

{在此说明,我挖这个坑是因为ansible使用sudo,但是如果ansible想使用sudo成功就必须修改visudo,使普通用户在使用sudo的时候不需要输密码,这样才能成功,我懒省事写了一个sudoers文件用ansible直接分发到其他机器的普通用户家目录下,之后再mv到/etc下,但是这时候的sudoers文件的所属人和所属组都不再是root,也就导致了上面的问题,当然,如果开启了允许root登录的话,直接登录root修改即可}

嗯,希望不要有人像我一样做这么蠢的事情 /doge

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值