Sie sollten niemals normal verwenden sudo, um grafische Anwendungen als root zu starten. Sie sollten gksudo( kdesudoauf Kubuntu) verwenden, um solche Programme auszuführen.
gksudolegt fest HOME=/rootund kopiert .Xauthorityin ein tmpVerzeichnis. Dies verhindert, dass Dateien in Ihrem Home-Verzeichnis dem Root gehören.
Bitte beachten Sie, dass es sich hauptsächlich um Konfigurationsdateien handelt . Wenn Sie Nautilus wie root, auch mit gksu/ gksudo, ausführen und eine Datei oder einen Ordner damit erstellen (einschließlich Ihres Ausgangsverzeichnisses), wird diese Datei oder dieser Ordner Eigentum von root. Aber wenn Sie laufen Nautilus (oder die meisten anderen grafischen Anwendungen) , wie rootmit sudo, so können sie ihre speichern Konfigurationsdateien in Ihrem Home - Verzeichnis (statt root‚Home - Verzeichnis). Diese Konfigurationsdateien sind möglicherweise Eigentum von rootund können nicht aufgerufen werden, wenn Sie nicht als Root ausgeführt werden. Dies kann Ihre Einstellungen erheblich beeinträchtigen und sogar dazu führen, dass einige Anwendungen überhaupt nicht funktionieren.
Die Lösung, wenn Sie diesen Fehler gemacht haben, besteht darin, die Konfigurationsdateien zu finden und sie oder chownsie zu löschen, damit sie wieder zu Ihrem Nichtbenutzer gehören root. Viele solcher Dateien beginnen mit einem .oder befinden sich in einem Verzeichnis, das mit einem beginnt .. Einige befinden sich im .configOrdner in Ihrem Home-Verzeichnis. Um Dateien und Ordner anzuzeigen, die mit einem .in Nautilus beginnen, drücken Sie Ctrl+ H(dies zeigt versteckte Dateien an .) Um sie anzuzeigen ls, verwenden Sie das -a(oder -A) Flag.
Mit dem folgenden Befehl können Sie in einem Terminal feststellen, ob sich Dateien in Ihrem Ausgangsverzeichnis befinden, deren Eigentümer Sie nicht sind:
find $HOME -not -user $USER -exec ls -lad {} \;
Hier werden alle Dateien im Home-Verzeichnis aufgelistet, die nicht dem Benutzer gehören.
Ich habe schon 'sudo nautilus' benutzt. Bedeutet das, dass mein Home-Verzeichnis jetzt root gehört? (PS: Mein Englisch ist nicht perfekt)
DrKenobi
22
Nein, dies bedeutet, dass alle Dateien, die in Ihrem Home-Verzeichnis erstellt wurden, dem Root gehören, während Sie Nautilus als Root ausgeführt haben. Dies können Miniaturansichten und andere unterstützende Dateien sein, die Nautilus automatisch erstellt.
Ryan Thompson
1
. Das zitierte Segemnet, das Sie verwendet haben, hat mich verwirrt, seit ich es zum ersten Mal gelesen habe. speziell dort, wo es heißt: "Dies verhindert, dass Dateien in Ihrem Home-Verzeichnis root gehören." Ich habe dies heute getestet, indem ich einige Testdateien für 10.04, 10.04 (VM), 10.10 (VM) erstellt habe, und unabhängig davon, wie ich sudo / gksudo gestartet habe (Terminal-> Nautilus, Terminal-> gedit, Alt + F2). .) ... alle Fälle haben dazu geführt, dass mein neu erstelltes Objekt "root" gehört, mit der Gruppe "root". Vielleicht habe ich etwas verpasst, aber ich denke, dass ein Teil des angegebenen Segments irreführende Personen ist ...
Peter. O
Hmm, ich habe gerade die Wiki-Seite zitiert. Ich habe kein tiefes Verständnis für den Unterschied zwischen den beiden Werkzeugen. Vielleicht kann jemand auf unix.stakexchange.com helfen?
2
@ Peter.O Ich habe diese Antwort erweitert, um diese Frage zu beantworten und genau zu erklären, mit welchen Dateien sudoüber gksu/ anders umgegangen wird gksudo. (@ChrisWilson Sie können diese Änderung jederzeit rückgängig machen oder verkürzen, wenn Sie der Meinung sind, dass sie nicht vollständig im Rahmen Ihrer Antwort liegt. Mir scheint, dass dies der Fall ist, aber das ist ganz Ihre Aufgabe.)
Eliah Kagan
9
Wussten Sie, dass es ein Nautilus-Add-On mit dem Namen nautilus-gksu gibt, das das Rechtsklick-Menü von nautilus um ein "Als Administrator öffnen" erweitert?
Wenn Sie eine grafische Anwendung mit sudo starten, können Sie den Besitz Ihrer Dateien durcheinander bringen, was dazu führen kann, dass Ihre Apps nicht mehr funktionieren. TU das niemals. Überprüfen Sie die Community-Hilfe :
Sie sollten niemals normales sudo verwenden, um grafische Anwendungen als Root zu starten . Sie sollten gksudo (kdesudo auf Kubuntu) verwenden, um solche Programme auszuführen. gksudo setzt HOME = ~ root und kopiert .Xauthority in ein tmp-Verzeichnis. Dies verhindert, dass Dateien in Ihrem Home-Verzeichnis Root gehören. (AFAICT, das ist das Besondere an der Umgebung des gestarteten Prozesses mit gksudo vs. sudo).
sudo behält standardmäßig die Variable $ HOME bei. Wenn Sie beispielsweise ausführen, werden sudo firefoxSie mit Root-Rechten ausgeführt, jedoch mit Ihrer Konfiguration. Wenn Sie in dieser Situation Einstellungen ändern, werden Teile Ihrer Konfiguration anstelle Ihrer Benutzer-ID im Besitz von root sein.
In Ubuntu (17.10) 17.10.1 und wahrscheinlich zukünftigen Versionen von Ubuntu gksuund gksudosind veraltet. Sie arbeiten in Xorg, aber nicht in Wayland. Sie können sudo -Hjedoch GUI-Anwendungsprogramme ausführen, ohne die Konfigurationsdateien zu beschädigen. Verwenden Sie keine normalen sudo.
Wenn Sie Wayland (das neue grafische System, das Xorg ersetzt) ausführen, benötigen Sie auch einen Befehl mit xhost.
xhost +si:localuser:root # if Wayland
sudo -H nautilus --no-desktop
Weitere Informationen finden Sie unter dem folgenden Link.
Gefunden in der vom Terminalkommando 'info gksudo' erzeugten Datei:
gksu ist ein Frontend für su und gksudo ist ein Frontend für sudo. Ihr Hauptzweck besteht darin, grafische Befehle auszuführen, die root benötigen, ohne dass ein X-Terminal-Emulator ausgeführt und su direkt verwendet werden muss.
Ich habe festgestellt, dass die "Info" -Dateien in vielen Fällen hilfreiche Beschreibungen sowie nützliche Informationen zu Optionen enthalten. Es wird dringend empfohlen, dass Sie sich zuerst mit einem Befehl vertraut machen, indem Sie auf die 'info'-Datei für diesen Befehl zugreifen.
Geben oder fügen Sie für Anfänger im Terminal die Befehlsinformationen mit dem Befehlsnamen ein, an dem Sie als Parameter interessiert sind. Das Format ist info [command_name](denken Sie daran, die Eingabeaufforderung oder die Klammern nicht einzuschließen). Empfohlene Terminaleinträge für den Anfänger sind:
Antworten:
Von hier genommen :
Bitte beachten Sie, dass es sich hauptsächlich um Konfigurationsdateien handelt . Wenn Sie Nautilus wie
root
, auch mitgksu
/gksudo
, ausführen und eine Datei oder einen Ordner damit erstellen (einschließlich Ihres Ausgangsverzeichnisses), wird diese Datei oder dieser Ordner Eigentum vonroot
. Aber wenn Sie laufen Nautilus (oder die meisten anderen grafischen Anwendungen) , wieroot
mitsudo
, so können sie ihre speichern Konfigurationsdateien in Ihrem Home - Verzeichnis (stattroot
‚Home - Verzeichnis). Diese Konfigurationsdateien sind möglicherweise Eigentum vonroot
und können nicht aufgerufen werden, wenn Sie nicht als Root ausgeführt werden. Dies kann Ihre Einstellungen erheblich beeinträchtigen und sogar dazu führen, dass einige Anwendungen überhaupt nicht funktionieren.Die Lösung, wenn Sie diesen Fehler gemacht haben, besteht darin, die Konfigurationsdateien zu finden und sie oder
chown
sie zu löschen, damit sie wieder zu Ihrem Nichtbenutzer gehörenroot
. Viele solcher Dateien beginnen mit einem.
oder befinden sich in einem Verzeichnis, das mit einem beginnt.
. Einige befinden sich im.config
Ordner in Ihrem Home-Verzeichnis. Um Dateien und Ordner anzuzeigen, die mit einem.
in Nautilus beginnen, drücken Sie Ctrl+ H(dies zeigt versteckte Dateien an .) Um sie anzuzeigenls
, verwenden Sie das-a
(oder-A
) Flag.Mit dem folgenden Befehl können Sie in einem Terminal feststellen, ob sich Dateien in Ihrem Ausgangsverzeichnis befinden, deren Eigentümer Sie nicht sind:
Hier werden alle Dateien im Home-Verzeichnis aufgelistet, die nicht dem Benutzer gehören.
quelle
sudo
übergksu
/ anders umgegangen wirdgksudo
. (@ChrisWilson Sie können diese Änderung jederzeit rückgängig machen oder verkürzen, wenn Sie der Meinung sind, dass sie nicht vollständig im Rahmen Ihrer Antwort liegt. Mir scheint, dass dies der Fall ist, aber das ist ganz Ihre Aufgabe.)Wussten Sie, dass es ein Nautilus-Add-On mit dem Namen nautilus-gksu gibt, das das Rechtsklick-Menü von nautilus um ein "Als Administrator öffnen" erweitert?
Hinweis: Nicht verfügbar ab Ubuntu 12.04.
quelle
nautilus-gksu
ist ab Ubuntu 12.04 nicht mehr verfügbar.Wenn Sie eine grafische Anwendung mit sudo starten, können Sie den Besitz Ihrer Dateien durcheinander bringen, was dazu führen kann, dass Ihre Apps nicht mehr funktionieren. TU das niemals. Überprüfen Sie die Community-Hilfe :
quelle
sudo behält standardmäßig die Variable $ HOME bei. Wenn Sie beispielsweise ausführen, werden
sudo firefox
Sie mit Root-Rechten ausgeführt, jedoch mit Ihrer Konfiguration. Wenn Sie in dieser Situation Einstellungen ändern, werden Teile Ihrer Konfiguration anstelle Ihrer Benutzer-ID im Besitz von root sein.quelle
sudo -H GUI-application-program
In Ubuntu (17.10) 17.10.1 und wahrscheinlich zukünftigen Versionen von Ubuntu
gksu
undgksudo
sind veraltet. Sie arbeiten in Xorg, aber nicht in Wayland. Sie könnensudo -H
jedoch GUI-Anwendungsprogramme ausführen, ohne die Konfigurationsdateien zu beschädigen. Verwenden Sie keine normalensudo
.Wenn Sie Wayland (das neue grafische System, das Xorg ersetzt) ausführen, benötigen Sie auch einen Befehl mit
xhost
.Weitere Informationen finden Sie unter dem folgenden Link.
Warum funktioniert gksu / gksudo oder das Starten einer grafischen Anwendung mit sudo nicht mit Wayland?
quelle
Gefunden in der vom Terminalkommando 'info gksudo' erzeugten Datei:
Ich habe festgestellt, dass die "Info" -Dateien in vielen Fällen hilfreiche Beschreibungen sowie nützliche Informationen zu Optionen enthalten. Es wird dringend empfohlen, dass Sie sich zuerst mit einem Befehl vertraut machen, indem Sie auf die 'info'-Datei für diesen Befehl zugreifen.
Geben oder fügen Sie für Anfänger im Terminal die Befehlsinformationen mit dem Befehlsnamen ein, an dem Sie als Parameter interessiert sind. Das Format ist
info [command_name]
(denken Sie daran, die Eingabeaufforderung oder die Klammern nicht einzuschließen). Empfohlene Terminaleinträge für den Anfänger sind:quelle
Wenn Sie sich für gksudo nautilus entscheiden, fragen Sie Ihr Passwort grafisch ab. Mit sudo fragen Sie es in einem Terminal
quelle