1.なぜこのような現象がおこるのか、
2.この現象を回避し200 OKとする方法
を教えてください。
/var/www/html# rpm -qa | grep http
httpd-2.2.3-11.el5_1.centos.3
/var/www/html# touch a /root/b
/var/www/html# mv /root/b ./b ←別Dirでbを作成し移動。
/var/www/html# ls -l
-rw-r--r-- 1 root root 0 Jan 19 12:30 a
-rw-r--r-- 1 root root 0 Jan 19 12:30 b
/var/www/html# wget http://localhost/a
HTTP request sent, awaiting response... 200 OK
/var/www/html# wget http://localhost/b
HTTP request sent, awaiting response... 403 Forbidden
12:30:46 ERROR 403: Forbidden.
/var/www/html# getfacl a b
# file: a
# owner: root
# group: root
user::rw-
group::r--
other::r--
# file: b
# owner: root
# group: root
user::rw-
group::r--
other::r--
/var/www/html#
おそらくselinuxが原因だと思います.以下の2点を確認してください.
1) selinuxを無効にすると,正しく動作しないか?
root権限で
# setenforce 0
を実行し,permissiveモードに切り替えると一時的にselinuxを無効にできます.
無効にした状態で,同じ症状が発生するか確認してみてください.
2) selinuxのラベルは同じになっているでしょうか?
ls -scontext /var/www/html/a ls -scontext /var/www/html/b
これでラベルを確認してください.ラベルが異なる場合は,以下のコマンドでラベルを振り直せます
restorecon -R /var/www/html
selinux というものを知りませんでした。 pyopyopyoさんの (1), (2) ともにその通りの動作をしました。ありがとう。
# scontext の手前はハイフン二つですね。 :)