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