ls: kann nicht auf .gvfs zugreifen: Berechtigung verweigert

11

Immer wenn ich eine Anwendung im Terminal als root ausführe (z. B. sudo gedit /etc/default/varnish), wird beim Öffnen eines anderen Terminals in der obersten Zeile des Terminals der Fehler "ls: Zugriff auf .gvfs: Berechtigung verweigert" angezeigt.

Ich habe im Internet eine Lösung gefunden

  umount /path/to/.gvfs
  rm -rf .gvfs

Das Problem wird jedoch nur vorübergehend behoben.

Es scheint, dass ich zwei gemountete Instanzen von gvfs in meinem System habe

  $ sudo mount |grep gvfs
    gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=33)
    gvfsd-fuse on /home/****/.gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

Ich weiß nicht, ob es damit zusammenhängt, vor ein paar Monaten musste ich die Berechtigung in meinem Home-Ordner wie ändern

  sudo chown -R $USER:www-data

Würden Sie mir bitte helfen, das Problem zu beheben?

EDIT: Nach dem Abmelden /run/user/1000/gvfserhalte ich diesen Fehler nicht.

kenn
quelle
1
Und das ist einer der Gründe, warum Sie nicht sudomit grafischen Programmen arbeiten sollten.
Muru
1
Mögliches Duplikat von Warum sollte
Muru
@muru Vielen Dank für den Link, er erklärt gut, warum ich sudo nicht ausführen sollte, um grafische Anwendungen zu öffnen. Aber ich frage mich immer noch, warum ich diese Fehlermeldung bekam
kenn
Zitieren der Top-Antwort in der verknüpften Frage: "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)."
Muru
1
Ich vermute, dass diese besondere Situation möglicherweise nicht mit dem Ausführen von Grafikprogrammen mit Straight Sudo zusammenhängt . Berechtigungen / Zugriff auf den .gvfsOrdner haben immer interessant und (für einige von uns) zu überraschen .
Eliah Kagan

Antworten:

9

Das Ausführen von grafischen Anwendungen mit sudokann manchmal zu solchen Problemen führen.

Erläuterung

sudoführt das Programm mit Superuser-Berechtigungen aus (z. B. als Root), aber das Programm sieht das aktuelle Home-Verzeichnis weiterhin als Ihr Home-Verzeichnis.

Wenn die Software ihre Konfigurationsdateien schreibt, werden am Ende Dateien in Ihrem Home-Verzeichnis erstellt, die dem Root- Benutzer gehören. Sie erhalten Dateien, die Sie selbst nicht bearbeiten oder löschen können, und Software, die ausgeführt wird, da Sie sie auch nicht ändern können, was zu weiteren Problemen führt.

Was ist die beste Lösung?

Es gibt eine Alternative : gksudo.

Diese Variante von sudo richtet Umgebungsvariablen wie das Home-Verzeichnis so ein, dass das Ausführen grafischer Anwendungen als Root viel sicherer wird und Programme nicht mit dem Erstellen von Root-Dateien in Ihrem Home-Verzeichnis verwechselt werden.

Warum wirkt sich dies auf grafische Anwendungen aus?

Dies betrifft nicht nur grafische Anwendungen, sondern auch alle grafischen Anwendungen. Dies betrifft Anwendungen, die die Konfiguration im Home-Verzeichnis des aktuellen Benutzers speichern. Dies ist nur häufiger bei grafischen Anwendungen der Fall.

Manchmal können Anwendungen erkennen, ob sie mit sudo ausgeführt werden, und ihr Verhalten entsprechend anpassen. Dies ist jedoch bei grafischen Anwendungen nicht üblich, von denen normalerweise nicht erwartet wird, dass sie mit sudo ausgeführt werden.

Wie behebe ich das Problem?

Sie müssen Root-Dateien und -Verzeichnisse in Ihrem Home-Verzeichnis finden und entfernen. Es ist meiner Meinung nach besser, sie zu entfernen, als ihren Besitz zu ändern, da sie nicht für Ihren Benutzer, sondern für den Root-Benutzer bestimmt waren. Wenn Sie also einfach den Besitzer wechseln, kann dies zu unerwarteten Auswirkungen führen. Sie können sie natürlich sichern, falls Sie später entscheiden, dass Sie etwas in ihnen haben möchten.

So finden Sie Root-Dateien in Ihrem Home-Verzeichnis:

find ~ -user root

Wenn Sie immer noch Probleme mit einigen Anwendungen haben (als Benutzer ausgeführt), versuchen Sie einen Neustart, um das Problem zu beheben, /tmpund alles , was noch ausgeführt wird. Gelegentlich haben einige Anwendungen möglicherweise ihre vorhandenen Konfigurationsdateien beschädigt und Sie müssen die gesamte Konfiguration in Ihrem Home-Verzeichnis entfernen. Hoffentlich ist dies jedoch bei vielen nicht der Fall.

thomasrutter
quelle
Danke für die Erklärung. Wie kann ich es reparieren? Oder hat jeder das gleiche Problem wie ich?
Kenn
3
Durch Verwendung gksudoanstelle von sudobeim Ausführen von Grafikprogrammen.
Thomasrutter
In meinem System ist also nichts falsch.
Kenn
2
Ja, abgesehen von der Möglichkeit, dass Sie jetzt Root-Dateien in Ihrem Home-Verzeichnis haben, die nicht Root-Dateien sein sollten.
Thomasrutter
2

Geben Sie dem Benutzer einfach die Berechtigungen für .gvfs/und es sollte behoben werden.

sudo chown -R $USER.$USER ~/.gvfs/
Rajeev Sharma
quelle