ls: impossible d'accéder à .gvfs: autorisation refusée

11

Chaque fois que j'exécute une application dans le terminal en tant que root (comme sudo gedit /etc/default/varnish), par la suite, lorsque j'ouvre un autre terminal, j'obtiens l'erreur "ls: impossible d'accéder à .gvfs: autorisation refusée" sur la ligne supérieure du terminal.

J'ai trouvé une solution sur le net

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

mais cela ne résout le problème que temporairement.

Il semble que j'ai deux instances montées de gvfs dans mon système

  $ 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)

Je ne sais pas si c'est lié à, il y a quelques mois, j'ai dû changer l'autorisation dans mon dossier d'accueil comme

  sudo chown -R $USER:www-data

Pourriez-vous m'aider à le réparer?

EDIT: Après avoir démonté, /run/user/1000/gvfsje ne reçois pas cette erreur.

kenn
la source
1
Et c'est l'une des raisons pour lesquelles vous ne devriez pas exécuter sudode programmes graphiques.
muru
@muru Merci pour le lien, il explique bien pourquoi je ne devrais pas lancer sudo pour ouvrir des applications graphiques. Mais je me demande toujours pourquoi j'ai commencé à recevoir ce message d'erreur
kenn
Citant la première réponse à la question liée: "Cela entraînera parfois que les fichiers de configuration appartiennent à root et sont donc inaccessibles pour vous (lorsque vous exécuterez plus tard le programme en tant que vous-même et non en tant que root)."
muru
1
Je soupçonne que cette situation particulière n'est en fait pas liée à l' exécution de programmes graphiques avec sudo direct . Les autorisations / accès sur les .gvfsdossiers des utilisateurs ont toujours été intéressants et (pour certains d'entre nous) surprenants .
Eliah Kagan

Réponses:

9

L'exécution d'applications graphiques avec sudopeut parfois entraîner des problèmes comme celui-ci.

Explication

sudoexécute le programme avec des privilèges de superutilisateur (comme exécuter en tant que root), mais le programme voit toujours le répertoire personnel actuel comme votre répertoire personnel.

Ainsi, lorsque le logiciel écrit ses fichiers de configuration, il finira par créer des fichiers dans votre répertoire personnel qui appartiennent à l' utilisateur root . Vous vous retrouvez avec des fichiers que vous ne pouvez pas modifier ou supprimer vous-même, et un logiciel qui s'exécute car vous ne pourrez pas non plus le modifier, ce qui entraînera plus de problèmes.

Quelle est la meilleure solution?

Il existe une alternative: gksudo.

Cette variante de sudo configurera les variables d'environnement, telles que le répertoire personnel, de telle manière que l'exécution des applications graphiques en tant que root sera beaucoup plus sûre et ne confondra pas les programmes en créant des fichiers appartenant à la racine dans votre répertoire personnel.

Pourquoi cela affecte-t-il les applications graphiques?

Cela n'affecte pas seulement les applications graphiques, ni toutes les applications graphiques. Il affecte les applications qui stockent la configuration dans le répertoire de base de l'utilisateur actuel. Ceci est juste plus courant parmi les applications graphiques.

Parfois, les applications seront en mesure de détecter si elles sont exécutées avec sudo et d'ajuster leur comportement en conséquence, mais cela n'est pas courant avec les applications graphiques qui ne sont généralement pas censées être exécutées avec sudo.

Comment résoudre le problème?

Vous devrez trouver les fichiers et répertoires appartenant à root dans votre répertoire personnel et les supprimer. Il vaut mieux les supprimer que de changer leur propriétaire à mon avis, car ils n'étaient pas destinés à votre utilisateur, mais à l'utilisateur root, donc il peut y avoir des effets inattendus si vous changez simplement de propriétaire. Vous pouvez bien sûr les sauvegarder au cas où vous décideriez qu'il y a quelque chose que vous voulez plus tard.

Pour rechercher des fichiers appartenant à root dans votre répertoire personnel:

find ~ -user root

Si vous rencontrez toujours des problèmes avec certaines applications (exécutées en tant qu'utilisateur), essayez de redémarrer pour effacer /tmpet tout ce qui fonctionne encore. Parfois, certaines applications peuvent avoir corrompu leurs fichiers de configuration existants et vous obliger à supprimer toute leur configuration dans votre répertoire personnel, mais j'espère que ce ne sera pas le cas pour beaucoup.

thomasrutter
la source
Merci pour votre explication. Comment puis-je le réparer? Ou tout le monde a le même problème que moi?
kenn
3
En utilisant gksudoau lieu de sudolors de l'exécution de programmes graphiques.
thomasrutter
Il n'y a donc rien de mal dans mon système.
kenn
2
Oui, à part la possibilité que vous ayez maintenant des fichiers appartenant à root dans votre répertoire personnel qui ne devraient pas appartenir à root.
thomasrutter
2

Donnez simplement des autorisations à l'utilisateur .gvfs/et il devrait le corriger.

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