¿Por qué la raíz obtiene permiso denegado al acceder al directorio FUSE?

24

Utilizo un sistema de archivos FUSE sin problemas como mi propio usuario, pero el root no puede acceder a mis montajes FUSE. En cambio, cualquier comando da Permission denied. ¿Cómo puedo darle permiso a root para leer estos montajes?

~/top$ sudo ls -l
total 12
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 bar
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ fuse-zip foo.zip foo
~/top$ unionfs-fuse ~/Pictures bar

Mi usuario, yonran , puede leerlo bien:

~/top$ ls -l
total 8
drwxr-xr-x 1 yonran yonran 4096 2011-07-25 18:12 bar
drwxr-xr-x 2 yonran yonran    0 2011-07-25 18:51 foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ ls bar/
Photos

Pero root no puede leer ninguno de los directorios FUSE:

~/top$ sudo ls -l
ls: cannot access foo: Permission denied
ls: cannot access bar: Permission denied
total 4
d????????? ? ?      ?         ?                ? bar
d????????? ? ?      ?         ?                ? foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ sudo ls bar/
ls: cannot access bar/: Permission denied

Estoy ejecutando Ubuntu 10.04: siempre instalo cualquier actualización de Canonical.

$ uname -a
Linux mochi 2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:    10.04
Codename:   lucid

Editar : eliminó la implicación de que la raíz solía poder acceder a los montajes. Ahora que lo pienso, tal vez mis scripts nunca intentaron acceder al directorio como root.

yonran
fuente

Respuestas:

24

Así fusefunciona. Si desea permitir el acceso a usuarios root u otros usuarios, debe agregar:

user_allow_other

en /etc/fuse.conf y monte su sistema de archivos fusible con allow_othero allow_rootcomo opciones.

esmoquin
fuente
55
¿Soy el único que lee eso y todavía NO tengo idea de qué hacer realmente? ¿allow_other entra en / etc / fstab? ¿En algún otro lugar?
Warren P
Estoy mirando esto también, ahora mismo. Creo que puede agregar "allow_root" a su /etc/fuse.conf. Entonces todos los FUSE fs serán accesibles por root. Para cualquiera que venga por aquí, es un problema para el sistema de archivos kbfs de keybase, que se ejecuta sin allow_root.
Diagon
Para elaborar a partir de man mount.fuse: sección Configuraciones: "Algunas opciones con respecto a la política de montaje se pueden configurar en el archivo /etc/fuse.conf". (como user_allow_other). Sección de opciones generales de montaje: "allow_other: esta opción anula la medida de seguridad que restringe el acceso a los archivos para el usuario que monta el sistema de archivos. Por lo tanto, todos los usuarios (incluida la raíz) pueden acceder a los archivos. Esta opción solo está permitida de forma predeterminada para rootear, pero esta restricción puede se eliminará con una opción de configuración descrita en la sección anterior ".
gatoWololo
1
@WarenP: básicamente desea hacer esto: 1) echo "user_allow_other"> /etc/fuse.conf 2) Siempre que ejecute su programa basado en fusibles, agregue la opción -o allow_other, para que otros usuarios puedan acceder al punto de montaje . (ejemplo: sshfs ./mountpoint -o allow_other) - esto funciona porque todos los programas que se ejecutan sobre FUSE heredan las opciones de línea de comando de FUSE (como allow_other)
felipeek