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