Por que o SSHFS não permite que eu procure em um diretório montado?

34

Eu uso o SSHFS para montar um diretório em um servidor remoto. Há um usuário xxx no cliente e no servidor. UID e GID são idênticos nas duas caixas.

eu uso

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 o diretório no servidor remoto. Quando efetuo login como xxx no cliente, não tenho problemas. Posso entrar em cd / home / xxx / path_to / content.

Mas quando eu logo no cliente como outro usuário zzz e então

$ ls -l /home/xxx/path_to

Eu entendi isso

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

e em

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

eu recebo

ls: cannot access content: Permission denied

Quando eu faço

$ ls -l /mnt

no servidor remoto eu recebo

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

O que estou fazendo errado? As permissões parecem estar corretas para mim. Estou errado?

Jan Deinhard
fonte
Faça login como usuário xxx e nos dê a saída de ls -ld /home/xxx/path_to/content?
26611 quanta

Respostas:

42

Eu mesmo encontrei a resposta. O problema foi que eu não usei a opção 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 opção, você deve definir a opção user_allow_other em /etc/fuse.conf. Quando fiz isso, tive outro problema. O arquivo /etc/fuse.conf não teve permissões de leitura para outros usuários na minha caixa do Ubuntu. Então, eu mudei isso também e agora posso acessar o diretório com qualquer usuário.

Jan Deinhard
fonte
5
O arquivo /etc/fuse.conf não deve ter opções de leitura para todos. A intenção é que você se adicione ao grupo de fusíveis para poder lê-lo através dos direitos do grupo.
Jherico
11
Confirmando que a necessidade de ativar user_allow_other em etc / fuse.conf no cliente foi necessária para que meu usuário acesse pastas fora do meu diretório pessoal no servidor ao acessar o servidor a partir de um UID e GID idênticos. Estar no grupo fusível no cliente foi suficiente para eu ler /etc/fuse.conf no Ubuntu, como eu encontrei o arquivo foi criado de raiz rw_r______: fusível
11
Se você pretende usar a opção allow_other mount, como a resposta acima sugere, lembre-se de que o kernel do Linux possui um bug de segurança não resolvido que afeta o FUSE. Veja github.com/libfuse/libfuse/issues/15
MountainX