Welche spezifischen schlechten Dinge passieren, wenn gedit mit sudo verwendet wird?

10

Ich habe diese Antwort gelesen und erklärt, dass "manchmal" root etwas im /home/$USERVerzeichnis besitzen kann.

Kann jemand ein Beispiel geben, wie man es beweist. Geben Sie einfach einen Testfall, wenn etwas wirklich Schlimmes passiert, wenn ich renne

sudo gedit /etc/rc.local

Datei bearbeiten und speichern.

Ich habe viele Downvotes bekommen, die versucht haben, OP zu helfen , und Kommentare, die überflutet wurden, dass es ein Verbrechen ist, mit sudo gedit zu betreiben.

Kann jemand ein echtes Beispiel geben?

Ich habe klar erklärt, warum diese Frage kein Duplikat ist. Es gibt keine spezifische Antwort für gedit auf die verknüpfte Frage.

Und es ist wichtig zu erklären, warum weit verbreitet sudo geditschlecht ist oder nicht wirklich usw.

Pilot6
quelle
2
Ich habe es immer mit Sudo benutzt, habe nie ein Problem bekommen. Gute Frage.
Dario Salvati
1
@Wilf, nano schreibt gerne ~ / .nano_history. Wenn Sie es mit sudo ausführen, gehört die Datei root. Wenn Sie also nano ohne sudo ausführen, wird beanstandet, dass es nicht auf die Datei zugreifen kann. Ein einfaches sudo chownbehebt es.
Psusi
1
Was rc.local betrifft, ist dies ein Skript auf Run-Ebene. Es sollte Root gehören, daher hat sudo keine Auswirkungen darauf. Versuchen Sie es mit ~ / .bashrc. Ich glaube nicht, dass Shell diese Datei akzeptiert, wenn sie Root gehört und auf die Standardeinstellungen zurückgesetzt werden sollte. Aber das ist nur ein Vorschlag. Ich werde morgen zurück sein, sehen, wie diese Frage funktioniert
Sergiy Kolodyazhnyy
1
Für die meisten Redakteure ist es nicht die Eröffnung, sondern das Drücken von SAVE. Die meisten Editros speichern die Einstellungen auch irgendwo. Wenn Sie also die Einstellungen ändern, werden sie aktualisiert.
Wilf
2
Für das, was es wert ist, bearbeite ich es einfach an Ort und Stelle, um es zu verwenden, -Hwenn ich es sehe.
Muru

Antworten:

11

Soweit sudo geditnichts Schlimmes, nur schlechte Praxis, besonders in letzter Zeit. Wie viel schwieriger wäre es vorzuschlagen sudo -H gedit?

-H,--set-home Fordern Sie die Sicherheitsrichtlinie auf, die Umgebungsvariable HOME auf das Ausgangsverzeichnis festzulegen, das durch den Kennwortdatenbankeintrag des Zielbenutzers angegeben wird. Abhängig von der Richtlinie kann dies das Standardverhalten sein.

Was ist passiert?

Sie erhalten einige Root-Dateien in Ihrem Home-Ordner. One ( recently-used.xbel) kehrt wahrscheinlich in den Besitz des Benutzers zurück. Dies kann passieren, wenn eine Datei gelöscht und neu erstellt wird. Um zu sehen, was sudo geditsich geändert hat, führen Sie aus find ~ -user root -group rootund sehen Sie, was zurückgegeben wird. Standardmäßig sollte dies nichts sein.

Mit diesem Befehl sehen Sie möglicherweise einige Dateien, die root gehören. Man wäre ein neuer .file, .gvfsund früher oder später ein wurzel Besitz ~/.cache/dconfund die zuvor erwähnte recently-used.xbel.

Also kein "der Himmel versagt" Zeug, aber immer noch. Nun gab es Berichte, dass die fortgesetzte Verwendung andere Probleme verursacht, aber nicht behaupten wird, was ich hier nicht sehe.

Beachten Sie auch, dass ab 13.10 a sudo geditdie gedit-Konfiguration des Benutzers anstelle der gedit-Konfiguration des Roots verwendet wird. Wieder nur schlechte Praxis, warum also weiter machen oder anderen vorschlagen, dies zu tun?

Doug
quelle
1
Manchmal nutze ich jetzt auch die Gelegenheit, um Benutzern zu zeigen, wie man Nano benutzt, da es einfach ist und meistens gedit ersetzen kann. Es gibt jedoch einige Fälle, in denen Gedit immer noch besser ist als Nano, selbst für diejenigen, die wissen, wie man es benutzt. Auch sudo gedit kann zu sudo nautilus führen, was wahrscheinlich schlimmer ist. (Hier habe ich ein pkexec-fähiges gedit, aber das geht über den Rahmen dieser Diskussion hinaus
Doug
@wjandrea, hört sich gut an, bearbeitet
Doug
12

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 sudoeine 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

...

[email protected]: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 .ICEauthoritygut! 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 ( .., .dbusund .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:

Geben Sie hier die Bildbeschreibung ein

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 sudoauf einer GUI-Anwendung ausführen .

Abschließender Test: Führen Sie ihn mit den -Hund den -iFlags aus:

sudo -H firefox

und

sudo -i firefox

Und gute Nachrichten! Trotzdem ist die einzige Wurzel "Sache" ... Und ich kann firefoxohne 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, .gvfsalso 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 geditalso 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

Tim
quelle
1
Sie haben alles außer der Antwort auf die Frage geschrieben. Geben Sie einfach einen Testfall mit gedit. Soll ich als "keine Antwort" kennzeichnen? Oder "sehr schlechte Qualität" obwohl lang?)))
Pilot6
5
@ Pilot6 - in der Frage Can anyone give an example how to prove it ..... Can anyone give a real example?- und dieser Link zu früheren Dingen und ein Beispiel dafür, was mit Firefox als Root passieren kann - Soll ich Ihren Kommentar als "nicht konstruktiv" markieren, da ich "seltsam mürrisch" nicht finden kann? sei nett cmon :)
Wilf
1
Oh bitte nicht verwenden, ls -la|grep rootaber entweder find . -uid 0oderfind . -user root
solsTiCe
1
@ Pilot6 okay, ich habe einige Dinge über gedit bearbeitet. Ich glaube nicht, dass es meiner Antwort etwas hinzufügt, aber Sie scheinen es so zu wollen ...
Tim
4
Sowohl die Zitate als auch die detaillierten Beispiele machen dies sehr nützlich! Ich bin froh, dass Sie Gedit hinzugefügt haben, aber ich stimme @Wilf zu, dass es schon vorher gut war. Es ist nicht nur Gedit Beispiele , dass ich (absichtlich) nicht enthalten es . Wenn die Leute wollen, kann ich dort eine kurze Notiz über das "Manchmal" hinzufügen, aber ich denke wirklich, dass diese Frage getrennt ist und ich für die Wiedereröffnung gestimmt habe . Wenn wir dies erneut öffnen, werde ich versuchen, eine weitere Antwort mit weiteren Details zu Gedit hinzuzufügen, aber dies wird für die meisten Menschen immer noch die nützlichste Antwort sein.
Eliah Kagan