¿Alguien puede decirme qué estoy haciendo mal, qué es esto o cómo solucionarlo? Estoy ejecutando Fedora 18 y aparece el error
[[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
Respuesta aceptada:
No estás haciendo nada malo y no hay nada que arreglar. /run/user/$uid/gvfs
o ~$user/.gvfs
es el punto de montaje de la interfaz FUSE para GVFS. GVFS es una implementación de sistema de archivos virtual para Gnome, que permite que las aplicaciones de Gnome accedan a recursos como servidores FTP o Samba o al contenido de archivos zip como directorios locales. FUSE es una forma de implementar controladores de sistemas de archivos como código de usuario (en lugar de código del núcleo). La puerta de enlace GVFS-FUSE hace que los controladores del sistema de archivos GVFS sean accesibles para todas las aplicaciones, no solo para las que usan bibliotecas Gnome.
Administrar los límites de confianza con los sistemas de archivos FUSE es difícil porque el controlador del sistema de archivos se ejecuta como un usuario sin privilegios, a diferencia del código del kernel para los sistemas de archivos tradicionales. Para evitar complicaciones, de forma predeterminada, los sistemas de archivos FUSE solo son accesibles para el usuario que ejecuta el proceso del controlador. Incluso root no puede eludir esta restricción.
Si está buscando un archivo solo en sistemas de archivos locales, pase -xdev
para find
. Si desea atravesar varios sistemas de archivos locales, enumérelos todos.
find / /home -xdev -name ngirc
Si el archivo ha estado presente desde ayer, puede intentar locate ngirc
en su lugar (locate
busca a través de una base de datos de nombres de archivo que normalmente se actualiza todas las noches).
Si desea atravesar los puntos de montaje de GVFS, deberá hacerlo como el usuario adecuado.
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