1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>suEXEC サポート - Apache HTTP サーバ</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body id="manual-page"><div id="page-header">
17<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p>
18<p class="apache">Apache HTTP サーバ バージョン 2.4</p>
19<img alt="" src="/images/feather.gif" /></div>
20<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="./">バージョン 2.4</a></div><div id="page-content"><div id="preamble"><h1>suEXEC サポート</h1>
23<div class="toplang">
24<p><span>翻訳済み言語: </span><a href="/en/suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25<a href="/fr/suexec.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
26<a href="/ja/suexec.html" title="Japanese">&nbsp;ja&nbsp;</a> |
27<a href="/ko/suexec.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28<a href="/tr/suexec.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
29</div>
30<div class="outofdate">この日本語訳はすでに古くなっている
31            可能性があります。
32            最近更新された内容を見るには英語版をご覧下さい。
33        </div>
34
35    <p><strong>suEXEC</strong>
36    機能により、Apache ユーザは Web サーバを実行しているユーザ ID とは
37    異なるユーザ ID で <strong>CGI</strong> プログラムや <strong>SSI</strong> 
38    プログラムを実行することができます。CGI プログラムまたは SSI
39    プログラムを実行する場合、通常は web サーバと同じユーザで実行されます。
40    </p>
41
42    <p>適切に使用すると、この機能によりユーザが個別の CGI
43    や SSI プログラムを開発し実行することで生じるセキュリティ上の危険を、
44    かなり減らすことができます。しかし、suEXEC の設定が不適切だと、
45    多くの問題が生じ、あなたのコンピュータに新しいセキュリティホールを
46    作ってしまう可能性があります。あなたが <em>setuid root</em>
47    されたプログラムと、それらから生じるセキュリティ上の問題の管理に
48    詳しくないようなら、suEXEC の使用を検討しないように強く推奨します。
49    </p>
50  </div>
51<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#before">始める前に</a></li>
52<li><img alt="" src="/images/down.gif" /> <a href="#model">suEXEC セキュリティモデル</a></li>
53<li><img alt="" src="/images/down.gif" /> <a href="#install">suEXEC
54    の設定とインストール</a></li>
55<li><img alt="" src="/images/down.gif" /> <a href="#enable">suEXEC
56    の有効化と無効化</a></li>
57<li><img alt="" src="/images/down.gif" /> <a href="#usage">suEXEC の使用</a></li>
58<li><img alt="" src="/images/down.gif" /> <a href="#debug">suEXEC のデバッグ</a></li>
59<li><img alt="" src="/images/down.gif" /> <a href="#jabberwock">とかげに注意: 警告と事例</a></li>
60</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
61<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
62<div class="section">
63<h2><a name="before" id="before">始める前に</a></h2>
64
65    <p>この文書の先頭に飛ぶ前に、Apache
66    グループとこの文書での仮定を知っておくべきでしょう。
67    </p>
68
69    <p>第 1 に、あなたが <strong>setuid</strong> と
70    <strong>setgid</strong> 操作が可能な UNIX
71    由来のオペレーティングシステムを使っていることを想定しています。
72    これは、すべてのコマンド例にあてはまります。
73    その他のプラットホームでは、もし suEXEC
74    がサポートされていたとしても設定は異なるかもしれません。</p>
75
76    <p>第 2 に、あなたが使用中のコンピュータの
77    セキュリティに関する基本的な概念と、それらの管理について詳しいことを
78    想定しています。これは、<strong>setuid/setgid</strong>
79    操作、あなたのシステム上でのその操作による様々な効果、
80    セキュリティレベルについてあなたが理解しているということを含みます。
81    </p>
82
83    <p>第 3 に、<strong>改造されていない</strong> suEXEC
84    コードの使用を想定しています。suEXEC のコードは、
85    多くのベータテスタだけでなく、開発者によっても注意深く精査され
86    テストされています。それらの注意により、簡潔で信頼できる安全な
87    コードの基盤が保証されます。このコードを改変することで、
88    予期されない問題や新しいセキュリティ上の危険が生じることがあります。
89    セキュリティプログラミングの詳細に通じていて、
90    今後の検討のために成果を Apache
91    グループと共有しようと思うのでなければ、suEXEC
92    コードは変えないことを <strong>強く</strong>推奨します。</p>
93
94    <p>第 4 に、これが最後ですが、suEXEC を Apache
95    のデフォルトインストールには<strong>含めない</strong>ことが
96    Apache グループで決定されています。これは、suEXEC
97    の設定には管理者の詳細にわたる慎重な注意が必要だからです。
98    suEXEC の様々な設定について検討が終われば、管理者は suEXEC
99    を通常のインストール方法でインストールすることができます。
100    これらの設定値は、suEXEC
101    機能の使用中にシステムセキュリティを適切に保つために、
102    管理者によって慎重に決定され指定されることが必要です。
103    この詳細な手順により、Apache グループは、suEXEC
104    のインストールについて、注意深く十分に検討してそれを使用することを
105    決定した場合に限っていただきたいと考えています。
106    </p>
107
108    <p>それでも進みますか? よろしい。では、先へ進みましょう!</p>
109  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
110<div class="section">
111<h2><a name="model" id="model">suEXEC セキュリティモデル</a></h2>
112
113    <p>suEXEC の設定とインストールを始める前に、
114    まず実装しようとしているセキュリティモデルについて論じておきます。
115    それには、suEXEC の内部で行なわれていること、
116    システムのセキュリティを保証するために警告されることを
117    よく理解しておいた方がよいでしょう。</p>
118
119    <p><strong>suEXEC</strong> は、Apache web
120    サーバから呼び出される setuid された "wrapper"
121    プログラムが基本となっています。設計した CGI、または SSI
122    プログラムへの HTTP リクエストがあると、この wrapper
123    が呼び出されます。このようなリクエストがあると、Apache
124    はそのプログラムが実行される際のプログラム名とユーザ ID とグループ
125    ID を指定して suEXEC wrapper を実行します。
126    </p>
127
128    <p>それから、wrapper は成功または失敗を決定するため
129    以下の処理を行ないます。これらの状態のうち一つでも失敗した場合、
130    プログラムは失敗をログに記録してエラーで終了します。
131    そうでなければ、後の処理が続けられます。</p>
132
133    <ol>
134      <li>
135        <strong>wrapper
136        を実行しているユーザはこのシステムの正当なユーザか?</strong>
137
138        <p class="indent">
139          これは、wrapper を実行しているユーザが
140          本当にシステムの利用者であることを保証するためです。
141        </p>
142      </li>
143
144
145     <li>
146        <strong>wrapper が適切な数の引数で呼び出されたか?</strong>
147
148
149        <p class="indent">
150          wrapper は適切な数の引数が与えられた場合にのみ実行されます。
151          適切な引数のフォーマットは Apache Web サーバに解釈されます。
152          適切な数の引数を受け取らなければ、攻撃をされたか
153          あなたの Apache バイナリの suEXEC の部分が
154          どこかおかしい可能性があります。
155        </p>
156      </li>
157
158      <li>
159        <strong>この正当なユーザは wrapper
160        の実行を許可されているか?</strong>
161
162        <p class="indent">
163          このユーザは wrapper 実行を許可されたユーザですか?
164          ただ一人のユーザ (Apache ユーザ) だけが、
165          このプログラムの実行を許可されます。
166        </p>
167      </li>
168
169      <li>
170        <strong>対象の CGI, SSI プログラムが安全でない階層の参照をしているか?
171        </strong>
172
173        <p class="indent">
174          対象の CGI, SSI プログラムが '/' から始まる、または
175          '..' による参照を行なっていますか? これらは許可されません。
176          対象のプログラムは suEXEC のドキュメントルート
177          (下記の <code>--with-suexec-docroot=<em>DIR</em></code> を参照)
178          内に存在しなければなりません。
179        </p>
180      </li>
181
182      <li>
183        <strong>対象となるユーザ名は正当なものか?</strong>
184
185        <p class="indent">
186          対象となるユーザ名は存在していますか?
187        </p>
188      </li>
189
190      <li>
191        <strong>対象となるグループ名は正当なものか?</strong>
192
193        <p class="indent">
194          対象となるグループ名は存在していますか?
195        </p>
196      </li>
197
198      <li>
199        <strong>目的のユーザはスーパーユーザでは<em>ない</em>か?
200        </strong>
201
202        <p class="indent">
203          今のところ、suEXEC は <code><em>root</em></code> による CGI/SSI
204          プログラムの実行を許可していません。
205        </p>
206      </li>
207
208      <li>
209        <strong>対象となるユーザ ID は、最小の ID
210        番号よりも<em>大きい</em>か?  </strong>
211
212        <p class="indent">
213          最小ユーザ ID 番号は設定時に指定されます。これは、
214          CGI/SSI プログラム実行を許可されるユーザ ID
215          のとりうる最小値です。これは
216          "system" 用のアカウントを閉め出すのに有効です。
217        </p>
218      </li>
219
220      <li>
221        <strong>対象となるグループはスーパーユーザのグループでは
222        <em>ない</em>か?</strong>
223
224        <p class="indent">
225         今のところ、suEXEC は 'root' グループによる CGI/SSI
226         プログラムの実行を許可していません。
227        </p>
228      </li>
229
230      <li>
231        <strong>対象となるグループ ID は最小の ID
232          番号よりも<em>大きい</em>か?</strong>
233
234        <p class="indent">
235          最小グループ ID 番号は設定時に指定されます。これは、
236          CGI/SSI プログラム実行を許可されるグループ
237          ID のとりうる最小値です。
238          これは "system" 用のグループを閉め出すのに有効です。
239        </p>
240      </li>
241
242      <li>
243        <strong>wrapper が正常に対象となるユーザとグループになれるか?
244        </strong>
245
246        <p class="indent">
247          ここで、setuid と setgid
248          の起動によりプログラムは対象となるユーザとグループになります。
249          グループアクセスリストは、
250          ユーザが属しているすべてのグループで初期化されます。
251        </p>
252      </li>
253
254      <li>
255        <strong>CGI/SSI プログラムが置かれているディレクトリに移動
256        (change directory) できるか?</strong>
257
258        <p class="indent">
259          ディレクトリが存在しないなら、そのファイルも存在しないかもしれません。
260          ディレクトリに移動できないのであれば、おそらく存在もしないでしょう。
261        </p>
262      </li>
263
264      <li>
265        <strong>ディレクトリが Apache のドキュメントツリー内にあるか?
266        </strong>
267
268        <p class="indent">
269          リクエストがサーバ内のものであれば、
270          要求されたディレクトリが suEXEC のドキュメントルート配下にありますか?
271          リクエストが UserDir のものであれば、要求されたディレクトリが suEXEC 
272          のユーザのドキュメントルート配下にありますか?
273          (<a href="#install">suEXEC 設定オプション</a> 参照)
274        </p>
275      </li>
276
277      <li>
278        <strong>ディレクトリを他のユーザが書き込めるようになって
279        <em>いない</em>か?</strong>
280
281        <p class="indent">
282          ディレクトリを他ユーザに開放しないようにします。
283          所有ユーザだけがこのディレクトリの内容を改変できるようにします。
284        </p>
285      </li>
286
287
288      <li>
289        <strong>対象となる CGI/SSI プログラムは存在するか?</strong>
290
291        <p class="indent">
292          存在しなければ実行できません。
293        </p>
294      </li>
295
296      <li>
297        <strong>対象となる CGI/SSI プログラムファイルが他アカウントから
298        書き込めるようになって<em>いない</em>か?</strong>
299
300        <p class="indent">
301          所有者以外には CGI/SSI プログラムを変更する権限は与えられません。
302        </p>
303      </li>
304
305
306      <li>
307        <strong>対象となる CGI/SSI プログラムが setuid または setgid 
308        されて<em>いない</em>か?</strong>
309
310        <p class="indent">
311          UID/GID を再度変更してのプログラム実行はしません
312        </p>
313      </li>
314
315
316      <li>
317        <strong>対象となるユーザ/グループがプログラムの
318        ユーザ/グループと同じか?</strong>
319
320        <p class="indent">
321          ユーザがそのファイルの所有者ですか?
322        </p>
323      </li>
324
325      <li>
326        <strong>安全な動作を保証するための環境変数クリアが可能か?
327        </strong>
328
329        <p class="indent">
330          suEXEC は、安全な環境変数のリスト
331          (これらは設定時に作成されます) 内の変数として渡される安全な
332          PATH 変数 (設定時に指定されます) を設定することで、
333          プロセスの環境変数をクリアします。
334        </p>
335      </li>
336
337
338      <li>
339        <strong>対象となる CGI/SSI プログラムを exec して実行できるか?</strong>
340
341
342        <p class="indent">
343          ここで suEXEC が終了し、対象となるプログラムが開始されます。
344        </p>
345      </li>
346    </ol>
347
348    <p>ここまでが suEXEC の wrapper
349    におけるセキュリティモデルの標準的な動作です。もう少し厳重に
350    CGI/SSI 設計についての新しい制限や規定を取り入れることもできますが、
351    suEXEC はセキュリティに注意して慎重に少しずつ開発されてきました。
352    </p>
353
354    <p>このセキュリティモデルを用いて
355    サーバ設定時にどのように許すことを制限するか、また、suEXEC
356    を適切に設定するとどのようなセキュリティ上の危険を避けられるかに
357    関するより詳しい情報については、<a href="#jabberwock">"とかげに注意"
358    (Beware the Jabberwock)</a> の章を参照してください。
359    </p>
360  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
361<div class="section">
362<h2><a name="install" id="install">suEXEC
363    の設定とインストール</a></h2>
364
365    <p>ここから楽しくなります。</p>
366
367    <p><strong>suEXEC
368    設定オプション</strong><br />
369    </p>
370
371    <dl>
372      <dt><code>--enable-suexec</code></dt>
373
374      <dd>このオプションは、デフォルトではインストールされず、
375      有効にはならない suEXEC 機能を有効にします。
376      suEXEC を使うように APACI に要求するには、<code>--enable-suexec</code>
377      オプションにあわせて少なくとも一つは <code>--with-suexec-xxxxx</code>
378      オプションが指定されなければなりません。</dd>
379
380      <dt><code>--with-suexec-bin=<em>PATH</em></code></dt>
381
382      <dd>セキュリティ上の理由により、<code>suexec</code> バイナリのパスはサーバに
383      ハードコードされている必要があります。デフォルトのパスを
384      変えたいときはこのオプションを使ってください。<em>例えば</em>、
385      <code>--with-suexec-bin=/usr/sbin/suexec</code> のように。</dd>
386
387      <dt><code>--with-suexec-caller=<em>UID</em></code></dt>
388
389      <dd>Apache を通常動作させる<a href="mod/mpm_common.html#user">ユーザ名</a>を指定します。
390      このユーザだけが suexec の実行を許可されたユーザになります。</dd>
391
392      <dt><code>--with-suexec-userdir=<em>DIR</em></code></dt>
393
394      <dd>suEXEC がアクセスを許されるユーザホームディレクトリ配下の
395      サブディレクトリを指定します。
396      このディレクトリ以下の全実行ファイルは、"安全な"プログラムになるよう、
397      suEXEC がそのユーザとして実行できるようにします。
398      "単純な" UserDir ディレクティブを使っている場合 
399      (すなわち "*" を含まないもの)、これと同じ値を設定すべきです。
400      Userdir ディレクティブがそのユーザのパスワードファイル内の
401      ホームディレクトリと同じ場所を指していなければ、
402      suEXEC は適切に動作しません。デフォルトは "public_html" です。
403      <br />
404      各 UserDir が異なった仮想ホストを設定している場合、
405      それらを全て一つの親ディレクトリに含めて、
406      その親ディレクトリの名前をここで指定する必要があります。
407      <strong>このように指定されなければ "~userdir" cgi
408      へのリクエストが動作しません。</strong></dd>
409
410      <dt><code>--with-suexec-docroot=<em>DIR</em></code></dt>
411
412      <dd>Apache のドキュメントルートを設定します。これが suEXEC
413      の動作で使用する唯一のディレクトリ階層になります (UserDir
414      の指定は別)。デフォルトでは <code>--datedir</code> に "/htdocs"
415      というサフィックスをつけたものです。
416      "<code>--datadir=/home/apache</code>" として設定すると、
417      suEXEC wrapper にとって "/home/apache/htdocs"
418      がドキュメントルートとして使われます。</dd>
419
420      <dt><code>--with-suexec-uidmin=<em>UID</em></code></dt>
421
422      <dd>suEXEC の対象ユーザとして許される UID の最小値を指定します。
423      大抵のシステムでは 500 か 100 が一般的です。
424      デフォルト値は 100 です。</dd>
425
426      <dt><code>--with-suexec-gidmin=<em>GID</em></code></dt>
427
428      <dd>suEXEC の対象グループとして許される GID
429      の最小値を指定します。大抵のシステムでは 100 が一般的なので、
430      デフォルト値としても 100 が使われています。</dd>
431
432      <dt><code>--with-suexec-logfile=<em>FILE</em></code></dt>
433
434      <dd>suEXEC の処理とエラーが記録されるファイル名を指定します。
435      (監査やデバッグ目的に有用)
436      デフォルトではログファイルは "suexec_log" という名前で、
437      標準のログファイルディレクトリ (<code>--logfiledir</code>) に置かれます。
438      </dd>
439
440      <dt><code>--with-suexec-safepath=<em>PATH</em></code></dt>
441
442      <dd>CGI 実行ファイルに渡される安全な PATH 環境変数です。
443      デフォルト値は "/usr/local/bin:/usr/bin:/bin" です。
444      </dd>
445    </dl>
446
447    <p><strong>suEXEC wrapper
448    のコンパイルとインストール</strong><br />
449    <code>--enable-suexec</code> オプションで suEXEC 機能を有効にすると、
450    "make" コマンドを実行した時に <code>suexec</code> のバイナリ (Apache 自体も)
451    が自動的に作成されます。
452    <br />
453    すべての構成要素が作成されると、それらのインストールには
454    <code>make install</code> コマンドが実行できます。バイナリイメージの <code>suexec</code>
455    は <code>--sbindir</code> オプションで指定されたディレクトリにインストールされます。
456    デフォルトの場所は "/usr/local/apache/bin/suexec" です。<br />
457    インストール時には <strong><em>root</em></strong>
458    権限が必要なので注意してください。wrapper がユーザ ID
459    を設定するために、所有者 <code><em>root</em></code>
460    でのセットユーザ ID
461    ビットをそのファイルのモードに設定しなければなりません。
462    </p>
463
464    <p><strong>安全なパーミッションを設定する</strong><br />
465    suEXEC ラッパーは、<code>--with-suexec-caller</code> <code class="program"><a href="/programs/configure.html">configure</a></code> 
466    オプションで指定した正しいユーザで起動されていることを確認しますが、
467    システム上でこのチェックが行なわれる前に、
468    suEXEC が呼ぶシステムやライブラリが脆弱である可能性は残ります。対抗策として、
469    一般に良い習慣ともされいますが、
470    ファイルシステムパーミッションを使って
471    Apache の実行時のグループのみが suEXEC を実行できるように
472    するのが良いでしょう。</p>
473
474    <p>たとえば、次のようにサーバが設定されていたとします。</p>
475
476<div class="example"><p><code>
477    User www<br />
478    Group webgroup<br />
479</code></p></div>
480
481    <p><code class="program"><a href="/programs/suexec.html">suexec</a></code> が "/usr/local/apache2/bin/suexec" 
482    にインストールされていた場合、次のように設定する必要があります。</p>
483
484<div class="example"><p><code>
485    chgrp webgroup /usr/local/apache2/bin/suexec<br />
486    chmod 4750 /usr/local/apache2/bin/suexec<br />
487</code></p></div>
488
489    <p>これで Apache が実行されるグループのみが 
490    suEXEC ラッパーを実行できるということを
491    確証します。</p>
492  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
493<div class="section">
494<h2><a name="enable" id="enable">suEXEC
495    の有効化と無効化</a></h2>
496
497    <p>起動時に、Apache は <code>--sbindir</code>
498    オプションで設定されたディレクトリで
499    <code>suexec</code> を探します
500    (デフォルトは "/usr/local/apache/sbin/suexec") 。
501    適切に設定された suEXEC がみつかると、
502    エラーログに以下のメッセージが出力されます。</p>
503
504<div class="example"><p><code>
505    [notice] suEXEC mechanism enabled (wrapper: <var>/path/to/suexec</var>)
506</code></p></div>
507
508    <p>サーバ起動時にこのメッセージが出ない場合、
509    大抵はサーバが想定した場所で wrapper プログラムが見つからなかったか、
510    <em>setuid root</em> としてインストールされていないかです。</p>
511
512    <p>suEXEC の仕組みを使用するのが初めてで、Apache が既に動作中であれば、
513    Apache を kill して、再起動しなければなりません。HUP シグナルや
514    USR1 シグナルによる単純な再起動では不十分です。</p>
515    <p>suEXEC を無効にする場合は、<code>suexec</code> ファイルを削除してから
516    Apache を kill して再起動します。
517    </p>
518  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
519<div class="section">
520<h2><a name="usage" id="usage">suEXEC の使用</a></h2>
521
522    <p>CGI プログラムへのリクエストが suEXEC ラッパーを呼ぶのは、
523    <code class="directive"><a href="/mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code> ディレクティブを
524    含むバーチャルホストへのリクエストか、<code class="module"><a href="/mod/mod_userdir.html">mod_userdir</a></code> により
525    処理されたリクエストの場合に限ります。</p>
526
527    <p><strong>仮想ホスト:</strong><br />
528    suEXEC wrapper の使い方として、
529    <code class="directive"><a href="/mod/core.html#virtualhost">VirtualHost</a></code> 設定での
530    <code class="directive"><a href="/mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code>
531    ディレクティブを通したものがあります。
532    このディレクティブをメインサーバのユーザ ID
533    と異なるものにすると、CGI リソースへのすべてのリクエストは、その
534    <code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> で指定された <em>User</em> と
535    <em>Group</em> として実行されます。<code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
536    でこのディレクティブが指定されていない場合、
537    メインサーバのユーザ ID が想定されます。</p>
538
539    <p><strong>ユーザディレクトリ:</strong><br />
540    <code class="module"><a href="/mod/mod_userdir.html">mod_userdir</a></code> により処理されたリクエストは
541    リクエストされたユーザディレクトリのユーザ ID で CGI プログラムを
542    実行するために suEXEC ラッパーを呼びます。
543    この機能を動作させるために必要なことは、CGI
544    をそのユーザで実行できること、そのスクリプトが上記の<a href="#model">セキュリティ検査</a>をパスできることです。
545    <a href="#install">コンパイル
546     時のオプション</a> <code>--with-suexec-userdir</code> も参照してください。</p>
547  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
548<div class="section">
549<h2><a name="debug" id="debug">suEXEC のデバッグ</a></h2>
550
551    <p>suEXEC wrapper は、上記で述べた <code>--with-suexec-logfile</code>
552    オプションで指定されたファイルにログ情報を記録します。
553    wrapper を適切に設定、インストールできていると思う場合、
554    どこで迷っているか見ようとするならこのログとサーバの
555    エラーログを見るとよいでしょう。</p>
556  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
557<div class="section">
558<h2><a name="jabberwock" id="jabberwock">とかげに注意: 警告と事例</a></h2>
559
560    <p><strong>注意!</strong>
561    この章は完全ではありません。この章の最新改訂版については、
562    Apache グループの<a href="http://httpd.apache.org/docs/2.4/suexec.html">
563    オンラインドキュメント</a>版を参照してください。
564    </p>
565
566    <p>サーバの設定に制限をもうける wrapper について、
567    いくつか興味深い点があります。suEXEC に関する "バグ"
568    を報告する前にこれらを確認してください。</p>
569
570    <ul>
571      <li><strong>suEXEC の興味深い点</strong></li>
572
573      <li>階層構造の制限
574
575
576        <p class="indent">
577          セキュリティと効率の理由から、<code>suEXEC</code> の全てのリクエストは
578          仮想ホストへのリクエストにおける最上位のドキュメントルート内か、
579          ユーザディレクトリへのリクエストにおける個々のユーザの最上位の
580          ドキュメントルート内に残らなければなりません。
581          例えば、四つの仮想ホストを設定している場合、
582          仮想ホストの suEXEC に有利なように、メインの Apache
583          ドキュメント階層の外側に全ての仮想ホストのドキュメントルートを
584          構築する必要があります。(例は後日記載)
585        </p>
586      </li>
587
588      <li>suEXEC の PATH 環境変数
589
590
591        <p class="indent">
592          これを変更するのは危険です。この指定に含まれる各パスが
593          <strong>信頼できる</strong>
594          ディレクトリであることを確認してください。
595          世界からのアクセスにより、誰かがホスト上でトロイの木馬
596          を実行できるようにはしたくないでしょう。
597        </p>
598      </li>
599
600      <li>suEXEC コードの改造
601
602
603        <p class="indent">
604          繰り返しますが、何をやろうとしているか把握せずにこれをやると
605          <strong>大きな問題</strong>を引き起こしかねません。
606          可能な限り避けてください。
607        </p>
608      </li>
609    </ul>
610</div></div>
611<div class="bottomlang">
612<p><span>翻訳済み言語: </span><a href="/en/suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
613<a href="/fr/suexec.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
614<a href="/ja/suexec.html" title="Japanese">&nbsp;ja&nbsp;</a> |
615<a href="/ko/suexec.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
616<a href="/tr/suexec.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
617</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
618<script type="text/javascript"><!--//--><![CDATA[//><!--
619var comments_shortname = 'httpd';
620var comments_identifier = 'http://httpd.apache.org/docs/2.4/suexec.html';
621(function(w, d) {
622    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
623        d.write('<div id="comments_thread"><\/div>');
624        var s = d.createElement('script');
625        s.type = 'text/javascript';
626        s.async = true;
627        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
628        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
629    }
630    else { 
631        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
632    }
633})(window, document);
634//--><!]]></script></div><div id="footer">
635<p class="apache">Copyright 2014 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
636<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
637if (typeof(prettyPrint) !== 'undefined') {
638    prettyPrint();
639}
640//--><!]]></script>
641</body></html>