- PR -

DocumentRootでsuEXECを使用

投稿者投稿内容
taku
会議室デビュー日: 2005/09/27
投稿数: 8
投稿日時: 2005-09-27 09:20
suEXECでありがちな問題らしいことですが、一般ユーザはsuEXECを利用できますが
http://www.atmarkit.co.jp/ のようなアドレスの次にチルダが付かないアドレス
つまりドキュメントルートと言いますかサーバ自信のホームディレクトリ以下に対して
suEXECを利用するにはどのようにすればよいでしょうか?

oyajiさんがやっているように一般ユーザとして利用しチルダを使わないアドレスを
あきらめる以外の方法を探しています。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-09-27 09:50
おはようございます。
引用:
サーバ自信のホームディレクトリ以下に対してsuEXECを利用するにはどのようにすればよいでしょうか?


おそらくそれは、不可能というだけでなくナンセンスなご希望かと思います。
なぜなら、suEXECとういのは、
引用:
suEXECサポートより
suEXEC 機能により、Apache ユーザは Web サーバを実行しているユーザ ID とは 異なるユーザ ID で CGI プログラムや SSI プログラムを実行することができます。


というように、Apacheプロセス実行ユーザとは別権限でプログラムを動かす機構ですが、その条件が、
引用:
suEXEC ラッパーを呼ぶのは、 SuexecUserGroup ディレクティブを 含むバーチャルホストへのリクエストか、mod_userdir により 処理されたリクエストの場合に限ります。


となっており、いわば「複数サイト同居」のような状態での、代表サイト以外の権限調整を想定されている機能だからです。

Apacheプロセス実行ユーザが希望と異なるなら、それそのものを替えれば済む話かと思います。
( Userディレクティブを使用するか、若しくは起動ユーザを替える )

なお、もしも、権限を切り替える URLのパターンが、mod_userdir の機能と大きく外れている場合…、
すなはち、任意の URLに対して CGI/SSI実行権限を切り替える仕組みが欲しい、というご希望であれば、mod_rewrite と mod_userdir と suEXEC の組み合わせで何とかなるかも知れません。( 全く未検証ですが )
イレギュラーな状況かと思いますけどね。

以上、ご参考まで。
※ cgiwrap なり、その他非標準モジュールについては、知らないのでノータッチです。

[ メッセージ編集済み 編集者: angel 編集日時 2005-09-27 10:03 ]
taku
会議室デビュー日: 2005/09/27
投稿数: 8
投稿日時: 2005-09-27 10:03
ナンセンスというのは無意味ということですか?
suEXECを利用するのは無意味ではありません。
ドキュメントルートでもCGIによってファイル作成するつもりなので
一般ユーザと同様にsuEXECを利用するつもりです。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-09-27 10:11
引用:
ナンセンスというのは無意味ということですか?


はい、恐れながら、言葉どおりそのまま、ナンセンス=無意味です。
引用:
ドキュメントルートでもCGIによってファイル作成するつもりなので
一般ユーザと同様にsuEXECを利用するつもりです。



ちょっと、投稿後に少しずつ表現に変更を加えていますので、分かりづらかったかも知れませんが、
引用:
なぜなら、suEXECとういのは、
…(中略)…
となっており、いわば「複数サイト同居」のような状態での、代表サイト以外の権限調整を想定されている機能だからです。

Apacheプロセス実行ユーザが希望と異なるなら、それそのものを替えれば済む話かと思います。


ということです。takuさんの「一般ユーザと同様に」という文言はナンセンスです。

なぜ suEXEC を使おうと思い至ったのか、その経緯・状況によっては、上記以外の別の解決策もあると思いますが。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-09-27 10:19
そうでした。大事な「暗黙の前提」を書いていませんでしたが、

 「CGI/SSI実行ユーザ」=「Apacheプロセス実行ユーザ」

が標準であり、通常はそれで問題が無い ( 若しくは問題が無いように環境を整える ) という前提があります。

それでは、複数ユーザがコンテンツをメンテナンスするような環境では困る ( Apacheプロセスの単一ユーザで捌くため )、ということで suEXEC のような機構で、「例外的に」権限を切り替えられるようにしているわけです。
taku
会議室デビュー日: 2005/09/27
投稿数: 8
投稿日時: 2005-09-27 10:20
キモイよ。質問から外れてきてるよ。君にはもう書かなでホスィ。
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-09-27 10:44
誰が書いても同じだと思いますが・・・

引用:

つまりドキュメントルートと言いますかサーバ自信のホームディレクトリ以下に対して
suEXECを利用するにはどのようにすればよいでしょうか?


目的と手段が混ざってます。suExecは目的を達成するために使えるかもしれない手段の
一つでしかないのに、いつのまにかsuExecを使ってどうやればできるかが
目的だと勘違いしてませんか?

目的は
「DocumentRootに特定のユーザの権限(例えばuser1)でファイル書き込みを行いたい」
とかなんですよね?

だったら手段として
「Apacheプロセスの実行ユーザをuser1に変更する」
で実現できますよ、って返答が付いているわけです。

Apacheプロセス起動ユーザと、DocumentRootへファイルを書き込みたいユーザを
別にしなければならない、という制限があるなら、そういう事情を書いてくれないと、
その答えがもっとも真っ当でしょう。

で、そういう制限があるなら、そこで改めてsuExecの出番ですが、
それを実現するためにはDocumentRootで利用するURLを、UserDirへrewriteするような
トリッキーな手法を使うくらいしかないだろう、ということも書かれてます。

引用:

oyajiさんがやっているように一般ユーザとして利用しチルダを使わないアドレスを
あきらめる以外の方法を探しています。


どこになんて書いてあるんだか示してもらわないと、何のことやら。

[ メッセージ編集済み 編集者: Mattun 編集日時 2005-09-27 10:48 ]
taku
会議室デビュー日: 2005/09/27
投稿数: 8
投稿日時: 2005-09-27 10:51
トリッキーな手法を知らない人のレスは不用。
とりあえずゴミがついたからレス。

スキルアップ/キャリアアップ(JOB@IT)