web-dev-qa-db-fra.com

Pourquoi ne trouve-t-on pas read / run / user / 1000 / gvfs même s'il s'exécute en tant que root?

Quelqu'un peut-il me dire ce que je fais mal, ce que c'est ou comment y remédier? J'utilise Fedora 18 et j'obtiens l'erreur affichée

[root@servername /]# find . -name ngirc
find: `./run/user/1000/gvfs': Permission denied
[root@servername /]# 
[root@thinktank /]# pwd
/
[root@thinktank /]# ls -ltr ./run/user/1000
ls: cannot access ./run/user/1000/gvfs: Permission denied
total 0
d?????????? ? ?    ?      ?            ? gvfs
lrwxrwxrwx. 1 root root  17 May 28 12:30 X11-display -> /tmp/.X11-unix/X0
drwx------. 2 kal  kal  120 May 28 12:30 keyring-QjDw4b
drwx------. 2 kal  kal   40 May 28 12:30 gvfs-burn
drwx------. 2 kal  kal   60 May 28 12:30 krb5cc_5f0bcaf94f916d6b61696e2251a4dbb3
drwx------. 2 kal  kal   60 May 28 18:25 dconf
36
kal

Vous ne faites rien de mal et il n'y a rien à réparer. /run/user/$uid/gvfs ou ~$user/.gvfs est le point de montage de l'interface Fuse pour GVFS . GVFS est une implémentation de système de fichiers virtuel pour Gnome, qui permet aux applications Gnome d'accéder à des ressources telles que des serveurs FTP ou Samba ou au contenu de fichiers Zip comme des répertoires locaux. Fuse est un moyen d'implémenter les pilotes de système de fichiers en tant que code utilisateur (au lieu du code noyau). La passerelle GVFS-Fuse rend les pilotes de système de fichiers GVFS accessibles à toutes les applications, pas seulement à celles utilisant les bibliothèques Gnome.

La gestion des limites de confiance avec les systèmes de fichiers Fuse est difficile, car le pilote du système de fichiers s'exécute en tant qu'utilisateur non privilégié, par opposition au code du noyau pour les systèmes de fichiers traditionnels. Pour éviter les complications, par défaut, les systèmes de fichiers Fuse ne sont accessibles qu'à l'utilisateur exécutant le processus du pilote. Même root ne peut pas contourner cette restriction.

Si vous recherchez un fichier uniquement sur des systèmes de fichiers locaux, passez -xdev à find. Si vous souhaitez parcourir plusieurs systèmes de fichiers locaux, énumérez-les tous.

find  / /home -xdev -name ngirc

Si le fichier est présent depuis hier, vous pouvez essayer locate ngirc à la place (locate recherche dans une base de données de noms de fichiers qui est généralement mise à jour tous les soirs).

Si vous souhaitez traverser les points de montage GVFS, vous devrez le faire en tant qu'utilisateur approprié.

find / -name ngirc -path '/run/user/*/gvfs' -Prune -o -path '/home/*/.gvfs' -Prune -o -name ngirc -print
for d in /run/user/*; do su "${d##*/}" -c "find $d -name ngirc -print"; done

C'est un problème de fusible . Aucun utilisateur, sauf le propriétaire, ne peut lire. Pour contourner la configuration par défaut, essayez d'activer l'option user_allow_other. Cette option est spécifiée en l'ajoutant à /etc/Fuse.conf. Il n'a aucune valeur, spécifiez simplement l'option sur une ligne vierge.

10
Christopher

il s'agit d'un ancien fil de discussion, mais dans les rapports de bogues de gnome, il s'agit d'un récent problème ouvert, il peut donc être utile à quiconque recherche pendant des heures une solution pour résoudre les problèmes de fusion de gvfs - qui semblent tous étroitement liés.

Message d'erreur de fusion:

Error copying '/media/root/5FDA03906F33F217/SAVE/rsyncTEST-usb/allusers' to '/run/user/0/gvfs/ftp:Host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'

[Errno 95] Operation not supported: '/run/user/0/gvfs/ftp:Host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'.

J'ai rencontré le problème gvfs-fuser en essayant d'utiliser meld/diff/kdiff sur ftp. Il semble que le problème se situe entre l'unité de fusion et les fichiers gvfs. Le problème ne semble pas se produire dans 3.15.1 mais commence à être signalé dans 3.15.2. (La nouvelle solution python ver?) Est une solution de contournement pas un correctif - les fichiers/répertoires vont copier mais une erreur est toujours affiché.

réponse de Christopher définit le problème et fournit la solution.

Une autre solution possible consiste à utiliser sshfs (voir ce commentaire et ce fil ). Pour plus d'informations sur gvfs-commands, voir Quelle est la différence entre les commandes gvfs et les commandes courantes comme cat, ls, cp?

Les bogues éventuellement liés incluent GNOME # 317875 et GNOME # 768281 .

3
doubt

Si vous obtenez l'autorisation et d'autres détails pour gvfs comme suit

d?????????? ? ?    ?      ?            ? gvfs

puis démontez simplement vos gvfs à l'aide de la commande suivante. Votre problème sera résolu après avoir suivi ce processus.

umount ~/gvfs(umount /run/user/112/gvfs in my case).

GVFS (GNOME Virtual File System) est le système de fichiers virtuel pour le bureau GNOME, qui permet aux utilisateurs d'accéder facilement aux données distantes via SFTP, FTP, WebDAV, SMB et aux données locales via l'intégration udev afin que vous n'ayez pas à avoir peur lors du démontage de ce .

3
Mohd Meesam