红联Linux门户
Linux帮助

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

发布时间:2016-05-23 15:45:37来源:linux网站作者:Crazy_CPU

今天不小心使用命令:

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模式默认是以只读模式挂载的,如果不执行这句的话会报错:

1

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命令能够正常使用了。


本文永久更新地址:http://www.linuxdiyf.com/linux/20881.html