Ubuntu12.04重置root密码和sudo:must be setuid root问题的解决方法

一 Ubuntu12.04重置root密码

首先,如果我们可以在终端输入命令“sudo passwd”,然后输入当前用户的密码后”Enter”。
终端会提示我们输入新的密码并确认,此时的密码就是root新密码。
修改成功后,输入命令 su root,再输入新的密码就ok了。

如果不记得root密码,而且被提示没有权限的时候,要进入单用户模式了,首先选择重启,长按Shift(有时候长按shift或Esc没有效果的话,鼠标试下多次单击vm中的启动画面保持焦点在虚拟机上),进入GRUB,上下移动,选中修复模式”Ubuntu-x.x.xx.xx-generic (recovery mode)“,然后按e(记住,是选中,选中后按e,不需要按回车)
Ubuntu12.04重置root密码和sudo:must be setuid root问题的解决方法
按e进入如下界面,找到图中红色框的recovery nomodeset并将其删掉,再在这一行的后面输入quiet splash rw init=/bin/bash或者修改启动参数,将后面的ro single改为rw single init=/bin/bash
Ubuntu12.04重置root密码和sudo:must be setuid root问题的解决方法
Ubuntu12.04重置root密码和sudo:must be setuid root问题的解决方法

按ctrl+x或F10启动系统就可以进入single模式而不需要密码了,然后我们就可以用命令 passwd 用户名来修改密码了,如图

单用户模式,进去干什么都行了。可以改普通用户密码,也可以改root密码。按ctrl+alt+delete
重启(我试过用命令关机,重启都不行,只能用这个)。

Ubuntu12.04重置root密码和sudo:must be setuid root问题的解决方法

二 sudo出现sudo:must be setuid root问题的解决方法

Ubuntu12.04重置root密码和sudo:must be setuid root问题的解决方法
按照上图按enter键后,在出现的界面中选择root有关的那一列(记住:是root,不是newroot),enter后进入root用户系统;
Ubuntu12.04重置root密码和sudo:must be setuid root问题的解决方法

此时,已经成功的进入root用户系统,在该系统中执行
1.输入上步设置的密码
2.先执行
#mount -o remount,rw /
这个很重要,网上找的很多资料都不全没有这步造成无法恢复成功。
因为recovery模式默认是以只读模式挂载的,如果不执行这句的话会报
ubuntu server sudo出现sudo:must be setuid root 完美解决办法
3.执行
#chown root:root /usr/bin/sudo
#chmod 4755 /usr/bin/sudo
#chown root /usr/lib/sudo/sudoers.so
4.重启之后运行
sudo ls

#sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
#sudo: fatal error, unable to load plugins
5.重新进入恢复root模式
运行
#chown root /usr/lib/sudo/sudoers.so
重启问题解决。

注:也可以直接在重置密码单用户模式下直接
#chown root:root /usr/bin/sudo
#chmod 4755 /usr/bin/sudo
#chown root /usr/lib/sudo/sudoers.so