[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[webdav-jp:1125] Re: クォータへの対応



  吉山です。

On Wed, 20 Oct 2004 14:47:04 +0900
mac@xxxxxxxxxxxxx wrote:

> 岡崎と申します。
> よろしくお願い致します。
> 
> 吉山様、diskquota 関連パッチの更新ご苦労様です。
> さっそく、試してみようと昨日から悪戦苦闘しております。
> が、如何せん、どうもうまくいきません。すいません。
> 
> 環境は Fedora Core2 + Apache2.0.52 です。
> Fedoraはデフォルトの文字コードがUTF-8なので、UTF-8のままです。
> 
> /home 内に作るユーザディレクトリを WebDav に対応させようとしています。
> パッチを適用する以前はユーザディレクトリの所有者とグループを nobody に
> することによって WebDav が使える状態にありました。
> 
> このパッチを適用すると所有者とグループがユーザのままでもアクセスできる
> ようになると理解しているのですが(違うでしょうか?)これを適用してもや
> はり nobody にしないとアクセスできません。
> また、nobody にしてアクセスできてもダウンロードはできるのですが、アップ
> ロードが出来なくなってしまいました(Win2000のWebフォルダとMacOSXで確認)

  diskquota パッチは、各ファイル/ディレクトリを

	・所有者を各ユーザにしてファイルシステム quota を利用できるようにする
	・グループを Apache 専用グループにして httpd から読み書きできるようにする

為のパッチです。その為には、パッチ適用と共に、WebDAV フォルダ中のファイル
/ディレクトリの所有者/グループを↑の通りにし、パーミッションを ug+rw す
る必要があります。

> おそらく、私が何か間違っているのだろうと思うのですが、どこが間違ってい
> るのか分かりません。何卒ご教授をお願い致します。
> 
> 下記が、私が行った作業です。
> 
> ------------------------------------------
> 下記ファイルをダウンロードし解凍しました。
> 090_path_iconv.gz
> 091_diskquota2.gz
> 092_escape_amp.gz
> 093_ie_webdavize.gz
> chown_user.c.gz
> ------------------------------------------
> 下記のようにパッチを適用しました。
> # cd httpd-2.0.52
> # patch -p2 < ../090_path_iconv
> # patch -p2 < ../091_diskquota2
> # patch -p2 < ../092_escape_amp
> # patch -p2 < ../093_ie_webdavize
> ------------------------------------------
> ~httpd/srclib/apr/file_io/unix/path_iconv.h に下記の内容が見あたらな
> かったので、変更はしていません(なくてよいのでしょうか?)
> #define FS_ENCODE "EUC-JP"

  明確にドキュメントされていなくてすいません。現在の実装では、ファイルシス
テムの文字コードを環境変数APACHE_FS_ENCODE で指定するようになっており、
FS_ENCODE は廃止されています。起動時のスクリプト(/etc/init.d/httpd)や、
スクリプトの設定ファイル /etc/sysconfig/httpd 辺りで下記の通り設定してくだ
さい。

例:ファイルシステム上のファイル/ディレクトリ名の文字コードを日本語 EUC(
MS 拡張対応)にする場合

	export APACHE_FS_ENCODING="EUCJP-MS"

> ------------------------------------------
> ~httpd/srclib/apr/include/apr_file_diskquota.h にある chown_user コマ
> ンドへのパスを下記に変更しました。
> #define CHOWN_USER_PATH  "/usr/local/apache2/chown_user"
> ------------------------------------------
> apacheを下記のようにインストールしました。
> #./buildconf
> #./configure --enable-modules=most --enable-mods-shared=all --enable-ssl
> #make
> #make install
> ------------------------------------------
> chown_user.c を下記のように修正しました。
> #define ROOT_DIR "/home"
> #define MAX_PATH_LEN 128
> #define APACHE_OWNER "nobody"
> #define APACHE_GROUP "nobody"
> #define MIN_UID 500
> #define MAX_UID 9999

  (WebDAV フォルダ中のファイル/ディレクトリで使用される)一般ユーザアカ
ウントの uid は 500〜9999 の範囲に収まっていますでしょうか?

> ------------------------------------------
> chown_user.c を下記のようにコンパイル・インストールしました。
> # gcc -Wall -o chown_user chown_user.c
> # chown root.nobody chown_user
> # chmod 4050 chown_user
> # cp chown_user /usr/local/apache2

	ls -l /usr/local/apache2/chown_user

を実行すると何が出ます?

---
吉山あきら<yosshy@xxxxxxxxxxxx>