[PHP-users 4529] Re: PHPでroot 実行するには?
harikawa
php-users@php.gr.jp
Wed, 02 Jan 2002 00:07:27 +0900
針川@茅ヶ崎です。
あけましておめでとうございます。今年もよろしくお願い致します。
> 今、簡単なプログラムを作成しているのですが /home/~user にPHPからファイ
> ルを作成しようとするとパーミッションのエラーが出ます。(当たり前ですね。)
> そこで、それを実行するようにするためにそのプログラムにrootの権限を与える
> 必要があると思うのですが、これをするのは sudo でいいのでしょうか。
ちょうど、その当たりをやっていたところなので。
/home/~user への書き込みだけならルート権限の必要は無いでしょう。
sudoers はこんな感じでいかがですか?
Cmnd_Alias WEBCMD = /bin/chmod, /usr/bin/touch
nobody ALL = (user) NOPASSWD: WEBCMD
user 権限で touch で空ファイル作り、一時的に chmod 666 にする。
書き込みが済んだら chmod 644 で戻し。(忘れると悲惨!)
必要があれば /bin/rm も追加して良いでしょうが、不要なら極力避けた方が
無難です。
user 権限に限っても nobody が chmod 使えるのはちょっと怖いので、fopen
に渡すパスには十分注意が必要です。
他にいい手があれば私も知りたいです。
# suEXEC は共用スペース向きみたいなので、採用見送りました。
> Webで調べると、結構慎重にしないとセキュリティーホールになる可能性が高い
> ような感じを受けたのですが、他には何かいい方法は無いモノでしょうか。
管理に限って php の ftp関数使って localhost でログイン、という手を使っ
てます。普段は ssh portfoward で使っているので ftp は localhost からし
か利用できないようにしてます。
もちろん、ID とパスワードはコードに埋めず、フォームから入力します。
念のため、ssl 経由。一般サービスには向かないと思います。
~user に Web 経由のメンテをさせるということならこの方法も一案でしょう。
((((((((( Soft-inn 針川英智 )))))))))
)))) http://www.softinn.to/ ((((
((( harikawa@softinn.to )))
)))) Tel:0467-59-1003 Fax:1002 ((((
((((_______ 茅ヶ崎市共恵1-15-1 ______))))