Ich kann in Ubuntu plötzlich nichts mehr tun, ohne Root zu sein. Wenn ich Emacs ausführe, wird angezeigt, dass es nicht auf Dateien zugreifen kann (und es läuft in sudo und funktioniert einwandfrei). Firefox wirft Sicherheitsprobleme auf, bis ich Root bin usw. und ich habe keine Ahnung, wie ich das beheben kann.
Ich bin in su gegangen und habe sudo gelöscht und neu installiert, weil ich dachte, das würde das Problem beheben (weil ich irgendwann meine sudoers-Datei mit emacs vs. visudo bearbeitet habe), aber ohne Erfolg. Irgendwelche Ideen? Das ist eine sehr ärgerliche Erfahrung
bearbeiten:für weitere Informationen. Zuvor habe ich versucht, Virtualbox als sudo (die GUI-Version) auszuführen und hatte Probleme damit, dass es nicht auf eine bestimmte Maschine zugreifen konnte. Ich wollte also sicherstellen, dass ALLE meine Befehle als Root ausgeführt wurden, also habe ich mich selbst in die sudoers-Datei eingefügt (Benutzername (ALL) = (All) usw. Syntax) und eine Zeit lang war alles in Ordnung. Dann traten diese Probleme mit Firefox und Emacs usw. auf, also vermute ich, dass ich mich irgendwie unwissentlich aus Gruppen entfernt habe, die in der Vergangenheit Zugriff auf diese Dateien hatten
Bearbeitung Nr. 2:für den spezifischen Fehler beim Starten von Emacs heißt es „Ladedatei :/home/Pfad…/.emacs.d/elpa/asynch-20151104.2113/async-pkg kann nicht geöffnet werden … jetzt passiert das NUR, wenn ich es nicht als sudo vom Terminal aus ausführe. Kann es sein, dass ich die Paketberechtigung vermasselt habe? Der Firefox-Fehler war ähnlich wie dieser (Fehlercode: sec_error_bad_signature), ich kann das Problem jedoch nicht reproduzieren, nachdem ich meinen Ordner ~/.modzilla gelöscht habe. Irgendwelche Ideen?
Antwort1
Es hört sich an, als ob sich in Ihrem Home-Verzeichnis Dateien im Besitz des Root-Benutzers befinden.
Die Ursache hierfür kann darin liegen, dass in der Vergangenheit Anwendungen mit „sudo“ ausgeführt wurden und diese Anwendungen Dateien in Ihrem Home-Verzeichnis gespeichert haben.
Um eine Liste der Root-eigenen Dateien in Ihrem Home-Verzeichnis zu finden, versuchen Sie es mit
find /home/ -uid 0
Sie können sie dann ggf. wieder Ihrem Benutzer zuweisen.
chown myuser:myuser -R [files]
Dabei sind files die jeweiligen Dateien oder Unterverzeichnisse. Normalerweise ist es keine gute Idee, einen solchen Befehl in Ihrem gesamten Home-Verzeichnis auszuführen, für den Fall, dass einige Dateieigentümerabsichtlichoder für etwas notwendig.
Was das Problem verursacht hat: Bestimmte Anwendungen speichern während ihres normalen Betriebs Dateien in Ihrem Home-Verzeichnis, z. B. Konfigurations- oder Cache-Dateien. Dies ist bei grafischen Anwendungen sehr üblich, aber einige nicht grafische Anwendungen können dies dennoch tun. Wenn Sie nun verwenden sudo
und eine Anwendung dies tut, erstellt sie Root-eigene Dateien in Ihrem Home-Verzeichnis. Dann werden zukünftige Versuche, diese Anwendung auszuführen,ohneroot kann fehlschlagen, da es jetzt Dateien gibt, die nur von root geöffnet werden können.
Die Lösung besteht darin, den Besitzer dieser Dateien wieder in Ihren Benutzer zu ändern oder sie zu löschen, wenn Sie sie nicht für unbedingt erforderlich halten.
Um dieses Problem in Zukunft zu vermeiden, können Sie bei der Verwendung von sudo Folgendes verwenden:
sudo -H [command]
Wenn es sich um eine grafische Anwendung handelt, können Sie alternativ verwenden
gksudo [command]
Dadurch wird die Anwendung angewiesen, das Stammverzeichnis des Root-Benutzers anstelle Ihres eigenen Stammverzeichnisses zu verwenden.