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