プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。
このカテゴリかどうかは、かなり怪しいですがよろしくお願いします。

まず、環境ですが
マシンA
 OS:TurboLinux7.0
  apache2.0.43
  perl-5.5
マシンB
 OS:FreeBSD
  apache1.3.26
  perl-5.005
です。

あまり、環境には依存していない、むしろapacheの設定のような気もするのですが、
 1.画面に文字列を表示させるだけの単純なものを作成します。
 2.サーバのユーザディレクトリ
   /UserDir/public_html/cgi-bin
に、cgi本体をアップします。
で、ここまでは問題ないのですがクライアントからアクセスする際に、cgi-binのパーミッションを755とした場合では、アクセスが可能ですが、777とした場合はIternalServerErrorとなります。

googleとかで調べてみると、プロバイダによっては777にすると動かないので777にしてくださいというのを見つけました。
確かに、777にすることはセキュリティ上の問題はあるのは分かるのですが、
どこの設定で動作しないようにしているのか(仕様ですか?)、などが気になりましたので質問させてもらいました。
動作しないのはセキュリティの問題があるのでデフォルトでは777を禁止しているのかなとは思うのですが、設定は可能なのかが気になるところです。

長くなり読みづらいかもしれないですが、ご容赦ください。
よろしくお願いいたします。

 ※マシンA・Bと書きましたが、両者で発生しています。

A 回答 (1件)

Apacheをコンパイル時にsuEXEC機能を有効にすることで質問のような事が可能になります。



Apacheの所有者(nobody等)が一般ユーザのホーム配下のCGIを実行するためには777の権限が必要ですが、
これだと誰でも書き込めるのでセキュリティホールになります。
suEXEC機能が有効になっていると、一般ユーザの権限でCGIが実行できるようになるので、
775とか770でもCGIが動かせるようになります。(nobodyさんが実行できなくても良い)
逆に777、666などの設定では動作しなくなります。

Apache suEXECのキーワードで検索してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。

実は以前は動作していたのに何故だろうということを思い出し、以前との違いを考えてみると、今回はconfigure時にsuEXECをオプションで指定していました。

さっそく調べています。

また、別の疑問も出るかもしれないですが、そのときはよろしくお願いします

お礼日時:2003/01/08 13:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!