職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

謎の403

Apacheで割と本気でハマったのでメモ。

症状

特定のディレクトリ、またはその配下の任意のディレクトリ/ファイルにアクセスしようとすると、403 Forbidden が返される。

再現手順

  1. rootになる。

    $ su -

  2. ~(rootユーザのホームディレクトリ)にディレクトリを作り、その中にテスト用のファイルを配置する。

    # mkdir ~/test/
    # touch ~/test/index.html

  3. 手順2で作成したディレクトリを、ApacheのDocumentRoot配下へ移動する。
    ※DocumentRootは上手く読み替えて下さい。

    # mv ~/test/ /var/www/html/

  4. Webブラウザで当該ディレクトリにアクセスすると、403が返される

この手順なら大丈夫:その1

  1. rootになる。

    $ su -

  2. ~(rootユーザのホームディレクトリ)にディレクトリを作り、その中にテスト用のファイルを配置する。

    # mkdir ~/test/
    # touch ~/test/index.html

  3. 手順2で作成したディレクトリを、ApacheのDocumentRoot配下へコピーする。
    ※DocumentRootは上手く読み替えて下さい。

    # cp -R ~/test/ /var/www/html/

  4. Webブラウザで当該ディレクトリにアクセスすると、正常に20xが返される。

この手順なら大丈夫:その2

  1. rootになる。

    $ su -

  2. ApacheのDocumentRoot配下にディレクトリを作り、その中にテスト用のファイルを配置する。

    # cd /var/www/html/
    # mkdir ./test
    # touch ./test/index.html

  3. Webブラウザで当該ディレクトリにアクセスすると、正常に20xが返される。

なぜ?

なぜ??

念のため補足

  • httpd.conf や .htaccess などに変なのを仕込んでいるということはありません(5回以上目視確認してます)。
  • 権限の設定を誤っているなんてことも、ありません(たぶん20回くらい目視確認してます)。
  • えーマジ su - ?! su - が許されるのは小学生までだよねー キモーイ キャハハハハハハ(AA略 はい、すみません。。

環境情報

Apache 2.2.15 on CentOS 6