imx6ull中sudo命令失效问题

问题出现

  事情的起因是这样的,我的imx6ull的板子很久没用了,这次重新上电之后,我习惯性的敲了一个sudo随后就发现报错
sudo: error in /etc/sudo.conf, line 0 while loading plugin `sudoers_policy’
sudo: /usr/libexec/sudo/sudoers.so must be owned by uid 0
sudo: fatal error, unable to load plugins

在这里插入图片描述


  随后在网上找解决办法,发现基本所有的帖子都是出自一个国外的帖子并且解决方法如下:
$ chmod 644 /usr/lib/sudo/sudoers.so
$ chown -R root /usr/lib/sudo
  很显然这种解决方法没有对症下药,而且大多数人/usr/lib/sudo/sudoers.so的权限就是644,也不是所有人的系统都有/usr/lib/sudo这个文件,所以这种方法基本解决不了问题。

问题分析

  让我们来看上图的第二行报错:/usr/libexec/sudo/sudoers.so must be owned by uid 0;翻译过来就是
/usr/libexec/sudo/sudoers.so这个文件所有者必须是uid为0的用户。
接下来我们用命令查看一下uid为0的用户,可以看到是root用户。
在这里插入图片描述


  那么问题来了,既然sudoers.so目前不属于root用户那它属于谁呢?于是我们继续敲ls -lh /usr/libexec/sudo/sudoers.so查看,发现sudoers.so目前属于uid为1000的用户,我们继续敲命令id 1000查看uid 1000是哪个用户,可以看到根本就没有这个用户,所以可以判定这个1000就是个废值。
在这里插入图片描述

  接下来我们根据报错将/usr/libexec/sudo/sudoers.so这个文件的拥有者修改为root(注意,你修改为root或者0都是代表root用户,只是root方便用户记忆而已)。使用命令chown root /usr/libexec/sudo/sudoers.so。完成后我们再敲sudo发现新的报错:/etc/sudoers is owned by uid 1000, should be 0;意思要你继续把/etc/sudoers这个文件拥有者也修改成root用户。
在这里插入图片描述


  根据报错继续修改chown root /etc/sudoers,随后继续敲sudo,可以发现只剩下最后一个报错了:/etc/sudoers.d is owned by uid 1000, should be 0;最后我们还需要修改/etc/sudoers.d的拥有者
在这里插入图片描述


  执行chown root /etc/sudoers.d命令修改后,尝试使用sudo,可以发现sudo现在可以使用了,问题完美解决。
在这里插入图片描述
 

问题解决

  1. ls -lh /usr/libexec/sudo/sudoers.so查看sudoers.so文件权限是否是644,如果是的就往下面走,不是就修改成644
  2. chown root /usr/libexec/sudo/sudoers.so根据报错修改sudoers.so文件所有者为root
  3. chown root /etc/sudoers根据报错修改sudoers文件所有者为root
  4. chown root /etc/sudoers.d根据报错修改sudoers.d文件所有者为root

参考帖子:
sudo详解

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值