[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[webdav-jp:1127] Re: クォータへの対応
吉山です。
On Thu, 21 Oct 2004 23:18:58 +0900
mac@xxxxxxxxxxxxx wrote:
> 岡崎と申します。
> 吉山様よろしくお願い致します。
>
> > diskquota パッチは、各ファイル/ディレクトリを
> >
> > ・所有者を各ユーザにしてファイルシステム quota を利用できるようにする
> > ・グループを Apache 専用グループにして httpd から読み書きできるようにする
> >
> > 為のパッチです。その為には、パッチ適用と共に、WebDAV フォルダ中のファイル
> > /ディレクトリの所有者/グループを↑の通りにし、パーミッションを ug+rw す
> > る必要があります。
>
> Apacheの所有者とグループが「nobody」、ユーザの所有者とグループが「username」
> とした場合
> /home にあるユーザのディレクトリ /home/username の所有者を「username」にグ
> ループを「nobody」としパーミッションを「rw-rw----」にするということで正しい
> でしょうか?
正しくありません。
UNIX 系 OS では一般に、ディレクトリに実行属性がついていないとプロセスが
そのディレクトリに移動できません。ですので、ug+rw と書いたのです。
具体的には、
・ディレクトリ→ rwxrwx--- (770)
・ファイル→ rw-rw---- (660)
となるように設定して下さい。一度設定が行われたなら、Apache(+diskquota パッ
チ)経由で作られたファイル/ディレクトリは chown_user コマンドにより上記を
保持します。
> > 明確にドキュメントされていなくてすいません。現在の実装では、ファイルシス
> > テムの文字コードを環境変数APACHE_FS_ENCODE で指定するようになっており、
> > FS_ENCODE は廃止されています。起動時のスクリプト(/etc/init.d/httpd)や、
> > スクリプトの設定ファイル /etc/sysconfig/httpd 辺りで下記の通り設定してくだ
> > さい。
> >
> > 例:ファイルシステム上のファイル/ディレクトリ名の文字コードを日本語 EUC(
> > MS 拡張対応)にする場合
> >
> > export APACHE_FS_ENCODING="EUCJP-MS"
>
> /etc/sysconfig/httpdというファイルは存在しないのですが、これは新たに
> export APACHE_FS_ENCODING="EUCJP-MS"
> の一行を書き込んだファイルをhttpdという名前で作ると考えてよいのでしょうか?
Red Hat 系のシステムにおける httpd のパッケージでは、/etc/init.d/httpd
スクリプトが/etc/sysconfig/httpd ファイルを参照するので、この中で環境変数
を設定すれば httpd に反映されます。
ただ…おそらく、この話は Apache-2.0.52 をソースからコンパイルしています
ね?それだと反映されないので、/etc/init.d/httpd があればそれに直接環境変数
の設定を記述して下さい。
> > (WebDAV フォルダ中のファイル/ディレクトリで使用される)一般ユーザアカ
> > ウントの uid は 500〜9999 の範囲に収まっていますでしょうか?
>
> 新規ユーザを作ると500番から作られるので、これでよいかなと思っているのですが、
> やはり1000番辺りから作る方がよいでしょうか?
現状で良いと思いますよ。
> >> 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
> >
> > を実行すると何が出ます?
>
> ---Sr-x--- 1 root root 6439 10月 20 10:56 /usr/local/apache2/chown_user
> と出ました。(/usr/local/apache2/chown_userの部分は赤色に反転しています)
問題あります。
コピーした際にそうなったのでしょうが、/usr/local/apache2/chown_user ファ
イルのグループを chown コマンドでApacheの所属グループ(この場合はnobody)
にして下さい(cp -a でコピーしなおしても良いでしょう)。上記では Apache が
chown_user コマンドを実行できないことになります。
方法はともかく、
---Sr-x--- 1 root nobody 6439 10月 20 10:56 /usr/local/apache2/chown_user
になるよう設定して下さい。
なお、本当は Apache 専用のアカウント/グループを用意するのが better です。
様々なチェックをかけているとは言え、chown_user は危険なコマンドです。
nobody アカウント/グループは各種デーモンの実行アカウントとして利用されて
いるケースがありますので、上記の設定ではこれらのデーモンが chown_user コマ
ンドを実行できる事になります。悪用すれば、chown_user コマンドでWebDAVフォ
ルダ上の個人のファイル/ディレクトリを任意の所有者に変更する事ができます。
これは立派なセキュリティホールです。
---
吉山あきら<yosshy@xxxxxxxxxxxx>