[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gfarm-discuss-ja:03081] Re: Gfarm v1.4.1におけるファイルの所有者の扱いについて



石橋と申します。

From: "Keisuke TAKAHASHI" <keith@xxxxxxxxxxx>
Subject: [gfarm-discuss-ja:03079] Gfarm v1.4.1におけるファイルの所有者の扱いについて
Date: Fri, 1 Feb 2008 17:43:49 +0900

> お初にお目にかかります.NTTPCコミュニケーションズの高橋と申します.
> 分散ファイルシステム検証の一環として、Gfarmを使用させていただいております.
> 検証環境では,Gfarm version 1.4.1を使用し,GfarmFS-FUSEの以下のコマンドによ
> りファイルシステムにマウントさせております.
> # gfarmfs -lsub -N 2 /PATH/TO/MOUNTPOINT -o allow_other,default_permissions,
> kernel_cache

GfarmFS-FUSE の README.txt ではあまり詳しく記述していませんが、現状の 
GfarmFS-FUSE では、allow _other をつけるとマウントをしたユーザの権限で 
Gfarm 上のファイルを他人が読み書きしまいます。

よって、allow_other オプションを付けるときは、かなり注意する必要があり
ます。

# 現状では Gfarm のライブラリを一度初期化すると途中でユーザを切替える
# ことができないため、GfarmFS-FUSE でも単一ユーザ専用となっています。

> 今回,Gfarmにおけるファイルの所有者の扱いについてご相談させていただきたく,
> メールさせていただきました.
> 
> もしかしたら既出の問題かもしれませんが,Gfarm v1.4.1にて所有者をroot以外に変
> 更しようとしたところ,変更することができません.
> Gfarmへのアクセス権についてはroot以外のユーザにも与え,同一システム上でユー
> ザ別の管理をしたいと考えており,この点で行き詰っております.

基本的には、ユーザごとに gfarmfs でマウントするしかありません。そして、
ファイルの所有者を変更する場合は、一方のユーザが他人でも読めるようにし
てから、もう一方がコピーして、元を削除するしかないと思います。

# 具体的な目的を教えていただければ、違った観点でのアドバイスはできるか
# もしれません。

Gfarm v1 では、root でマウントしたとしても Gfarm 上における特権の概念
が無いので、chown の概念も実装されておりません。

# chown が未実装についての記述は…、Gfarm-FAQ にありました。

現状の GfarmFS-FUSE や libgfs_hook で chown をすると、変更が無いときに
エラーを出さないようにはしてありますが、普段は chown を拒否 (EPERM) す
るようにしてあります。

> 私が試した方法とその結果については,以下の通りです.
> (1)rootがマウントしたGfarmに対し,rootから # chown hoge:hoge /PATH/TO/file
> や # chown hoge:fuse /PATH/TO/file 等のコマンドを使用しても,一切の反応があ
> りませんでした.

エラー (EPERM) になるはずなのですが、いかがでしょうか。

> (2)rootがマウントしたGfarmに対し,ユーザhogeでGfarm上にファイルを書き出そう
> とすると,そのファイルは所有者がrootに変わってしまいます.

前述の通り、gfarmfs を実行したユーザの権限で読み書きされます。

> (3)root以外でGfarmをマウントするために,ユーザhogeが作成したShared Keyをシス
> テム内の全マシン上の/home/hogeにコピーしました.
> そしてhogeがGfarmをgfarmfsコマンドでマウントしようとすると,まず以下のエラー
> が出ます.
>   fusermount: option allow_other only allowed if 'user_allow_other' is set
> in /etc/fuse.conf
> なので,/etc/fuse.confに"user_allow_other"と記述し,再度マウントを試行したら
> エラーは出ませんでした.

はい。しかし allow_other オプションは今回の用途では付けないほうがよい
と思います。

> しかしその状態でdfコマンドを打つと,本来/PATH/TO/MOUNTPOINTの情報が表示され
> る行に,"無効な引数です"というエラーが出ています.

df をすると、すべてのマウントポイントに対して statfs() というシステム
コールが発生しますが、allow_other をつけていない gfarmfs に関しては、
他人からのアクセスを拒否します。

しかし、allow_other をつけたということなので、上記のエラーに関してはそ
れとは関係ないはずで、以下により、

> また,gfps -lで"authentication error"となっており,gfhost -lで認証失敗(x)と
> なっています.

そもそも gfsd とクライアントの間で認証ができていないのだと思います。
ファイルの読み書きもできないはずですが、いかがでしょうか。

共通鍵を全ての /home/hoge に配っているのだとしたら、原因がわかりません。
まず、root 以外で、かつ gfarmfs 無しでの基本設定の確認をお願いします。

--
石橋拓也 @ 株式会社 創夢 第一開発部

# v2 については勉強中です。
# v2 の libgfarm では chmod 相当は実装されていて、
# gfarm2fs では未実装という理解でよろしいでしょうか。>開発者様