sudo: /usr/lib/sudo/sudoers.so muss im Besitz von uid 0 sein

10

Immer wenn ich versuche, etwas zu tun, das mein Passwort erfordert, wird Folgendes zurückgegeben:

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

Daher kann ich nichts vom Software Center / Paketmanager installieren oder Befehle im Terminal ausführen, für die mein Kennwort erforderlich ist. Ich kann mich einloggen, aber das war's auch schon.

Ich habe versehentlich die Berechtigungen einiger Dateien geändert und dann weitere geändert, um das Problem zu beheben: /. Jetzt bin ich völlig verloren, was zu tun ist.

Dies geschah, als ich versuchte, sudo mit pkexec wieder zum Laufen zu bringen:

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

Und um Berechtigungen zu ändern, habe ich Root-Aktionen als Delfin-Service / Plugin verwendet, sodass mir der Verlauf die Berechtigungsänderungen nicht anzeigt.

Ich habe gerade festgestellt, dass Sounds überhaupt nicht mehr funktionieren. Wenn ich in Phonon gehe, sind meine Standardeinstellungen und Wiedergabegeräte nicht einmal vorhanden. Außerdem habe ich keine Möglichkeit zum Herunterfahren, ich kann mich nur abmelden oder gehen.

7UR7L3
quelle
Ist das Problem mit Sound und Herunterfahren neu, seit Sie den pkexecBefehl ausgeführt haben?
Eliah Kagan
@Eliah Kagan, nein, ich habe das Soundproblem richtig erkannt, als ich mich an meinem Computer angemeldet habe, und ich habe das Problem beim Herunterfahren erkannt, als ich gestern Abend meinen Computer ausgeschaltet habe. Am Ende hielt ich nur den Netzschalter gedrückt.
7UR7L3
Ich habe meine Antwort erweitert, um Anweisungen bereitzustellen, die funktionieren sollten , obwohl weder noch sudoPolicyKit (via pkexec) funktionieren.
Eliah Kagan
2
su root chown -R root: root / usr / lib /

Antworten:

20

Der Besitz mindestens einer Ihrer wichtigen Systemdateien ist falsch. Das ist eine schlechte Sache; Wenn dies vielen Systemdateien passiert ist (vielleicht haben Sie irgendwann einen großen sudo chownBefehl mit dem -RFlag ausgeführt?), kann dies eine Reihe anderer Systemfehler und Instabilitäten verursachen. Also , wenn Sie Ubuntu vor kurzem installiert , können Sie neu installieren wie Adam Heathcote schlägt .

Aber Sie müssen nicht neu installieren , dieses Problem zu beheben . Korrigieren Sie stattdessen einfach den Besitz dieser Datei. Wenn Sie danach Fehler zu anderen Dateien erhalten, können Sie diese auch beheben (obwohl Sie uns möglicherweise die Fehlermeldungen mitteilen müssen, damit wir Ihnen auch mitteilen können, wie Sie sie beheben können).

sudofunktioniert nicht, aber die Verwendungsudo ist eine von zwei Möglichkeiten für Administratoren , Aktionen als Root unter Ubuntu auszuführen . Das andere ist Polkit (früher PolicyKit genannt).

Führen Sie diesen Befehl aus, der Polkit (via pkexec) verwendet, um den Besitz von /usr/lib/sudo/sudoers.soback in root(dh uid 0) zu ändern :

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

Versuchen Sie es dann sudoerneut. Sie können etwas Triviales ausführen und prüfen, ob eine Fehlermeldung angezeigt wird.sudo ls

Schließlich empfehle ich das Ausführen history, um alle von Ihnen ausgeführten Befehle anzuzeigen. Hoffentlich werden dadurch alle von Ihnen ausgeführten Befehle aufgelistet, deren Berechtigungen geändert wurden. Unter der Annahme, dass dies sudojetzt funktioniert, empfehle ich, eine neue Frage einschließlich der Ausgabe von zu historyveröffentlichen, um Hilfe beim Rückgängigmachen aller von Ihnen vorgenommenen Änderungen des Dateieigentums und der Berechtigungen zu erhalten.

Wenn pkexeces auch nicht funktioniert ...

Du hast es versucht pkexecund es hat nicht funktioniert. Da weder sudonoch Polkit daran arbeiten, dass Sie Aktionen als Root ausführen können, müssen Sie im Wiederherstellungsmodus booten und eine Root-Shell erhalten. Halten Sie dazu Shiftbeim Booten Ihres Computers die Taste gedrückt, um sicherzustellen, dass ein sichtbares GRUB-Startmenü angezeigt wird. Wählen Sie einen Eintrag, der die Wörter enthält Recovery - Modus ( in der Regel, sollten Sie die am nächsten an die Spitze wählen, die diese Wörter hat). Dann erhalten Sie ein Menü, in dem Sie eine Reihe von Optionen haben - wählen Sie die Option aus, die auf einer Root-Shell abgelegt werden soll.

Detaillierte Anweisungen zum Zugriff auf eine Root-Shell im Wiederherstellungsmodus finden Sie hier:

Sobald Sie eine Root-Shell haben, führen Sie Folgendes aus:

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

Wenn Sie eine Fehlermeldung erhalten, dass die Datei oder das Dateisystem nicht geändert werden kann, stellen Sie sie erneut bereit. Readwrite:

mount -rw -o remount /

(Quelle für die Idee des Remounting und wie es geht: diese meist nicht verwandte Antwort .)

Führen Sie dann nach dem Ausführen dieses mountBefehls den obigen chownBefehl erneut aus und prüfen Sie, ob er funktioniert.

Sobald Sie im Wiederherstellungsmodus fertig sind, können Sie neu starten, indem Sie Folgendes ausführen:

reboot

sudosollte dann funktionieren oder zumindest einen anderen Fehler geben.

Beachten Sie schließlich, dass es angesichts der von Ihnen angezeigten Fehler wahrscheinlich ist, dass viele Dateien jetzt den falschen Besitz oder die falschen Berechtigungen haben. Es wäre ideal, wenn Sie herausfinden könnten, welche Dateien Sie auf diese Weise geändert haben. Wenn Sie beispielsweise herausfinden könnten, dass sich alle Dateien in einigen bestimmten Ordnern befinden, können Sie möglicherweise das vollständige Ausmaß der kürzlich aufgetretenen Probleme korrigieren.

Eine Neuinstallation ist definitiv eine Option, aber insbesondere wenn Sie nur den Besitz geändert haben (und keine Berechtigungen, die etwas schwieriger zu rekonstruieren sind, da sie stärker variieren), sollte es möglich sein, die Berechtigungen einfach rekursiv auf ihre ursprünglichen Eigentümer zurückzusetzen (wahrscheinlich normalerweise root) ) und den Schaden vollständig rückgängig machen.

Die sudoerste Arbeit ist ein erster Schritt. Hoffentlich können Sie dies mit der oben genannten Technik tun.

Eliah Kagan
quelle
Ich habe diese Anweisungen befolgt, aber als ich wieder in Kubuntu gebootet habe, gab es immer noch ein Problem. Gleicher Fehler. Zu diesem Zeitpunkt ist es wahrscheinlich einfacher, nur eine Neuinstallation durchzuführen. : /
7UR7L3
Kann ich so etwas auch tun: askubuntu.com/questions/9135/… , um alles zu speichern? Das alles zusammen als Pseudo-Bash-Skript wird nicht funktionieren, weil sudo so beteiligt ist ....
7UR7L3
@ 7UR7L3 Dadurch werden Informationen zu den installierten Paketen und die meisten Informationen zu den systemweiten Einstellungen Ihrer Programme gesichert. In Kombination mit einer vollständigen Sicherung Ihres Home-Verzeichnisses sollten Sie damit die Dinge größtenteils so wiederherstellen können, wie sie waren, nachdem Sie das vorhandene System entfernt und ein neues installiert haben. Ja. Bitte stellen Sie sicher, dass Sie jederzeit eine Sicherungskopie aller wirklich wichtigen Dateien (wie Ihrer Dokumente) haben. Wenn Sie feststellen, dass Sie weitere Informationen zu dieser Technik benötigen, die auf Ihre Situation angewendet werden, schlage ich vor, eine neue Frage zu stellen (aber es macht mir nichts aus, wenn Sie hier in Kommentaren nachfragen).
Eliah Kagan
Gibt es einen guten Weg, um all dies zu tun? Ich habe ein externes 1-TB-Laufwerk, auf dem ich Daten sichern kann, aber es wird nirgendwo angezeigt, wenn ich es anschließe. Es leuchtet, um anzuzeigen, dass es funktioniert, aber nichts auf dem Bildschirm ändert sich und es befindet sich nirgendwo in Delfin . Wenn ich das zum Laufen gebracht habe, wie soll ich dann alles speichern? Im Paketmanager konnte ich die installierten Pakete in einem Textdokument speichern, aber das ist wirklich alles, was ich herausgefunden habe, um Informationen zu speichern. Bei so ziemlich allen anderen Lösungen handelt es sich um Sudo, das immer noch nicht funktioniert.
7UR7L3
@ 7UR7L3 Zum Sichern von Dateien? Booten Sie von einer Live-CD / DVD oder einem Live-USB. Von dort aus können Sie auf Ihre Dateien zugreifen und sie auf Ihrem externen Laufwerk sichern. Wenn Ihr externes Laufwerk auch nicht im Live-System angezeigt wird, ist dies ein völlig separates Problem, bei dem ich Ihnen möglicherweise nicht helfen kann und das ich mit ziemlicher Sicherheit nicht innerhalb der Grenzen von Kommentaren tun kann. In diesem Fall empfehle ich, eine neue Frage zu stellen. Wenn Sie hier einen Link zu der neuen Frage abgeben, werde ich sie mir ansehen und einen Beitrag leisten, wenn ich kann.
Eliah Kagan