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 l'erreur s'affiche
[[email protected] /]# find . -name ngirc
find: `./run/user/1000/gvfs': Permission denied
[[email protected] /]#
[[email protected] /]# pwd
/
[[email protected] /]# 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
Réponse acceptée :
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 vers 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 du noyau). La passerelle GVFS-FUSE rend les pilotes de système de fichiers GVFS accessibles à toutes les applications, pas seulement à celles qui utilisent 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 sur des systèmes de fichiers locaux uniquement, passez -xdev
pour 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 chaque nuit).
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