19

我正在尝试运行 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*

对于如何解决这个问题,有任何的建议吗?

4

2 回答 2

73

有时,当文件 /usr/bin/sudo 的权限设置为 777 时会导致此问题。如果您执行类似的操作chmod -R 777 /usr/,则可以执行此操作。它有效地破坏了sudo。如果这是您的问题,这是解决方案,并且接受的答案不起作用:

修理:

重启电脑,在启动菜单按shift。

这应该会调出 GNU GRUB(即恢复模式)菜单。

  • 如果这不起作用,只需在启动中重新启动并在下次启动时出现提示时选择恢复模式。

选择以高级选项开头的行

选择以(“恢复模式”)结尾的操作系统的最高版本

按回车

在以下菜单中,转到“Drop to root shell prompt”

键入以下内容:

mount -o remount,rw /

mount --all

chown root:root /usr/bin/sudo

chmod 4755 /usr/bin/sudo

restart

这应该恢复 sudo 特权。

于 2013-10-10T21:56:29.080 回答
10

您必须能够以 root 身份登录,但如果可以,您可以运行它

chmod u+s /usr/bin/sudo

并解决问题

于 2013-05-22T01:58:27.483 回答