Pourquoi root obtient-il une autorisation refusée lors de l'accès au répertoire FUSE?

24

J'utilise un système de fichiers FUSE sans problème en tant que mon propre utilisateur, mais root ne peut pas accéder à mes supports FUSE. Au lieu de cela, n'importe quelle commande donne Permission denied. Comment puis-je donner à root l'autorisation de lire ces montures?

~/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

Mon utilisateur, yonran , peut bien le lire:

~/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

Mais root ne peut lire aucun des répertoires 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

J'utilise Ubuntu 10.04: j'installe toujours toute mise à jour 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

Edit : suppression de l'implication que root utilisait pour pouvoir accéder aux montures. À bien y penser, mes scripts n'ont peut-être jamais essayé d'accéder au répertoire en tant que root.

yonran
la source

Réponses:

24

C'est comme ça que ça fusemarche. Si vous souhaitez autoriser l'accès à root ou à d'autres utilisateurs, vous devez ajouter:

user_allow_other

dans /etc/fuse.conf et montez votre système de fichiers de fusibles avec allow_otherou allow_rootcomme options.

smoking
la source
5
Suis-je le seul à avoir lu cela et ne sais toujours pas quoi faire? allow_other va dans / etc / fstab? Ailleurs?
Warren P
Je regarde ça aussi, en ce moment. Je pense que vous pouvez simplement ajouter "allow_root" à votre /etc/fuse.conf. Tous les fichiers FUSE seront alors accessibles par root. Pour quiconque vient de cette façon, c'est un problème pour le système de fichiers kbfs de keybase, qui s'exécute sans allow_root.
Diagon
Pour élaborer à partir de man mount.fuse: section Configurations: "Certaines options concernant la politique de montage peuvent être définies dans le fichier /etc/fuse.conf." (comme user_allow_other). Section Options générales de montage: "allow_other: cette option remplace la mesure de sécurité limitant l'accès aux fichiers à l'utilisateur qui monte le système de fichiers. Ainsi, tous les utilisateurs (y compris root) peuvent accéder aux fichiers. Cette option est par défaut uniquement autorisée à rooter, mais cette restriction peut être supprimé avec une option de configuration décrite dans la section précédente. "
gatoWololo
1
@WarenP: fondamentalement, vous voulez le faire: 1) echo "user_allow_other"> /etc/fuse.conf 2) Chaque fois que vous exécutez votre programme basé sur les fusibles, ajoutez l'option -o allow_other, de sorte que le point de montage sera accessible par les autres utilisateurs . (exemple: sshfs ./mountpoint -o allow_other) - cela fonctionne parce que tous les programmes exécutés sur FUSE héritent des options de ligne de commande de FUSE (comme allow_other)
felipeek