GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué no se puede encontrar Read /run/user/1000/gvfs aunque se esté ejecutando como raíz?

¿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


Linux
  1. ¿No se puede eliminar el archivo, incluso cuando se ejecuta como raíz?

  2. Linux, ¿por qué no puedo escribir aunque tengo permisos de grupo?

  3. ¿Por qué find -exec mv {} ./target/ + no funciona?

  4. ¿Ejecutar el comando de shell en jenkins como usuario root?

  5. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

No se puede ejecutar Sonar Server debido a que Elasticsearch no se puede ejecutar como root

¿Cómo saber desde qué carpeta se está ejecutando un proceso?

¿Por qué poner otras cosas que no sean /home en una partición separada?

Cómo configurar ssh sin contraseña con claves RSA

¿Por qué se requieren < o > para usar /dev/tcp?

¿Debo editar /etc/crontab o ejecutar crontab -e como root?