sudo:/usr/lib/sudo/sudoers.so必须由uid 0拥有

每当我尝试做任何需要我密码的事情时,都会返回:

u7ur7l3@ubuntu:~$ sudo sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 sudo: fatal error, unable to load plugins u7ur7l3@ubuntu:~$ 

所以我无法从软件中心/包管理器安装任何东西,或者在终端中运行任何需要我密码的命令。 我可以登录,但这就是它。

我不小心改变了一些文件的权限,然后更改了一些尝试修复它:/。 现在我完全迷失了该怎么做。

这是当我试图让sudo再次使用pkexec时发生的事情:

 u7ur7l3@ubuntu:~$ pkexec chown root /usr/lib/sudo/sudoers.so Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Success u7ur7l3@ubuntu:~$ sudo ls sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 sudo: fatal error, unable to load plugins 

并且为了更改权限,我使用Root Actions作为dolphin服务/插件,因此历史记录不会向我显示权限更改。

我才意识到声音根本不起作用。 当我进入Phonon时,我的默认设置和播放设备甚至都没有。 此外,我没有关闭选项,我只能退出或离开。

至少有一个重要系统文件的所有权是错误的。 那是件坏事; 如果许多系统文件发生了这种情况(也许你在某个时候用-R标志运行了一个大的sudo chown命令?),它可能会导致许多其他系统错误和不稳定。 因此, 如果您最近安装了Ubuntu ,则可能需要重新安装,如Adam Heathcote建议的那样 。

但是您不必重新安装来解决此问题 。 相反,只需修复该文件的所有权。 如果在此之后您遇到其他文件的错误,您也可以修复它们(尽管您可能必须告诉我们错误消息是什么,因此我们也可以告诉您如何修复它们)。

sudo不起作用,但使用sudo是管理员在Ubuntu上以root身份执行操作的两种方法之一 。 另一个是Polkit (以前称为PolicyKit)。

运行此命令,它使用Polkit(通过pkexec )将/usr/lib/sudo/sudoers.so的所有权更改回root (即uid 0):

 pkexec chown root /usr/lib/sudo/sudoers.so 

然后再次尝试使用sudo 。 你可以像sudo ls那样运行一些简单的东西,看看你是否收到错误信息。

最后,我建议运行history以显示您运行的所有命令。 希望这将列出您运行的所有已更改权限的命令。 假设sudo现在有效,我建议发布一个新问题,包括history输出,以获取帮助撤消所有文件所有权和权限更改。

如果pkexec不起作用……

你尝试过pkexec但它没有用。 由于sudo和Polkit都不允许您以root身份执行操作,因此您必须启动到恢复模式并获取root shell。 要执行此操作,请在启动计算机时按住Shift键 ,以确保获得可见的GRUB启动菜单。 选择包含单词恢复模式的条目(通常,您应该选择距离顶部最近的单词具有这些单词)。 然后,您将获得一个菜单,其中有许多选项 – 选择要删除到根shell的选项。

有关在恢复模式下访问root shell的详细说明,请访问:

  • 我如何启动到root shell?

获得root shell后,运行:

 chown root /usr/lib/sudo/sudoers.so 

如果您收到有关文件或文件系统无法修改的错误,请将其重新安装为readwrite:

 mount -rw -o remount / 

(关于重新安装和如何操作的想法的来源: 这个大多无关的答案 。)

然后在运行mount命令后,再次运行上面的chown命令,看它是否有效。

完成恢复模式后,您可以通过运行重新启动:

 reboot 

然后sudo应该工作,或至少给出一些其他错误。

最后,请注意,鉴于您显示的错误,很可能许多文件现在拥有错误的所有权或权限。 如果您能够确定以这种方式修改的文件,那将是理想的选择。 例如,如果您可以发现它是几个特定文件夹中的所有文件,那么可能可以纠正您最近遇到的问题的完整程度。

重新安装绝对是一个选项,但特别是如果您所有更改的是所有权 (而不是权限,因为它们变化更多而有些难以重建),应该可以简单地将权限设置为递归到其原始所有者(可能通常是root用户)并完全扭转损害。

sudo再次工作是第一步。 希望上述技术能够让你做到这一点。