Por que o root obtém permissão negada ao acessar o diretório FUSE?

24

Eu uso um sistema de arquivos FUSE sem problemas como meu próprio usuário, mas o root não pode acessar minhas montagens FUSE. Em vez disso, qualquer comando fornece Permission denied. Como posso dar ao root a permissão para ler essas montagens?

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

Meu usuário, yonran , pode ler bem:

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

Mas o root não pode ler o diretório 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

Estou executando o Ubuntu 10.04: sempre instalo qualquer atualização da 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 : removida a implicação de que a raiz costumava acessar as montagens. Venha para pensar sobre isso, talvez meus scripts nunca tentaram acessar o diretório como root.

yonran
fonte

Respostas:

24

É assim que fusefunciona. Se você deseja permitir o acesso ao usuário root ou a outros usuários, é necessário adicionar:

user_allow_other

em /etc/fuse.conf e monte seu sistema de arquivos de fusíveis com allow_otherou allow_rootcomo opções.

smoking
fonte
5
Eu sou o único que leu isso e ainda não tem idéia do que realmente fazer? allow_other entra no / etc / fstab? Em outro lugar?
22718 Warren P
Também estou vendo isso agora. Eu acho que você pode simplesmente adicionar "allow_root" ao seu /etc/fuse.conf. Todos os FSs do FUSE estarão acessíveis pela raiz. Para quem vem por aqui, é um problema para o sistema de arquivos kbfs do keybase, que roda sem o allow_root.
Diagon
Para elaborar a partir do man mount.fuse: Seção Configurações: "Algumas opções relacionadas à política de montagem podem ser definidas no arquivo /etc/fuse.conf." (como user_allow_other). Seção General Mount Options: "allow_other: esta opção substitui a medida de segurança que restringe o acesso ao arquivo que monta o sistema de arquivos. Portanto, todos os usuários (incluindo o root) podem acessar os arquivos. Essa opção, por padrão, é permitida apenas como root, mas essa restrição pode ser removido com uma opção de configuração descrita na seção anterior ".
gatoWololo 15/01
11
@WarenP: basicamente você quer fazer isso: 1) echo "user_allow_other"> /etc/fuse.conf 2) Sempre que você executar seu programa baseado em fusíveis, adicione a opção -o allow_other, para que o ponto de montagem seja acessível por outros usuários . (exemplo: sshfs ./mountpoint -o allow_other) - isso funciona porque todos os programas em execução no FUSE herdam as opções de linha de comando do FUSE (como allow_other)
felipeek