Ubuntu使用sudo命令出现must be setuid root错误的解决方法

今天不小心使用命令

sudo chmod -R 777 /usr

结果悲剧了,sudo命令失去了作用,报错:must be setuid root。

于是搜了很多博客,不能说他们的方法不对,但是都没彻底解决我的问题,最后把几篇文章综合起来,终于解决了问题。

解决步骤:

我的系统是Ubuntu 12.04 Desktop

1.重启按住Shift键进入Ubuntu recovery 模式(有人说是ESC,有人说是Shift,自己试一下,我的是Shift,建议重启的时候一直按住)

2.在revovery menu菜单中,选择root项进入系统。此时命令行出现了我们熟悉的root@ubuntu:~#

3.执行

root@ubuntu:~# mount -o remount,rw /

这一步非常重要,很多文章里没有这一步。因为recovery模式默认是以只读模式挂载的,如果不执行这句的话会报错:
这里写图片描述

4.执行

root@ubuntu:~# ls -l /usr/bin/sudo
root@ubuntu:~# chown root:root /usr/bin/sudo
root@ubuntu:~# chmod 4755 /usr/bin/sudo
root@ubuntu:~# reboot

5.重启的时候选择
Ubuntu with Linux-版本号这个选项,就能正常进入系统。
进入系统后,执行

root@ubuntu:~# sudo ls

报错:

#sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
#sudo: fatal error, unable to load plugins

问题还没解决,按照一篇大神博客的说法[点我进入]

原因在于etc目录由于所有者不是root。系统在执行sudo时仍然会报错。

这时即执行如下命令让etc目录所有者为root。再次进入Recovery模式,执行如下命令:

1、chown -R root /etc/sudoers

作用为让/etc目录所有者为root

2、chmod 755 /etc/

作用为让/etc目录权限为755,最后这项自己检查一下就行了,其实一般用不到这步。

再次重启,sudo命令能够正常使用了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值