每当我尝试做任何需要密码的事情时,它都会返回以下信息:
u7ur7l3@ubuntu:~$ sudo
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
sudo: fatal error, unable to load plugins
u7ur7l3@ubuntu:~$
因此我无法从软件中心/包管理器安装任何东西,也无法在终端中运行任何需要密码的命令。我可以登录,但仅此而已。
我无意中更改了一些文件的权限,然后又更改了一些文件试图修复它 :/。现在我完全不知道该怎么办了。
当我尝试使用 pkexec 让 sudo 再次工作时发生了以下情况:
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 作为海豚服务/插件,因此历史记录不会显示权限更改。
我刚刚意识到声音根本不起作用了。当我进入 Phonon 时,我的默认设置和播放设备甚至都不存在。而且我没有关机选项,我只能注销或离开。
答案1
所有权至少一个重要的系统文件出现错误。这是一件坏事;如果这种情况发生在许多系统文件上(也许你在某个时候sudo chown
用该标志运行了一个大命令-R
?),它可能会导致许多其他系统错误和不稳定。所以如果你最近安装了 Ubuntu,你可能需要重新安装Adam Heathcote 建议。
但您无需重新安装即可解决此问题。相反,只需修复该文件的所有权即可。如果此后您收到有关其他文件的错误,您也可以修复它们(尽管您可能必须告诉我们错误消息是什么,这样我们才能告诉您如何修复它们)。
sudo
不起作用,但是使用sudo
是之一二方法为了管理员执行如下操作根在 Ubuntu 上。另一个是波尔基特(以前称为 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 和 Polkit 都无法让您以 root 身份执行操作,因此您必须启动到恢复模式并获取 root shell。为此,请Shift在启动计算机时按住 ,以确保获得可见的 GRUB 启动菜单。选择包含以下单词的条目恢复模式(通常,您应该选择最靠近顶部且包含这些单词的那个。)然后您将看到一个菜单,其中有许多选项 - 选择要放入 root shell 的选项。
有关在恢复模式下访问 root shell 的详细说明如下:
获得 root shell 后,运行:
chown root /usr/lib/sudo/sudoers.so
如果收到有关文件或文件系统不可修改的错误,请以读写方式重新挂载:
mount -rw -o remount /
(重新安装的想法和方法的来源:这个几乎不相关的答案。
然后运行该mount
命令后,再次运行上述chown
命令并查看它是否有效。
完成恢复模式后,您可以通过运行以下命令重新启动:
reboot
sudo
然后应该工作,或者至少给一些其他错误。
最后,请注意,鉴于您显示的错误,许多文件现在可能具有错误的所有权或权限。如果您能通过这种方式找出您修改了哪些文件,那就太好了。例如,如果您能找出是几个特定文件夹中的所有文件,那么就可能可以纠正您最近遇到的所有问题。
重新安装绝对是一个选择,但特别是如果你改变的只是所有权(而不是权限,因为权限变化较大,所以重建起来比较困难),应该可以简单地将权限递归地设置回其原始所有者(通常可能是 root)并完全扭转损害。
重新开始sudo
工作是第一步。希望上述技巧能帮助你做到这一点。