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