格安レンタルサーバー&
ホスティングサービスのt-agency
HOME company support faq link
t-agency.net

suExecについて
 
通常、HTTPとして動作するCGIプログラムが動作する場合、所有者権限は「nobody」で動作します。

これに対して、SuExec環境に対応したサーバーの場合、CGIプログラムは「nobody」ではなく、
そのCGIプログラムファイルの「所有者権限(ユーザ権限)」、つまりお客様の権限としてプログラムが動作します。
これにより、ファイルの読み書き、実行がその「所有者権限(ユーザ権限)」で実行されるため、セキュリティ上安全になります。
 
なぜファイルの「所有者権限(ユーザ権限)」で動作をさせたほうが安全か
 
例えば、一般サーバでは、掲示板のログファイル(書き込み内容の保存に使用するファイル。例として「.log」・「.txt」等)は
パーミッション(日本語では『許可』という意味。サーバー上のファイルに対する権限設定の事です)を『666』または『606』に設定します。

表1.
オーナー 自分
(owner)
グループ
(group)
その他
(nobody)
パーミッション 6 6 6

上の表1.のように3番目の数字が「nobody」の実行権限を意味しています。
各数字の意味に関しては、下の表2.の通りです。

表2.
動作 数字
読む(r) 4
書く(w) 2
実行(x) 1
例えば、読み書きが可能な場合、数字は『6』となります(読む(r)+書く(w)=4+2=6)

ブラウザでの操作が「nobody」権限となる為、「nobody」のパーミッションを『6』、つまり「読み書き可能」にする必要があります。

しかし、このようなパーミッション設定では、例えばログファイルのURLを直接アドレスバーに入力することにより、
ダウンロードする事が可能になってしまう等の危険性が考えられます。

そこで、CGIプログラムを「nobody」権限ではなく「owner」権限で動作させるようにすれば、ログファイルのパーミッションを「600」、
つまり「nobody」に権限を与えなくても読み書きが可能となり、直接ダウンロードされるような危険性がなくなる事になります。
 
パーミッション設定例
 
ファイル種別 通常のサーバー SuExecサーバー
CGIファイル 755 or 705 701 or 700
ログファイル 666 or 606 600
読出専用ファイル
(ライブラリ,HTML等)
644 or 604 600
ファイル生成
ディレクトリ
777 or 707 701 or 700

上記のパーミッションは、設定例ですが、セキュリティ上低い数字にする方が好ましいですが、
ファイルやCGIによって決まったパーミッションは、ありません。
Copyright (C) 2001-the current year T-Agency All rights reserved .