Apache は権限が設定されていてもシンボリックリンクをたどりません

Apache は権限が設定されていてもシンボリックリンクをたどりません

権限は問題ないように見え、FollowSymLinks がオンになっているにもかかわらず、Apache で Web ルート ディレクトリ外のシンボリック リンクをたどることができません。詳細は以下の通りです。

全世界で読み取り可能なテキスト ファイルが 2 つあります:/tmp/helloと です/var/www/html/hello。また、Webroot には、これらのファイルへのシンボリック リンクがあります。どちらも問題ないようです。

$ ll /tmp
drwxrwxrwt. 27 root   root       4096 Jul  8 13:55 ./
dr-xr-xr-x. 23 root   root       4096 Jul  4 23:24 ../
-rw-r--r--.  1 root   root          6 Jul  8 13:55 hello

$ ll /var/www/html
drwxr-xr-x. 3 root   root   4096 Jul  8 13:56 ./
drwxr-xr-x. 6 root   root   4096 Apr  4 12:57 ../
-rw-r--r--. 1 root   root     20 Jul  8 14:03 hello
lrwxrwxrwx. 1 root   root      5 Jul  8 14:04 link-local -> /var/www/html/hello
lrwxrwxrwx. 1 root   root     10 Jul  8 13:56 link-tmp -> /tmp/hello

$ cat /var/www/html/link-local 
/VAR/WWW/HTML/HELLO

$ cat /var/www/html/link-tmp 
/TMP/HELLO

Apache は Web ルートへのリンクをたどることができます:

$ curl http://localhost/link-local
/VAR/WWW/HTML/HELLO

しかし、Apache は次のシンボリックリンクをたどりません/tmp/:

$ curl http://localhost/link-tmp
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /hellolink on this server.</p>
<hr>
<address>Apache/2.2.15 (CentOS) Server at localhost Port 80</address>
</body></html>

これは CentOS 6 上です。http はユーザー apache、グループ apache として実行されます。

なぜこのようなことが起こるのでしょうか? どうすれば修正できますか?

答え1

はい、SELinux が原因のようです:

-Z スイッチは、ほとんどのユーティリティで SELinux セキュリティ コンテキストを表示するために機能します (例: 'ls -Z'、'ps axZ' など)。

$ ll -Z /var/www/html/hello
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/hello

$ ll -Z /tmp/hello
-rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 /tmp/hello

2 つのターゲット ファイルのタイプが異なる (httpd_sys_content_tuser_tmp_t) ため、アクセシビリティに違いが生じます。

centos.org の SELinux ページ-Zスイッチやその他多くのことについて説明します。

答え2

FollowSymlinks を .htaccess ファイル内または<Directory>ブロック内に設定しますか?

Apache 2.2 オプションドキュメントFollowSymlinks はこれらのコンテキストでのみ機能することを示唆しています - 関連する構成を投稿していただけますか?

(コメントポイントが足りないため回答として投稿します)

関連情報