Nun, vielleicht ist es eine Fantasie, aber es gibt eine Reihe von Leuten, die dasselbe sagen:
Warum sollte ich gksudo für Gtk-Apps anstelle von sudo verwenden?
Es gibt jedoch auch andere Fälle, in denen Nebenwirkungen so mild sein können, dass Firefox-Erweiterungen nicht haften bleiben oder so extrem sind, dass sie sich nicht mehr anmelden können, weil sich die Berechtigungen für Ihre .ICE-Autorität geändert haben.
Warum sollten Benutzer niemals normales Sudo verwenden, um grafische Anwendungen zu starten?
Angenommen, Sie führen gedit (einen grafischen Texteditor) als root aus. Wenn Sie sudo gedit ausführen, zeigt HOME weiterhin auf Ihr Home-Verzeichnis, obwohl das Programm als root ausgeführt wird. Folglich schreibt gedit Konfigurationsdateien als root in Ihr Home-Verzeichnis. Dies führt manchmal dazu, dass die Konfigurationsdateien Eigentum von root sind und daher für Sie nicht zugänglich sind (wenn Sie das Programm später als Sie selbst und nicht als root ausführen).
Wie führe ich ein GUI-Programm als anderer Benutzer aus (Debian)?
Verwenden Sie zunächst nicht sudo oder su, um Benutzer zum Ausführen eines grafischen Prozesses zu wechseln, da sonst Probleme auftreten können (~ / .ICEauthority-Besitzerwechsel ist ein bemerkenswertes Problem). Erstellen Sie stattdessen eine Verknüpfung, die den folgenden Befehl verwendet:
Sudo grafisch ausführen
Um ganz ehrlich zu sein, ist es meistens nicht so. Für viele Anwendungen können Sie sie auf unsachgemäße Weise ausführen - indem Sie sudo für grafische Anwendungen verwenden und keine nachteiligen Nebenwirkungen feststellen.
...
Diese Fehler treten auf, weil sudo
eine Anwendung beim Start manchmal mit Root-Rechten gestartet wird, jedoch die Konfigurationsdatei des Benutzers verwendet.
Dieses Mail-Archiv kann auch für Sie von Interesse sein.
Also, lass es uns testen.
2 brandneue virtuelle Boxen. Ubuntu 14.04. Führen Sie niemals Firefox auf ihnen aus. Was passiert, wenn ich den Befehl ausführe sudo firefox
?
tim@Hairy14CVB:~$ sudo firefox
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
...
shutdownObserver@XPIProvider.jsm:2192:13
Dies ist für beide virtuellen Boxen gleich (oder zumindest sehr ähnlich). Während Firefox lief, habe ich eine YouTube-Erweiterung installiert - eine vorgestellte. Dann schloss ich Firefox und überprüfte die Ausgabe.
tim@Hairy14CVB:~$ ls -la .ICEauthority
-rw------- 1 tim tim 1336 Jun 4 21:31 .ICEauthority
Na .ICEauthority
gut! Jedoch...
tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 Jun 1 20:49 ..
drwx------ 3 root root 4096 Jun 5 22:41 .dbus
drwx------ 4 root root 4096 Jun 5 22:41 .mozilla
3 Dinge in meinem Home-Ordner ( /home/tim/
) gehören root ( ..
, .dbus
und .mozilla
). Dies ist für beide virtuellen Boxen gleich (oder zumindest sehr ähnlich).
Ist das wichtig? Ich war mir nicht sicher, also habe ich Firefox wie folgt ausgeführt:
tim@Hairy14CVB:~$ firefox
(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.
Und dieser hässliche Fehler:
Die vollständige Terminalausgabe (einschließlich Firefox-Babble) finden Sie hier und hier in diesen beiden Pastebins .
Ich kann Firefox übrigens immer noch als Root ausführen. Aber jetzt wurden mehr Dateien geändert:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
drwx------ 3 root root 4096 Jun 5 22:55 .adobe
drwx------ 3 root root 4096 Jun 5 22:40 .dbus
drwx------ 3 root root 4096 Jun 5 22:55 .macromedia
drwx------ 4 root root 4096 Jun 5 22:40 .mozilla
War das, weil ich ein Bild auf imgur.com hochgeladen habe? Nicht sicher.
Wie habe ich das behoben? chown
. Ich verstehe es nicht, aber das Internet hat es gesagt, und es ist eine virtuelle Box, also yolo.
sudo chown -R tim:tim /home/tim/
Und das hat es behoben. Jetzt ist die Ausgabe nur noch die ..
Datei:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
Und das ist auch auf meinem Computer so. Oh, und auf meiner Kubuntu Virtualbox:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 May 16 14:10 ..
Womit ich noch nie einen Sudo-Befehl ausgeführt habe. Also ist alles gut. Nur nicht sudo
auf einer GUI-Anwendung ausführen .
Abschließender Test: Führen Sie ihn mit den -H
und den -i
Flags aus:
sudo -H firefox
und
sudo -i firefox
Und gute Nachrichten! Trotzdem ist die einzige Wurzel "Sache" ..
. Und ich kann firefox
ohne root laufen .
OP möchte, dass ich über Gedit spreche.
ich rannte
sudo gedit
Dann installierte einige zufällige Plugins. Dies war die Ausgabe:
tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
Beachten Sie, dass ich nicht einmal den Besitz von anzeigen kann, .gvfs
also habe ich Folgendes getan:
tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
dr-x------ 2 root root 0 Jun 6 10:05 .gvfs
Beim Ausführen wird sudo gedit
also eine Datei in meinem Home-Verzeichnis in root geändert.
Ich kann gedit immer noch öffnen, aber dieses Mal hole ich etwas Müll raus:
(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.
Und das deutet darauf hin, dass eine andere Datei ( ~.local/share/recently-used.xbel
) geändert wurde. Ich denke, dies ist die Liste der zuletzt verwendeten Dateien, und (zum Glück) ich habe jetzt keine Liste der zuletzt verwendeten Dateien mehr:
Dort sollte sich eine Datei namens befinden output2.txt.save2
. Meine Pronomen sind Er / Ihn