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.4</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/directives.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.4</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.4</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"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><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></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></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></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></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></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></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></h2>
561
562    <p><strong>注意!</strong>
563    この章は完全ではありません。この章の最新改訂版については、
564    Apache グループの<a href="http://httpd.apache.org/docs/2.4/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 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
620<script type="text/javascript"><!--//--><![CDATA[//><!--
621var comments_shortname = 'httpd';
622var comments_identifier = 'http://httpd.apache.org/docs/2.4/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 2022 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/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[//><!--
639if (typeof(prettyPrint) !== 'undefined') {
640    prettyPrint();
641}
642//--><!]]></script>
643</body></html>