[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:72111] Re: バーチャルホスト上のCGIエラー


金子さん、レスをありがとうございました。色々調べていましたので遅くなって
しまいました。
実はまだ解決していません。ご指摘のScriptAliasもダメでした。
ただエラーが起きる原因というのがはっきりしましたので、また皆様にアドバイ
スをお願いしたく思います。

http://www.aaa.com/ 直下にはindex.cgiファイルがありこれによりトップページ
を表示させています。
このディレクトリにはCGIのパーミッションが与えられていますので、動作もして
おります。
ではどこでエラーが起きるのかというと、CGIにより同ディレクトリ内に新規ファ
イル生成をさせるタイミングで起きます。
一時的にディレクトリ(public_html)のパーミッションを777にして試してみる
と、エラー無く新規ファイルが生成されますが、そのファイルの所有者はnobody
となっていました。
WEB上から実行したCGIは実行ユーザがnobodyとなるので、生成ファイルの所有者
もnobodyになるのはわかりますし、それを防ぐため(私はまだ詳しくないです
が)setuidやsbitやsuExecなど手法があるところまではわかってきました。
ただ、わからないのは、http://www.aaa.com/でアクセスしたindex.cgiは(生成
ファイル所有者がnobodyとなって)パーミッションエラーが起きるのに対し、
http://www.aaa.com/~aaa/でアクセスしたindex.cgiは生成ファイルの所有者が
aaaとなってパーミッションエラーが起きないことです。
もちろん双方のURLは、結果的に全く同じディレクトリにアクセスしているので、
使っているもCGI(index.cgi)も同じものです。

ちなみにCGIはperlで書いていますが、バーチャルホストで走らせるCGIの場合、
CGI内で記述するディレクトリパスの書き方も、何かコツのようなものがあってこ
のようなことが起きてるのでしょうか?

できるならこの謎を明かしてsbinなどとは関係なく問題をクリアにしたいのです
が、心当りのあるかたのアドバイスをお待ちしております。
よろしくお願いします。

Kenji Okamoto
okamotok _at_ tcp-ip.or.jp



> 金子です。
>
> 間違っているかもしれませんが
>
> > <VirtualHost 111.222.333.444>
> > ServerAdmin admin _at_ domain.com
> > DocumentRoot /home/aaa/public_html
> > ServerName wwww.aaa.com
> > ErrorLog logs/aaa-error_log
> > TransferLog logs/aaa-access_log
> > </VirtualHost>
> >
>
> ScriptAliasをつければいいのでは?
>
> <VirtualHost 111.222.333.444>
> ServerAdmin admin _at_ domain.com
> DocumentRoot /home/aaa/public_html
> ScriptAlias / /home/aaa/public_html
> ServerName wwww.aaa.com
> ErrorLog logs/aaa-error_log
> TransferLog logs/aaa-access_log
> </VirtualHost>
>
> こんなかんじかな?
> 試してないので判りませんが・・・。
> それでは、
>
>
>

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: