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