[PHP-users 4530] ファイル書き込みのユーザパーミッションについて (was Re: PHPでroot 実行するには?)
Mitsuhisa TANAKA
php-users@php.gr.jp
Wed, 02 Jan 2002 09:56:50 +0900
田中です。
今年も宜しくお願いします。
From: harikawa <harikawa@softinn.to>
Subject: [PHP-users 4529] Re: PHPでroot 実行するには?
Date: Wed, 02 Jan 2002 00:07:27 +0900
Message-ID: <20020101231202.C639.HARIKAWA@softinn.to>
> > 今、簡単なプログラムを作成しているのですが /home/~user にPHPからファイ
> > ルを作成しようとするとパーミッションのエラーが出ます。(当たり前ですね。)
例えば、クライアントから upload されたファイルを移動したりす
る場合に、書き込みのパーミッションが必要になりますね。
> > そこで、それを実行するようにするためにそのプログラムにrootの権限を与える
> > 必要があると思うのですが、これをするのは sudo でいいのでしょうか。
>
> ちょうど、その当たりをやっていたところなので。
> /home/~user への書き込みだけならルート権限の必要は無いでしょう。
Apache が実行されているユーザとグループを把握すれば、root 権
限は考慮せずに、色々なことが実現できます。
私は、Debian GNU/Linux なので、デフォルトの設定で Apache は、
www-data.www-data で動作しています。
Redhat 系のサーバは、nobody ですね。
(0)$ su -
(1)# groups hoge で所属グループを確認して
(2)# usermod -G group,,,,www-data hoge で www-data グループに加えて
(3)# exit
(4)$ cd ~
(5)$ chgrp -R www-data public_html/
(6)$ chmod -R g+s `find public_html/ -type d`
(7)$ chmod -R o-rwx public_html/
とかしてます。(6)はミソです。
上記に加えて、書き込みが必要なディレクトリに
$ chmod g+w dir-name
とすれば、root 権限も、suExEC も使わずに ** 比較的安全 ** に
運用できると思って、この様な設定で運用して見ていますが、如何
でしょうか?
以上、よろしくお願いいたします。
-----------------------------------------------
TANAZO Limited Partnership / Mitsuhisa TANAKA
I'm not a cyborg :-(