Apacheはシンボリックリンクファイルを開くことができません。

Apacheはシンボリックリンクファイルを開くことができません。

ファイルがあります:

js/jquery.terminal-src.js: symbolic link to ../../repo/js/jquery.terminal-src.js

ブラウザを使用して開こうとすると、次のようになります。

http://localhost/projects/jcubic/terminal/test/js/jquery.terminal-src.js

403エラー禁止が表示されます。ファイルに権限があります。

-rw-rw----. 1 kuba kuba 291604 08-27 22:20 ../../repo/js/jquery.terminal-src.js

apache2はファイルを開くことができません。 SeLinuxをインストールし、Fedora Distroを使用しています。

これを入れました。/var/log/audit/audit.log

type=AVC msg=audit(1503868547.512:625): avc:  denied  { getattr } for  
pid=519 comm="httpd" path="/home/kuba/projects/jcubic/terminal/test/css/jquery.
terminal-src.css" dev="sda3" ino=26608576 scontext=system_u:system_r:
httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=lnk_file
permissive=0

kubaApacheユーザーをグループに追加しました。projectsディレクトリにシンボリックリンクがあります。/var/www/html他のファイル、さらにはディレクトリへのシンボリックリンクもうまく機能します。

また、kubaグループを/ homeまですべてのディレクトリに設定しようとしましたが、うまくいきませんでした(そしてすべてのディレクトリはすでにkubaグループに属しています)。

Apacheにシンボリックリンクファイルを開くようにするには、何を設定する必要がありますか?

SeLinuxがFedoraにインストールされているので、無効にしたくありません。他の方法はありますか?

答え1

あなたはそれを使用することができますaudit2whyアクセスが拒否された理由とSELinuxが存在できるかどうかを確認してください。ブール値アクセスを許可するために存在します。

SELinux ブールは、httpd_enable_homedirsApache がホームディレクトリを読むことを許可し、あなたの場合に十分です。 (root)で有効にすることができますsetsebool -P httpd_enable_homedirs 1

SELinuxポリシーを変更する必要がある場合は、次のものを使用できます。audit2allowアクセスを許可するポリシーモジュールを作成します。

SELinux ルールは Unix 権限を確認します。 SELinuxルールはより厳格なアクセス制御ルールを追加し、既存のファイル権限の制限を減らすことはありません。

ApacheシンボリックリンクをたどるそしてシンボリックリンクIfOwnerMatch オプションこれはシンボリックリンクの処理方法に影響します。基本的にシンボリックリンクをたどる有効にしてApacheはシンボリックリンクを尊重しますが、これらのオプションは<Directory>設定ファイルまたはファイルセクションで.htaccess変更できます。

関連情報