我意外运行了以下命令
sudo chown [username] -hR /
现在sudo su
出现错误:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
如何解决这个问题?
答案1
正如你将读到的这个答案,这个问题是不是尽管人们已经尽力了。您可以让sudo
命令再次运行无需重新安装按照以下简单步骤:
- 退出当前用户身份,然后重新以 root 身份登录。
- 执行
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
- 以 root 身份注销,然后以当前用户身份重新登录。
这确实有效,并且比其他答案中推荐的“核选项”更快、更少痛苦。
如果你没有设置 root 密码,你可以启动恢复模式进行设置。
请注意,这将解决名义上的错误/usr/bin/sudo must be owned by uid 0 and have the setuid bit set
,但是如果像 OP 一样,您所做的不仅仅是弄乱了文件的权限/usr/bin/sudo
,那么更“核”的选项实际上可能更有意义。
答案2
备份您的数据并重新安装。
如果这看上去很极端,那是因为它确实如此。这不仅仅是sudo
……您破坏了整个文件系统的权限结构。其他一些答案可能会起到sudo
作用,但忽视整个问题会引发以后的灾难。
您可以尝试从另一个安装中镜像所有者,但有些情况(/var/
例如)高度依赖于您实际安装的内容。如果您想了解问题的规模,我以前确实尝试过帮助别人解决此类问题。修复是手动的、耗时的并且很容易导致系统不安全或损坏。
解决这一混乱局面要比全新安装花费更长的时间。
一些人对此并不了解情况的严重性,因此上门拜访。在他们看来,这是一大堆不必要的工作,就像流氓水管工或机械师为了骗取你更大的工作而说的话。
如果您仅更改了的权限/usr/bin/sudo
,请务必修复该权限。但这个问题涉及整个系统的变革。现在,每个文件(除了运行时文件)都归用户所有。用户运行的所有程序(例如浏览器、浏览器漏洞) 可能会覆盖系统文件、监视您、提取任何数据。这需要纠正。如上所述,这很困难。最简单的方法是重新安装。
所以请不要偷懒。文件系统权限有助于保证您的安全,请不要破坏它们。
答案3
Esc在启动系统时按住进入恢复模式。
进入恢复模式后,在长列表中选择 root 选项(它实际上是 root shell)
输入命令 -
mount -o remount /
(或者在恢复中您可以单击 grub 选项。这帮助我获得了文件系统的读写权限。这基本上更新了文件系统上的读/写模式,因为该命令最初对我来说不起作用)它将以读写模式重新挂载您的文件系统。
命令 -
chown -R root:root /usr
此命令将以递归方式再次将所有权从“用户”更改为 root现在我仍然遇到
sudo
命令问题,因此我再次按照步骤 1、2、3 执行并执行chmod 4755 /usr/bin/sudo
现在我真的认为重新安装真的是一个“核选项”
答案4
上述方法对我不起作用,因为我无法“以 root 身份重新登录”(密码未知),但我通过编辑获得了 root shell
vi /etc/lightdm/lightdm.conf
autologin-user=root
greeter-show-manual-login=true
重启后我终于可以运行
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo