当我尝试在 sudo 模式下运行任何命令时出现错误。
错误:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
我在 askubuntu 上找到了许多问题并接受了答案。
但这些都不能解决我的问题。可能我的情况和他们不一样。
更多信息:
我尝试utorrent
按照得票最高的答案进行安装这个问题。将文件
解压到后,我重命名了解压的文件。 从那时起我就遇到了这个错误。.tz
/opt
我希望得到一个不建议我重新安装系统的答案。
如果重新安装是唯一的解决方案,我必须备份我安装的所有内容。
答案1
简单的修复,如果你没有搞砸的话pkexec
:
问题是您/usr/bin/sudo
设置了错误的权限(-rwxrwxr-x
而不是正确的-rwsr-xr-x
)。
现在,由于该文件归 root 所有,因此您需要 root 权限才能更改其权限。通常,您会使用sudo
它,但由于它已损坏,我们必须使用pkexec
它来修复它:
pkexec chmod u+s,g-x /usr/bin/sudo
现在一切都应该再次修复。尝试以下命令进行检查:
sudo echo "sudo works again! Yay! :D"
更复杂的修复,如果你也搞砸了pkexec
:
首先,您需要以恢复模式启动您的 Ubuntu 系统。
您可以通过重新启动并等待 GRUB 菜单出现来执行此操作。这会在 BIOS 完成工作后、Ubuntu 开始加载之前立即发生。如果您使用另一个操作系统进行双启动,它通常会显示出来,但如果没有,您必须按住 键Shift才能让它出现。选择菜单点Advanced options
,然后选择带有后缀的最新内核版本(recovery mode)
。您将看到另一个菜单,您必须在其中选择root
,它会向您显示具有 root 访问权限的终端。
有关如何在恢复模式下进入 root shell 的更多信息,请参见这里,请按照步骤 1-7 进行操作,然后在此处继续。
在 root shell 中运行以下命令:
mount -o remount,rw /
chmod u=rwxs,g=rx,o=rx /usr/bin/sudo /usr/bin/pkexec
exit
然后正常重启并测试您的命令。
答案2
最近遇到了同样的问题,我搞砸sudo
了pkexec
。
尝试了@Byte Commander♦
上述回答,但对我不起作用,因为它没有改变 2 个特定文件的权限,所以我不得不一次更改一个。
第一个文件sudoers
位于/etc
cd /etc
chmod u=rwxs,g=rx,o=rx sudoers
第二个文件README
位于/etc/sudoers.d
cd /sudoers.d
chmod u=rwxs,g=rx,o=rx README
完成这些更改后,请sudo echo "sudo works again! Yay! :D"
按照@Byte Commander♦
他的回答中的要求尝试,即可成功。
答案3
如果您搞乱了 sudoers 并且无法再以任何用户身份运行 sudo,请执行以下操作:
- 运行
pkexec chmod 777 /etc/sudoers
:它将使文件世界可写,也就是说任何人都可以编辑 - 根据需要编辑 sudoers 文件(设置用户/组的权限)
- 由于 sudoers 文件已被设为全世界可写,因此它将无法工作(默认的 Linux 安全机制)
- 通过以下方式在 sudoers 文件上设置正确的权限:
pkexec chmod 0755 /etc/sudoers
如果你搞乱了 pkexec 也请按照@Byte Commander♦ 给出的解决方案操作
答案4
解决 sudo 错误
你应该重新安装“sudo”命令
为此,请按照以下步骤操作:
1-安装“突触包管理器”
您可以从以下网址下载:
https://pkgs.org/download/synaptic
或者
http://archive.ubuntu.com/ubuntu/pool/universe/s/synaptic/synaptic_0.84.3ubuntu1_amd64.deb
或者
在 Ubuntu 中搜索软件更新应用程序“突触包”并安装它
图像:
2-打开应用程序
3-在页面顶部单击搜索框和文本“ sudo
”现在在列表中找到“ sudo
”> 然后单击实心方块并在打开的方块上选择“标记为重新安装“>然后点击页面顶部的“应用”并安装
图片:
4-打开终端并运行“ sudo
”命令
你得到 :
usage: sudo -h | -K | -k | -V usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user] usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command] usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [<command>] usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ...
因此: sudo 现在正在运行