GNU/Linux >> Tutoriels Linux >  >> Linux

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


Linux
  1. Linux, pourquoi ne puis-je pas écrire même si j'ai des permissions de groupe ?

  2. Pourquoi find -exec mv {} ./target/ + ne fonctionne-t-il pas ?

  3. gcc - /usr/bin/ld erreur :impossible de trouver <library> dans /usr/local/lib bien que ldconfig le liste et le chemin ajouté à ld.so.conf

  4. Comment savoir à partir de quel dossier un processus est en cours d'exécution ?

  5. Pourquoi le contenu de /dev/shm/ est-il supprimé automatiquement

unix:///var/run/supervisor.sock aucun fichier de ce type

Utiliser find en toute sécurité avec sudo

Comment configurer ssh sans mot de passe avec des clés RSA

C'est quoi ce dossier /run/user/1000 ?

Pourquoi < ou > sont-ils nécessaires pour utiliser /dev/tcp

Dois-je modifier /etc/crontab ou exécuter crontab -e en tant que root ?