web-dev-qa-db-fra.com

Comment démonter un montage s3fs en tant qu'utilisateur normal?

J'utilise S3 une tonne. J'ai plus de 40 seaux flottants entre les clients. J'aime le fait que je puisse les lister dans/etc/fstab et qu'ils fonctionnent. Pour référence, voici l'un des seaux.

coteyrnet/mnt/S3/coteyrnet Fuse.s3fs _netdev, use_cache =/tmp, use_rrs = 1, allow_other, noauto, utilisateurs 0 0

Il monte bien, mais je ne parviens pas à le démonter une fois de plus.

Le premier problème est:

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

La partie pertinente de mtab est:

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

Lors de l'exécution de mount sans argument, il indique le montage comme suit:

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

En plus de cela, si je Sudo umount /mnt/S3/coteyrnet je reçois toujours

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 ne renvoie jamais rien de valeur, pas plus que le fuser.

Mon objectif est de faire en sorte que le démontage de l'utilisateur fonctionne.

L'incapacité de monter via Sudo a été résolue. En utilisant le paramètre "use_cache", les fichiers étaient réellement ouverts, mais pas sous le point de montage. Ceci est une mise en garde à cette option. Les fichiers du point de montage sont fermés mais ils n’ont pas encore été transférés vers S3. En attendant "un moment" et en essayant à nouveau, Sudo peut démonter.

3
coteyr

Après avoir travaillé avec dpb, nous avons déterminé que le problème était un bogue et non un manque de connaissances ou de configuration (il ne peut pas être résolu par nous).

Issue 309 a été archivé par les responsables de s3fs.

1
coteyr

Je pense que/etc/fstab a besoin de l’option user. En ce moment vous avez dit que vous avez:

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

Essayer de changer ce user=coteyr en user. Ça marche pour moi. Lorsque j'ai essayé de spécifier l'utilisateur avec =, il était essentiellement ignoré.

Voir la sortie suivante pour un exemple:

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$

Solution alternative

Si cela échoue ou si vous souhaitez une autre approche. Vous pouvez configurer une règle Sudo permettant le montage et le démontage sans mot de passe pour certains montages. Certains diront que cette approche est plus sûre, mais je ne suis pas un gourou de la sécurité.

Plus de détails sur Fuse.s3fs

Il semble que umount réussisse, mais doit correspondre à ce qui est montré par la commande mount.

Dans ce cas, fstab devrait ressembler à

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

Mais, je pense que vous avez encore besoin d’un moyen de spécifier votre compartiment unique. Peut-être essayer:

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

Cela peut suffire à tromper la monture (je l’ai déjà vu à quelques endroits et je commence à comprendre pourquoi)

0
dpb