我尝试运行sudo,但它失败了:
gregd@david $ sudo ls
sudo: must be setuid root
gregd@david $ which sudo
/usr/bin/sudo
gregd@david $ ll /usr/bin/sudo
-rwxr-xr-x 1 root root 165K 2012-05-16 00:25 /usr/bin/sudo*
你有关于如何修复这个问题的建议吗?
我尝试运行sudo,但它失败了:
gregd@david $ sudo ls
sudo: must be setuid root
gregd@david $ which sudo
/usr/bin/sudo
gregd@david $ ll /usr/bin/sudo
-rwxr-xr-x 1 root root 165K 2012-05-16 00:25 /usr/bin/sudo*
你有关于如何修复这个问题的建议吗?
有时候这个问题是由于文件 /usr/bin/sudo 的权限被设置为 777 导致的。如果您像 chmod -R 777 /usr/
这样做,就会有效地破坏 sudo。如果这是您的问题,并且已经接受的答案不起作用,这里是解决方案:
解决方法:
重新启动电脑,在启动菜单中按下 shift 键。
这应该会带出 GNU GRUB(即恢复模式)菜单。
选择以 Advanced options 开头的行
选择以 ("recovery mode") 结尾的操作系统版本中最高的那一个
按回车键
在随后的菜单中,向下滚动到 "Drop to root shell prompt"(进入根 shell 提示符)
输入以下内容:
mount -o remount,rw /
mount --all
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
restart
这应该恢复sudo权限。
chmod -R 777 /usr/
来破坏了 sudo
。解决方案很容易理解,而且有效。谢谢! - Jonathan Lam您必须能够以root身份登录,但如果您可以,则可以运行此命令
chmod u+s /usr/bin/sudo
解决问题