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="<-" alt="<-" src="./images/left.gif" /></a></div> 23<div id="path"> 24<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> 25<div class="toplang"> 26<p><span>翻訳済み言語: </span><a href="./en/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | 27<a href="./fr/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 28<a href="./ja/suexec.html" title="Japanese"> ja </a> | 29<a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 30<a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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"><VirtualHost></a></code> で指定された <em>User</em> と 537 <em>Group</em> として実行されます。<code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></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"> en </a> | 615<a href="./fr/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 616<a href="./ja/suexec.html" title="Japanese"> ja </a> | 617<a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 618<a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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&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>