web-dev-qa-db-ja.com

通常のユーザーとしてs3fsマウントをアンマウントするにはどうすればよいですか?

私はS3を1トン使用しています。クライアント間で40個以上のバケットが浮かんでいます。私はそれらを/ etc/fstabにリストでき、それらがちょうど機能するという事実が好きです。参照用のバケットの1つです。

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

うまくマウントされますが、アンマウントするのに一時間かかります。

最初の問題は:

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

Mtabの関連部分は次のとおりです。

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

引数なしでマウントを実行すると、次のようにマウントが報告されます。

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

それに加えて、私がSudo umount /mnt/S3/coteyrnetなら

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は、価値のあるものを何も返さず、フューザも返しません。

私の目標は、ユーザーのアンマウントを機能させることです。

Sudoを介してマウントできないことが解決されました。 「use_cache」設定を使用すると、ファイルは実際には開いていましたが、マウントポイントの下ではありませんでした。これはそのオプションの警告です。マウントポイントファイルは閉じていますが、ファイルはまだS3に転送されていません。 「しばらく」待ってから再試行すると、Sudoはアンマウントできます。

3
coteyr

Dpbを使用した結果、問題はバグであり、知識や構成の不足ではないと判断しました(修正はできません)

Issue 309 がs3fsメンテナーに提出されました。

1
coteyr

/ etc/fstabにはオプションuserが必要だと思います。今、あなたはあなたが持っていると言った:

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

user=coteyruserに変更してみてください。それは私のために働く。 =でユーザーを指定しようとしたとき、本質的に無視されました。

例については、次の出力を参照してください。

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$

代替ソリューション

これが失敗した場合、または別のアプローチが必要な場合。特定のマウントに対してパスワードなしでマウントおよびアンマウントを許可するSudoルールを設定できます。これはより安全なアプローチであると主張する人もいますが、私はセキュリティの第一人者ではありません。

Fuse.s3fsの詳細

Umountが非スーパーユーザーとして成功するように見えるため、mountコマンドで表示される内容と一致する必要があります。

この場合、fstabは次のように見える必要があります。

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

ただし、一意のバケットを指定する方法がまだ必要だと思います。おそらく試してみてください:

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

それはマウントをだますのに十分かもしれません(私は以前いくつかの場所でそれを見てきました、そして今、私は理由を理解し始めています)

0
dpb