私はファイルを持っています:
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をインストールし、FedoraDistroを使用しています。
私はこれを/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
Apacheユーザーをkuba
グループに追加しました。projects
は/var/www/html
ディレクトリのシンボリックリンクです。他のファイルは、ディレクトリであるシンボリックリンクでさえ、正常に機能しています。
また、/ homeでも各ディレクトリにkubaグループを設定しようとしましたが、機能しませんでした(すべてのディレクトリはすでにkuba
グループに属しています)
Apacheでシンボリックリンクファイルを開くには何を設定する必要がありますか?
他の方法がある理由でFedoraにインストールされているのでSeLinuxを無効にしたくありませんか?
audit2why
を使用して、アクセスが拒否された理由を確認できます。また、アクセスを許可するSELinux boolean が存在する場合もあります。
SELinuxブール値httpd_enable_homedirs
を使用すると、Apacheがホームディレクトリを読み取ることができます。この場合は十分です。 (ルートとして)setsebool -P httpd_enable_homedirs 1
を使用して有効にできます。
SELinuxポリシーを変更する必要がある場合は、 audit2allow
を使用して、アクセスを許可するポリシーモジュールを生成できます。
SELinuxルールは、Unixパーミッションの後にチェックされます。 SELinuxルールは、より厳密なアクセス制御ルールを追加するだけであり、既存のファイル権限の制限を緩和することはありません。
ApacheにはFollowSymLinksとSymLinksIfOwnerMatchoptions がありますシンボリックリンクの処理方法に影響します。デフォルトではFollowSymlinksが有効になっており、Apacheはシンボリックリンクをたどりますが、これらのオプションは構成ファイルの<Directory>
セクションまたは.htaccess
ファイルで変更できます。