ファイルがあります:
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
kuba
Apacheユーザーをグループに追加しました。projects
ディレクトリにシンボリックリンクがあります。/var/www/html
他のファイル、さらにはディレクトリへのシンボリックリンクもうまく機能します。
また、kubaグループを/ homeまですべてのディレクトリに設定しようとしましたが、うまくいきませんでした(そしてすべてのディレクトリはすでにkuba
グループに属しています)。
Apacheにシンボリックリンクファイルを開くようにするには、何を設定する必要がありますか?
SeLinuxがFedoraにインストールされているので、無効にしたくありません。他の方法はありますか?
答え1
あなたはそれを使用することができますaudit2why
アクセスが拒否された理由とSELinuxが存在できるかどうかを確認してください。ブール値アクセスを許可するために存在します。
SELinux ブールは、httpd_enable_homedirs
Apache がホームディレクトリを読むことを許可し、あなたの場合に十分です。 (root)で有効にすることができますsetsebool -P httpd_enable_homedirs 1
。
SELinuxポリシーを変更する必要がある場合は、次のものを使用できます。audit2allow
アクセスを許可するポリシーモジュールを作成します。
SELinux ルールは Unix 権限を確認します。 SELinuxルールはより厳格なアクセス制御ルールを追加し、既存のファイル権限の制限を減らすことはありません。
ApacheシンボリックリンクをたどるそしてシンボリックリンクIfOwnerMatch オプションこれはシンボリックリンクの処理方法に影響します。基本的にシンボリックリンクをたどる有効にしてApacheはシンボリックリンクを尊重しますが、これらのオプションは<Directory>
設定ファイルまたはファイルセクションで.htaccess
変更できます。