- PR -

davfsでマウントしたディレクトリに書き込みできない

1
投稿者投稿内容
たまご
会議室デビュー日: 2004/04/12
投稿数: 8
投稿日時: 2008-07-14 15:10
Webサーバ複数台とファイルサーバ1台で、ファイル管理を行うことを考えています。
--------------------
【システム環境】
Webサーバ(ホスト名:w1) RedHat2.4系
Webサーバ(ホスト名:w2) RedHat2.6系
ファイルサーバ(ホスト名:f1) RedHat2.4系

各Webサーバにファイル管理プログラムがインストールされている
--------------------
WebDavクライアントのdavfsを各Webサーバにインストールし、ファイルサーバをマウントします。

w1で投入したコマンド
[root@w1]# mount -t davfs http://<url of f1>/dav/ /home/dav/ -o rw

w2で投入したコマンド
[root@w2]# mount -t davfs http://<url of f1>/dav/ /home/dav/ -o rw

w1のファイル管理プログラムはマウントしたポジション(/home/dav/)に今日の日時(Ex.2008071014)
のディレクトリを作成して、そこにファイルを書き込みます。

w2のファイル管理プログラムも同様にマウントしたポジションにファイルを書き込みます。このとき
w1が作成したディレクトリ(Ex.2008071013)に対して実施すると書き込みエラーとなります。

w1でリストコマンドを投入すると以下のようになります。
[root@w1]# ll /home/dav/
[root@w1]# drwxrwxrwx 3 nobody nobody 48 Jul 14 14:43 2008071014

w2でリストコマンドを投入すると以下のようになります。
[root@w2]# ll /home/dav/
[root@w2]# drwxr-xr-x 3 root root 48 Jul 14 14:45 2008071014

w1のプログラムが作成したディレクトリに対してw2のプログラムが書き込める
方法をご教授願えないでしょうか。

ゆっぽ
常連さん
会議室デビュー日: 2006/02/15
投稿数: 40
投稿日時: 2008-07-14 17:21
umask 000 か umask 111

もしくは

管理プログラムとやらに、権限変更コマンド追加。

セキュリティ上、どうなのかと思いますが。

[ メッセージ編集済み 編集者: ゆっぽ 編集日時 2008-07-14 17:23 ]
たまご
会議室デビュー日: 2004/04/12
投稿数: 8
投稿日時: 2008-07-14 20:03
ゆっぽさん
返答ありがとうございます。
umaskコマンドで試してみましたが結果は同じでした。

ご指摘のとおりセキュリティとして問題はあります。
Webサーバには、IP認証機能を導入しており許可されていないIPからアクセスできない
ようにしています。無論、偽装されては意味はありませんが・・・
このWebサーバの先には別のサーバがあって、そのサーバが乗っ取られない限りは
大丈夫かなと安直に考えています。

ファイルサーバに共有フォルダーを作って、そこに保存されているファイルをいくつかのプログラムが参照して処理を行うことを考えており、WebDavで実現できるのではと思い四苦八苦しております。
たまご
会議室デビュー日: 2004/04/12
投稿数: 8
投稿日時: 2008-07-15 10:59
自己解決しました。

mountはroot権限で行うので、Apacheの実行ユーザ(nobody)に書き込み権限が無く、 WebDAVでのファイル更新ができないことがわかりました。
それならば、ファイルサーバのアクセス用にグループを作りApacheの実行ユーザをそのグループに含めればよかったようです。
# groupadd ghoge
# mount -t davfs http://<url of f1>/dav/ /home/dav/ -o uid=nobody,gid=ghoge,rw

mount時にgidを指定しているため、そのグループに属しているユーザは書き込み可能になりました。
1

スキルアップ/キャリアアップ(JOB@IT)