Directorio que un usuario puede leer, pero la raíz no puede?

9

Hay un directorio debajo de mi homedir llamado ".gvfs". Como mi cuenta de usuario habitual, puedo leerlo bien:

~ $ ls -lart ~raldi/.gvfs
total 4
dr-x------  2 raldi raldi    0 2009-05-25 22:17 .
drwxr-xr-x 60 raldi raldi 4096 2009-05-25 23:08 ..
~ $ ls -d ~raldi/.gvfs
dr-x------ 2 raldi raldi 0 2009-05-25 22:17 /home/raldi/.gvfs

Sin embargo, como root no puedo "ls" o incluso "ls -d":

# ls ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied
# ls -d ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied

Y, solo para asegurarse:

# echo $UID $EUID
0 0

Esta es solo una simple instalación en el hogar de Ubuntu 8.10, sin NFS ni nada raro como eso. Veo que el directorio está marcado como no legible por el mundo (y no compatible con x del mundo), pero pensé que nada de eso se aplica cuando eres root. Por ejemplo, puedo hacer un directorio mode-000 en / tmp y regalarlo a un usuario no root, y root no tiene problemas para leerlo, escribirlo, lo que sea.

¿Tienes idea de lo que está pasando?

raldi
fuente
Curiosamente, obtienes los mismos síntomas cuando usas sshfs como usuario normal y luego intentas cualquier tipo de operación en el punto de montaje como root. El usuario root no tiene permisos para ver el punto de montaje. Ni siquiera puede ver los permisos, ls -l devuelve todos los signos de interrogación para todos los bits de permiso.
GodEater
1
"Esta es solo una simple instalación doméstica de Ubuntu 8.10, sin NFS ni nada raro". Uhm, el fusible es "algo raro como eso"
Thomas

Respuestas:

21

De: http://bugzilla.gnome.org/show_bug.cgi?id=534284

Todo esto es desafortunado, pero es una decisión que han tomado las personas fusibles en el nivel del núcleo (el usuario que no sea el que montó el fs no puede acceder a él, incluida la raíz) y no hay nada que podamos hacer al respecto.

Ver también: https://bugs.launchpad.net/gvfs/+bug/225361

La solución parece ser actualizar su /etc/fuse.conf y habilitar la opción user_allow_other . Es posible que también necesite obtener gvfs para pasar allow_root o allow_other, pero no estoy seguro de cómo hacerlo.

Por supuesto, puede ser mucho más fácil simplemente renunciar a todas las herramientas de la GUI como gvfs y montar sus sistemas de archivos desde la línea de comandos donde tiene el control completo de cómo se monta algo.

Zoredache
fuente
5

El .gvfsdirectorio es el sistema de archivos de espacio de usuario de Gnome VFS que proporciona una ruta de sistema de archivos directa para sistemas de archivos virtuales (por ejemplo, montajes remotos de samba, montajes de webdav) para que Gnome pueda pasar rutas a programas que no son conscientes de VFS cuando operan en archivos remotos.

Como se trata de una aplicación y montaje FUSE, puede denegar los permisos de root: el agente que realiza las comprobaciones de acceso en este caso es la aplicación FUSE, no el núcleo.

Por defecto, el gvfsdemonio solo permite al propietario recorrer el directorio.

MikeyB
fuente
0

Podrían ser algunas cosas, en orden de probabilidad

  • compruebe / var / log / messages (o / var / log / syslog) para detectar posibles daños en el sistema de archivos
  • ¿Estás usando SELinux?
  • Google sugiere que lsattr ~ raldi / .gvfs puede indicar capacidades especiales que se están aplicando a ese archivo.
Dave Cheney
fuente
Ejecuté fsck en el disco y no encontré ningún problema. No estoy usando SELinux. Si ejecuto lsattr como mi cuenta de usuario, no hay salida. Si lo ejecuto como root, aparece un error de "permiso denegado".
raldi
Parece que Zoredache tiene la respuesta
Dave Cheney,