无意之间,使用sudo chmod -R 777 /usr命令修改了usr文件的所有者,导致sudo:must be setuid root问题的出现,即sudo命令无法使用。网上介绍的方法差不多都相同,就是通过下面两条命令:
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
但是实际上在出现问题的当前用户系统中上述两条命令是无法起到想要的目的的,应用上述两条命令必需在root用户下执行才有效。那么,怎样进入root用户呢,网上介绍的使用sudo passwd root 的方法肯定是行不通的,因为此时sudo命令已经发生错误了,只能使用另外的方法登录root客户端,这里使用ubuntu 的recovery模式。
首先,进入recovery模式。有的说是启动时按ESC键,有的是启动时按shift键,说法不一,都可以试试,我是使用shift键进入recovery模式的。注意,可以一次不能成功进入recovery模式,可以多尝试几次;
按照上图按enter键后,在出现的界面中选择root有关的那一列(记住:是root,不是newroot),enter后进入root用户系统;
此时,已经成功的进入root用户系统,在该系统中执行
chown root:root /usr/bin/sudo
chmod 4755 usr/bin/sudo
chmod 4755 /usr/lib/sudo/sudoers.so
关机重启,此时问题解决。