

ロリポップでSSIを使おうと思ったら次のような注釈がありました。
-------------------------------
セキュリティの為にSUEXECを導入しておりますので、SSIで実行ファイルを使用される際、以下の様な制限があります。
・実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ません。
・上位ディレクトリを参照すると動作出来ません。
実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますようお願い申し上げます。
-------------------------------
このSUEXECというのもがよく分かりませんが、
「実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ない」というのは分かりますが、
「実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますよう」ということがわかりません。
相対パスで指定するのですから、そんな必要があるのでしょうか?
そういうルールですから仕方ないことですが、今考えているSSIの利用だと、実行ファイルを上の階層に置くと楽なので、そのあたり疑問に思ったので質問させていただきました。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
通常モードでCGIやSSIを実行すると、
WWWサーバ管理者のユーザID(nobodyなど)での実行になってしまいますので、
一般ユーザでは削除や書き換えができませんのでサーバ管理者に依頼するしか方法がありません。
また、ものによっては、サーバ管理者側のファイル等が破壊されるなどの問題があります。
それを防ぐのがsuEXECです。
suEXECを使用すると、サーバを実行しているユーザIDとは異なるユーザIDでCGIやSSIを実行することができます。
この「異なるユーザID」が各利用者の事です。
各利用者のIDで管理できるため、利用者にホームディレクトリの管理を任せることが可能になります。
SSIを記述するファイルと同じ階層か下層に制限されるのも、suEXECの特徴です。
要は、「他ユーザには迷惑掛けないでね」という事です。
>「実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますよう」ということがわかりません。
トップページの「index.html」のファイルがある階層を含む下位の事です。
No.1
- 回答日時:
ロリポップは使っていませんので断言はできませんが共用サーバのサービスでは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」を使って実行権限をもっと低いものに変えて実行しているのだと思います。 これは、他に迷惑をかけないという制限ではありますが、他から自分への迷惑がかからないという安全保障でもあります。
以上のようにややこしい話ですが、ややこしい説明をしても一般の方は「私は素人だから」を免罪符に好き勝手するので、ルールをシンプルにしてこれ以上のことはするなとしているのではないかと思います。
長々と、どうも失礼いたしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FFFTPでアップロードできない?
-
WIn32API ディレクトリ内ファイ...
-
.htaccessを2つ以上設置した場合
-
なぜフォルダ名がcgi-binなの?
-
perl 特殊配列@INC について
-
EXCELファイルに誰がアクセスし...
-
FTPにて553エラー
-
IISでエラー、Apachでは動くの...
-
MT/カスタムフィールドでのPDF...
-
VBAでサーバーにアクセスするに...
-
httpd の1.42pで表示出来ないCG...
-
CGIでソースがそのままでてしま...
-
.cgi拡張子のままCGIファイルを...
-
動的URLから静的URLへのリダイ...
-
IISのSSIの設定について
-
ファイルダウンロード後に、デ...
-
サーバー間でファイルコピーしたい
-
表示画面が真っ白になる場合、...
-
ユーザの所属するグループを取...
-
ApacheでのCGIについての質問
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FFFTP CGIのデータを...
-
CGIが読み書きするデータファイ...
-
Rubyで特定のディレクトリ以下...
-
CGI実行環境下の.jsや.cssが動...
-
HTTP接続
-
FTPにてパーミッション一斉変更...
-
htaccessでfirefoxのみエラーペ...
-
フォームに入力後、送信ボタン...
-
レンタルCGIの仕組み
-
BASIC認証式パスワード管理で質問
-
CGIでjcode.plを読み込めなくな...
-
500 Internal Server Err で困...
-
.htaccessを2つ以上設置した場合
-
これらの2つの違いを教えて下...
-
シェルにてファイルの自動削除...
-
アップしたフォルダが消せない
-
階層を変えると動作しないです。
-
PCと携帯の振り分けCGI
-
以前書きこんだ者です。Apache...
-
CGI初心者です
おすすめ情報