¿Por qué SSHFS no me permite buscar en un directorio montado?

34

Yo uso SSHFS para montar un directorio en un servidor remoto. Hay un usuario xxx en el cliente y el servidor. UID y GID son idénticos en ambos cuadros.

yo suelo

sshfs -o kernel_cache -o auto_cache -o reconnect -o compression=no \ 
      -o cache_timeout=600 -o ServerAliveInterval=15 \
      [email protected]:/mnt/content /home/xxx/path_to/content

para montar el directorio en el servidor remoto. Cuando inicio sesión como xxx en el cliente, no tengo problemas. Puedo cd en / home / xxx / path_to / content.

Pero cuando inicio sesión en el cliente como otro usuario zzz y luego

$ ls -l /home/xxx/path_to

entiendo esto

d?????????   ? ?    ?        ?                ? content

y en

$ ls -l /home/xxx/path_to/content

yo obtengo

ls: cannot access content: Permission denied

Cuando lo hago

$ ls -l /mnt

en el servidor remoto me sale

drwxr-xr-x 6 xxx xxx  4096 2011-07-25 12:51 content

¿Qué estoy haciendo mal? Los permisos me parecen correctos. ¿Me equivoco?

Jan Deinhard
fuente
Inicie sesión como usuario xxx y dénos la salida de ls -ld /home/xxx/path_to/content?
quanta

Respuestas:

42

He encontrado la respuesta yo mismo. El problema fue que no utilicé la opción allow_other.

sshfs -o allow_other -o kernel_cache -o auto_cache -o reconnect \
  -o compression=no -o cache_timeout=600 -o ServerAliveInterval=15 \
  [email protected]:/mnt/content /home/xxx/path_to/content

Para usar esta opción, debe establecer la opción user_allow_other en /etc/fuse.conf. Cuando hice esto tuve otro problema. El archivo /etc/fuse.conf no ha tenido permisos de lectura para otros usuarios en mi cuadro de Ubuntu. Así que también he cambiado eso y ahora puedo acceder al directorio con cualquier usuario.

Jan Deinhard
fuente
55
Se supone que el archivo /etc/fuse.conf no tiene opciones de lectura para todos. La intención es que se agregue al grupo de fusibles para que pueda leerlo a través de los derechos del grupo.
Jherico
1
Confirmar que la necesidad de habilitar user_allow_other en etc / fuse.conf en el cliente era necesaria para que mi usuario tuviera acceso a carpetas fuera de mi directorio de inicio en el servidor al acceder al servidor desde un UID y GID idénticos. Estar en el grupo de fusibles en el cliente fue suficiente para leer /etc/fuse.conf en Ubuntu, ya que descubrí que el archivo estaba configurado rw_r______ root: fuse
1
Si tiene la intención de utilizar la opción de montaje allow_other como sugiere la respuesta anterior, tenga en cuenta que el kernel de Linux tiene un error de seguridad no resuelto que afecta a FUSE. Ver github.com/libfuse/libfuse/issues/15
MountainX