[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 :-(