Grafische Anwendungen speichern häufig Einstellungen und andere benutzerspezifischen Daten in Konfigurationsdateien innerhalb des Benutzers geschrieben Home - Ordner . Der Hauptmechanismus, mit dem Anwendungen bestimmen, was sie als Basisordner des Benutzers verwenden sollen, ist die HOME
Umgebungsvariable . (Sie können es selbst mit inspizieren echo $HOME
).
Angenommen, Sie verwenden gedit
(einen grafischen Texteditor) als root
. Wenn Sie ausführen sudo gedit
, HOME
wird weiterhin auf Ihr Basisverzeichnis verwiesen, obwohl das Programm als ausgeführt wirdroot
. Folglich gedit
werden Konfigurationsdateien wieroot
in Ihr Home-Verzeichnis geschrieben. Dies führt manchmal in den Konfigurationsdateien werden im Besitz vonroot
und somit unzugänglich Sie (wenn Sie das Programm später als selbst betreiben und nicht wie root
). Dies geschieht hauptsächlich, wenn die Anwendung eine neue Konfigurationsdatei erstellen muss. Neu erstellte Dateien gehören standardmäßig dem Benutzer, der sie erstellt (in diesem Fall root
nicht Ihnen).
Dies ist der Hauptgrund, warum Sie grafische Anwendungen eher mit einem grafischen sudo
Frontend als mit Straight ausführen sollten sudo
. In Ubuntu und den meisten Derivaten (einschließlich Xubuntu und Lubuntu) ist das grafische Standard-Frontend gksu
/gksudo
. In Kubuntu ist es kdesudo
. (Dies hängt von der verwendeten Desktop-Umgebung ab .)
Wenn Sie möchten , verwenden Sie sudo
direkt eine grafische Anwendung wie zu laufen gedit
, können Sie ausführen:
sudo -H gedit
Das -H
Flag wird so sudo
gesetzt HOME
, dass es auf root
den Home-Ordner (der ist /root
) verweist .
Das wird immer noch nicht automatisch den Besitz von handhaben, .Xauthority
indem es in einen temporären Ordner kopiert wird (dies ist die andere Sache, die grafische sudo
Frontends für Sie erledigen ). In dem seltenen Fall, auf den nicht .Xauthority
zugegriffen werden kann, wird jedoch eine Fehlermeldung angezeigt. Anschließend können Sie das Problem beheben, indem Sie es löschen ( sudo rm ~/.Xauthority
), da es automatisch neu generiert wird. Daher ist der Schutz .Xauthority
der Eigentumsrechte und Berechtigungen weniger wichtig als der Schutz der Eigentumsrechte und Berechtigungen von Konfigurationsdateien.
Im Gegensatz zu a- root
owned .Xauthority
ist root
das Problem nicht immer so offensichtlich , wenn Konfigurationsdateien als besessen werden (da grafische Programme häufig ausgeführt werden, aber nicht sehr gut funktionieren und nützliche Fehler auf der Konsole ausgeben). Und es ist manchmal ein größerer Aufwand, dies zu beheben, insbesondere wenn Sie möchten, dass eine oder mehrere Dateien in Ihrem Home-Verzeichnis einem anderen Eigentümer gehören (da Sie es dann nicht einfach durch rekursives chown
Durchführen aller Ihrer Dateien beheben können) zurück zu dir selbst).
Daher sollte sudo
(zumindest ohne -H
) keine grafische Anwendung ausgeführt werden, es sei denn, Sie sind mit der Funktionsweise der App bestens vertraut und wissen, dass sie niemals versucht, Konfigurationsdateien zu schreiben.