| リポジトリ |
|
|---|
Apache suEXEC は、Apache Web サーバーの機能です。この機能により、ユーザーはCommon Gateway Interface (CGI) およびServer Side Includes (SSI) アプリケーションを別のユーザーとして実行できます。通常、すべての Web サーバー プロセスは、デフォルトの Web サーバー ユーザー (多くの場合、wwwrun、www-data、apache、またはnobody ) として実行されます。suEXEC機能は、Web サーバー用のモジュールと、ラッパーとして機能するバイナリ実行可能ファイルで構成されています。suEXEC は Apache 1.2 で導入され、ほとんどのLinux ディストリビューションで提供されるデフォルトの Apache パッケージに含まれています。
クライアントがCGIを要求し、suEXECがアクティブになっている場合、suEXECバイナリが呼び出され、CGIスクリプトがラップされ、仮想ホストディレクティブで定義されたサーバープロセス(仮想ホスト)のユーザーアカウントで実行されます。[1]
さらに、suEXECは実行されたCGIに対して複数段階のチェックを実行し、サーバーのセキュリティを確保します(パスチェック、許可されたコマンドの制限などを含む)[2]
例
ユーザー「Alice」は、独自のpublic_html(共通 Web ルート ディレクトリ名) フォルダーにいくつかの Common Gateway Interface スクリプト ファイルを含む Web サイトを持っており、 からアクセスできますhttps://example.com/~alice。
ユーザー「Bob」は Alice の Web ページを表示するようになりましたが、そのためには Apache でこれらの CGI スクリプトの 1 つを実行する必要があります。
すべてのスクリプトを「wwwrun」として実行する代わりに (その結果、ファイルが「wwwrun」グループによって所有されている場合はすべてのスクリプトをそのグループに対して読み取りおよび実行可能にする必要があり、そうでない場合はすべてのユーザー/home/alice/public_htmlに対して読み取りおよび実行可能にする必要があります)、スクリプトは suEXEC を使用してラップされ、Alice のユーザー ID で実行されます。これにより、セキュリティが向上し、すべてのユーザーまたは「wwwrun」グループの全員がスクリプトを読み取りおよび実行できるようにする必要がなくなります (代わりに、Alice 自身だけがスクリプトを実行できる必要があります)。
参考文献
- ^ Miller, Chris (2012 年 9 月 26 日). 「PHP の導入: mod_php? CGI/suExec? FastCGI?」 Huffington Post . 2015 年2 月 26 日閲覧。
- ^ apache.org - suEXEC サポート
外部リンク
- apache.org - suEXEC サポート (Apache 2.4)
- apache.org - suEXEC サポート (Apache 1.3)
