2006-02-03 [長年日記]
_ Webアプリとバッチで共通に扱うデータファイルの権限
Webアプリ(Apacheモジュールで動作するphp=httpd権限)とバッチ(コマンドラインアプリ)で共通に扱う(書き込み権限が必要な)データファイルがある場合、どのように取り扱うのが一番いいんだろう。
- ファイルを作成するときに誰でも書き込み可にする
- ファイルを作成するときにグループ書き込み可にして、httpdユーザーとコマンド実行ユーザーのグループをあわせる
- コマンド実行ユーザーは、httpdユーザーにsudoしてコマンドを実行する
- (シェル利用可能な)コマンド実行ユーザー=httpdユーザーにする
- コマンドはrootで実行しちゃえ!
キャッシュとかは1だったんだけど、キャッシュ以外のファイルを扱う場合は3かなー。2はやったことないけど、うまく設計すれば使いやすいだろうか? 外部ライブラリに依存していて、データファイルの権限を(ライブラリの中をいじらないと)コントロールできない場合も3だろうな。4は危険すぎるんで却下と思いつつも、ユーザー権限を適切に絞れるならばそれもありか? 5は緊急避難用?
[TrackBack URL: http://tdiary.ishinao.net/tb.rb/20060203]



FastCGIでPHPを実行して、一般権限ってのはなしですか?
(lighttpd+)fastcgi(+suexec)とかも良さそうかなーと思うんですが、まだlighttpd+fastcgi+phpをちょっと試してみた程度なんで、情報不足&判断不可能な状態です(性能は高そうだが、メンテナンスコストがかかりそう、という第一印象)。
「やっぱり80ポートにはいろいろ便利&経験のあるApacheを立てておきたいし、特に問題がないのならばそこでApacheモジュール版PHPを動かしておくのが楽だよなー」というぬるま湯を乗り越えて移行するメリットがあるのならば、そっち方面に移行するのも吝かではないのですけど。
2 でやってます。バッチじゃないですが。他の方法に比べて扱いやすいかどうかはちょっと分からないんですが。
2はUNIX系ファイルシステムの仕組みに一番マッチしているアプローチって気がします。一番多いのは2なのかなー。httpdの信頼性をどの程度と見積もるか、ってところが結構微妙な気もしますが。
はてなあたりでアンケートを採ってみようかなー。