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

[webdav-jp:0709] Re: 吉山氏のパッチについて



  吉山です。
  さて、内容を拝見しました。

  現在の chown_user コマンドは、その実装ポリシーの関係で、chown_user.c 中
に記述された ROOT_DIR 直下でのリソース/コレクションの作成を禁止しています
(この場合、/var/www/dav 下に各ユーザの WebDAV 用ホームディレクトリが存在す
る事を前提にしています)。
  /var/www/dav 下に一般ユーザ所有のディレクトリを作成し、そこに put してみ
て下さい。

p.s.
実は diskquota パッチの新版を今早朝にリリースしています。
今回のパッチは認証ユーザ名を chown_user コマンドに引き渡す機能を追加してあ
るので、chown_user コマンドに色んな仕掛けをする事で従来以上に柔軟な disk
quotaが出来るようになります。

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


On Mon, 13 Jan 2003 02:58:43 +0900
Tetsuya Saito <Tetsuya.Saito@xxxxxxxxxx> wrote:

> みなさん、こんばんわ
> 
> 斉藤@kscです
> 
> 今回、webdavのtestをvmwareで行っております。
> vmwareのhost osはXP Pro SP1です
> webdavテスト用のguest osはRedHat7.3を選択致しました。
> 
> webdav用のtest用に使用したhttpdおよびそれに付随するソフトは下記の通りで
> す。
> httpd:httpd-2.0.43
> ssl:OpenSSL0.9.6g
> DB:BerkeleyDB4.0.14
> zlib:1.1.4
> 
> 上記ソフトを使い、httpdをビルドするのに使用したオプション及びchown_user
> に関する変更を行った箇所は以下の通りです。
> [httpdをビルドするのに使用したオプション]
> env CC=gcc CPPFLAGS='-I/usr/local/ssl/include -I/usr/local/BerkeleyDB.4.0/include -I/usr/local/include' 'LDFLAGS=-L/usr/local/ssl/lib -L/usr/local/BerkeleyDB.4.0/lib -L/usr/local/lib -R/usr/local/ssl/lib -R/usr/local/BerkeleyDB.4.0/lib -L/usr/local/lib' ./configure --prefix=/usr/local/apache3 --enable-modules=all
> -enable-mods-shared=all --enable-ssl --enable-dav --enable-dav-fs
> --enable-so --with-z=/usr/local/lib --with-ssl=/usr/local/ssl
> --with-mpm=prefork --with-berkeley-db=/usr/local/BerkeleyDB.4.0
> 
> [chown_userのに関する変更箇所]
> ~httpd/srclib/apr/include/apr_file_diskquota.hの
> #define CHOWN_USER_PATH  "/usr/lib/apache2/chown_user"
> 	↓
> #define CHOWN_USER_PATH  "/usr/local/apache3/chown_user"
> 
> 
> 上記、作業終了後、「make」、「make install」を行い、構築を完了させました
> そして、chown_user.cの先頭箇所を下記のように変更しsourceをビルドしました。
> #define ROOT_DIR "/var/www/dav"
> #define APACHE_OWNER "www-data"
> #define APACHE_GROUP "www-data"
> #define MAX_UID 9999
> #define MAX_UID 9999
> 	↓
> #define ROOT_DIR "/var/www/WebDAV"
> #define MAX_PATH_LEN 128
> #define APACHE_OWNER "nobody"(変更)
> #define APACHE_GROUP "nobody"(変更)
> #define MIN_UID 1000
> #define MAX_UID 9999
> 
> [chown_user.cのビルドコマンド]
> gcc -Wall -o chown_user chown_user.c
> chmod 4050 chown_user
> chown root.nobody chown_user
> cp  chown_user /usr/local/apache3
> 
> この状態で、/usr/local/apache3/conf/httpd.conf中の項目を下記のように変更
> しました。
> [httpd.confの変更箇所]
> Listen 80
>  ↓
> Listen 0.0.0.0:80
> 
> Group #-1
>  ↓
> Group nobody
> 
> DAVLockDB /var/lock/apache3/DAVLock
> 
> Alias /dav "/var/www/dav/"
> <Location /dav>
>       DAV on
> </Location>
> 
> 次に/var/www/dav/と/var/lock/apache3/DAVLockのディレクトリィを下記のコマ
> ンドで作成しオーナーを変更しました。
> [ディレクトリィの作成及びオーナーを変更したコマンド]
> mkdir /var/www/dav/
> mkdir /var/lock/apache3
> mkdir /var/lock/apache3/DAVLock
> 
> chown nobody.nobody /var/www/dav/
> chown -R nobody.nobody /var/lock/apache3
> 
> この状態で、host os上のXPよりネットワークプレースをvmware上のapacheに対
> して作成し、fileをputしてみたのですが、転送に失敗したとのメッセージがXP
> に表示され、ネットワークプレースには0Kbのfileが作成されfileを正常に転送
> することができません。
> 
> そのときの、vmware上のapacheのerror_logは下記の通りです。
> [error_logの内容]
> [Mon Jan 13 03:04:28 2003] [error] [client 192.168.174.1] Unable to PUT new contents
> for /dav/path_iconv.txt.  [403, #0]
> [Mon Jan 13 03:04:28 2003] [error] [client 192.168.174.1] (2)No such file or director
> y: An error occurred while opening a resource.  [500, #0]
> 
> これは、test環境をvmwareで構築しているための不具合なのでしょうか?
> それとも、何か他に原因があるのでしょうか?
> 識者の皆様、ご助言よろしくお願い申し上げます。
> 
> 尚、参考に、chown_userのls -lの結果を添付致します。
> ls-l chown_user結果
> ---Sr-x---    1 root     nobody      15268  1月 13 01:56 chown_user
> 
> ━ ∧ ━━━━━━━━━━━━━━ ☆ ━━━
>  < >  ☆  斉藤 哲也
>   lへl       tetuya@xxxxxxxxx
>      ト1 ☆  
>  ☆  ∠ >    
> ━━━━ V ━━━━━━━━━━━━━━━━
>