web-dev-qa-db-fra.com

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

Chaque fois que j'exécute une application dans un terminal en tant qu'utilisateur root (tel que Sudo gedit /etc/default/varnish), par la suite, lorsque j'ouvre un autre terminal, l'erreur "ls: ne peut pas 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 que temporairement le problème.

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 la permission dans mon dossier personnel comme

  Sudo chown -R $USER:www-data

Voulez-vous m'aider s'il vous plaît à le réparer?

EDIT: Après avoir démonté /run/user/1000/gvfs je n’obtiens pas cette erreur.

9
kenn

L'exécution d'applications graphiques avec Sudo peut parfois entraîner des problèmes de ce type.

Explication

Sudo exécute le programme avec les privilèges de super-utilisateur (comme s’il s’exécute en tant que root), mais le programme considère toujours le répertoire de base actuel comme votre répertoire de base .

Ainsi, lorsque le logiciel écrit ses fichiers de configuration, il crée des fichiers dans votre répertoire personnel appartenant à l'utilisateur root . Vous vous retrouvez avec des fichiers que vous ne pouvez ni éditer ni supprimer vous-même, et des logiciels qui fonctionnent car vous ne pourrez pas les modifier non plus, ce qui entraînerait davantage de problèmes.

Quelle est la meilleure solution?

Il existe une alternative: gksudo.

Cette variante de Sudo définira des variables d’environnement, telles que le répertoire de base, de manière à rendre l’exécution d’applications graphiques en tant que racine beaucoup plus sûre et à ne pas confondre les programmes avec la création de fichiers appartenant à la racine dans votre répertoire de base.

Pourquoi cela affecte les applications graphiques?

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

Parfois, les applications peuvent détecter si elles sont exécutées avec Sudo et ajuster leur comportement en conséquence, mais ce n'est pas le cas des applications graphiques qui ne sont généralement pas censées être exécutées avec Sudo.

Comment puis-je résoudre le problème?

Vous devez rechercher les fichiers et les répertoires appartenant à la racine dans votre répertoire de base 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. Il pourrait donc 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 de les conserver ultérieurement.

Pour rechercher des fichiers appartenant à la racine dans votre répertoire de base:

find ~ -user root

Si vous rencontrez toujours des problèmes avec certaines applications (exécutez en tant qu'utilisateur), essayez de redémarrer pour effacer /tmp et tout élément en cours d'exécution. Parfois, certaines applications peuvent avoir corrompu leurs fichiers de configuration existants et vous demander de supprimer toutes leur configuration dans votre répertoire personnel, mais j'espère que ce ne sera pas le cas pour beaucoup.

7
thomasrutter