Como posso desmontar uma montagem s3fs como um usuário normal?

2

Eu uso o S3 por tonelada. Eu tenho mais de 40 baldes flutuando entre os clientes. Eu gosto do fato de que eu posso listá-los em / etc / fstab e que eles simplesmente funcionam. Para referência, aqui está um dos baldes.

  

coteyrnet / mnt / S3 / coteyrnet fuse.s3fs _netdev, use_cache = / tmp, use_rrs = 1, allow_outros, noauto, usuários 0 0

Ele monta bem, mas eu estou tendo uma hora de desmontá-lo.

O primeiro problema é:

umount: /mnt/S3/coteyrnet mount disagrees with the fstab

A parte relevante do mtab é:

s3fs /mnt/S3/coteyrnet fuse.s3fs rw,noexec,nosuid,nodev,allow_other,user=coteyr 0 0

Ao executar o mount sem argumentos, ele relata a montagem como:

s3fs on /mnt/S3/coteyrnet type fuse.s3fs (rw,noexec,nosuid,nodev,allow_other,user=coteyr)

Além disso, se eu sudo umount /mnt/S3/coteyrnet sempre obtenho

umount: /mnt/S3/coteyrnet: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))

lsof | grep coteyrnet nunca retorna nada de valor, nem fuser.

Meu objetivo é fazer o usuário desmontar o trabalho.

A incapacidade de montar via sudo foi resolvida. Usando a configuração "use_cache", os arquivos estavam realmente abertos, mas não sob o ponto de montagem. Esta é uma ressalva para essa opção. Os arquivos do ponto de montagem estão fechados, mas os arquivos ainda não foram transferidos para o S3. Esperando "um tempo" e tentando novamente, o sudo pode desmontar.

    
por coteyr 17.11.2012 / 22:48

2 respostas

1

Depois de trabalhar com o dpb, determinamos que o problema é um bug e não falta de conhecimento ou configuração (não pode ser corrigido por nós)

A edição 309 foi arquivada com os mantenedores do s3fs.

    
por coteyr 30.11.2012 / 17:32
0

Eu acho que o / etc / fstab precisa da opção user . Agora você disse que tem:

s3fs /mnt/S3/coteyrnet fuse.s3fs rw,noexec,nosuid,nodev,allow_other,user=coteyr 0 0

Tentando alterar esse user=coteyr para apenas user . Isso funciona para mim. Quando tentei especificar o usuário com = , ele foi essencialmente ignorado.

Veja a seguinte saída para um exemplo:

dpb@helo:crash$ mount /mnt/foo
dpb@helo:crash$ umount /mnt/foo
dpb@helo:crash$ grep /mnt/foo /etc/fstab
/dev/vgdata/lvol0 /mnt/foo ext4 defaults,user 0 2
dpb@helo:crash$

Solução Alternativa

Se isso falhar, ou se você quiser uma abordagem alternativa. Você pode configurar uma regra sudo que permita montar e desmontar sem uma senha para certas montagens. Alguns diriam que esta é uma abordagem mais segura, mas eu não sou um guru de segurança.

Mais detalhes para fuse.s3fs

Parece que um não como superusuário tem sucesso, ele precisa corresponder ao que é mostrado pelo comando mount.

Nesse caso, o fstab precisaria se parecer com

s3fs   /mnt/S3/coteyrnet  fuse.s3fs  <options> 0 0

Mas, acho que você ainda precisa de uma maneira de especificar seu intervalo exclusivo. Talvez tente:

s3fs#coteyrnet  /mnt/S3/coteyrnet  fuse.s3fs  <options> 0 0

Isso pode ser o suficiente para enganar o monte (eu vi isso antes em alguns lugares, e agora estou começando a perceber o porquê)

    
por dpb 27.11.2012 / 19:46