重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ロリポップでSSIを使おうと思ったら次のような注釈がありました。

-------------------------------
セキュリティの為にSUEXECを導入しておりますので、SSIで実行ファイルを使用される際、以下の様な制限があります。
・実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ません。
・上位ディレクトリを参照すると動作出来ません。
実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますようお願い申し上げます。
-------------------------------

このSUEXECというのもがよく分かりませんが、
「実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ない」というのは分かりますが、
「実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますよう」ということがわかりません。

相対パスで指定するのですから、そんな必要があるのでしょうか?

そういうルールですから仕方ないことですが、今考えているSSIの利用だと、実行ファイルを上の階層に置くと楽なので、そのあたり疑問に思ったので質問させていただきました。

よろしくお願い致します。

A 回答 (2件)

通常モードでCGIやSSIを実行すると、


WWWサーバ管理者のユーザID(nobodyなど)での実行になってしまいますので、
一般ユーザでは削除や書き換えができませんのでサーバ管理者に依頼するしか方法がありません。
また、ものによっては、サーバ管理者側のファイル等が破壊されるなどの問題があります。
それを防ぐのがsuEXECです。

suEXECを使用すると、サーバを実行しているユーザIDとは異なるユーザIDでCGIやSSIを実行することができます。
この「異なるユーザID」が各利用者の事です。
各利用者のIDで管理できるため、利用者にホームディレクトリの管理を任せることが可能になります。

SSIを記述するファイルと同じ階層か下層に制限されるのも、suEXECの特徴です。
要は、「他ユーザには迷惑掛けないでね」という事です。


>「実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますよう」ということがわかりません。

トップページの「index.html」のファイルがある階層を含む下位の事です。
    • good
    • 0
この回答へのお礼

ありがとうございました。

suEXECというものば少し分かった感じがしました。

お礼日時:2011/02/09 14:27

ロリポップは使っていませんので断言はできませんが共用サーバのサービスではFTPなどで得られる見かけのファイル構造はあてにならないことが多いので、事故を防ぐため簡易に説明しているのではないでしょうか。



これは、各共有ユーザに割り当てられた領域より外には、システムの基幹部分などが存在し、勝手にいじられると同じサーバに割り当てられた他のユーザに迷惑がかかることになりますので、意図的に見えないようにするのが普通です。
Webサーバサービスからホームページ用に割り当てられる領域は、Webサーバから指定された場所「DocumentRoot」以下のディレクトリが自由に利用できるすべての世界ですが、そこからCGIやSSIを通して起動されるプログラムはそこから派生したものとはいえシステム上で実行されるプログラムなので、Webサーバの指定するディレクトリ構造など知ったこっちゃないのです。
FTPではホームディレクトリ以下しか見えないから、見掛けのまま絶対パス(Webサービスでなくシステム上のディレクトリパス)を利用したりすると、見えない部分が不足しているため単なるエラーですめばいいのですが偶然が重なってサーバトラブルの原因となるケースも考えられます。
環境変数「SCRIPT_FILENAME」と「SCRIPT_NAME」をCGIで表示させれば、「パス」の相違がわかります。
経験の浅いWebデザイナーなどは、Webサーバサービス上で提供されるURL表現上の「絶対・相対パス」について、実際のファイルシステムとそのまま同じものと思っている方が多いので、CGIやSSIが絡むページを作ってもらうときは説明が大変で、いくら説明してもどうしようもないページが生産されてWebプログラマーが帳尻あわせで大変なことになるケースが多いのです。 しかも納期いっぱいに作業しようとするため、往々にして出来上がってくるのが遅かったりするのでさらにしわ寄せが・・・。 「お前がはやくページを作らんとシステムは作業でけまへんがな」と何回言っても学習能力がないページ制作者は多いもので・・・。
質問への回答がストレスのはけ口になりつつあるので、もとい。

さらに、CGIやSSIは誰の権限で実行しているかというと、Webサーバで指定された権限で実行されます。 当然、共用サーバは複数のオーナーでひとつのWebサーバを利用していますので、実行されるプログラム同士は同じ権限ゆえに他のユーザの領域に対する権限も持ち合わせることになります。 この権限を変えて、他のユーザ領域へ侵入を許可させないために「SUEXEC」を使って実行権限をもっと低いものに変えて実行しているのだと思います。 これは、他に迷惑をかけないという制限ではありますが、他から自分への迷惑がかからないという安全保障でもあります。

以上のようにややこしい話ですが、ややこしい説明をしても一般の方は「私は素人だから」を免罪符に好き勝手するので、ルールをシンプルにしてこれ以上のことはするなとしているのではないかと思います。
長々と、どうも失礼いたしました。
    • good
    • 0
この回答へのお礼

ありがとうございました。参考にさせていただきます。

お礼日時:2011/02/09 14:28

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