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
我已將 apache 使用者添加到
kuba
組中,並且projects
是/var/www/html
目錄中的符號連結。其他文件,甚至是目錄的符號連結,都可以正常工作。我也嘗試將 kuba 組設置為每個目錄,甚至 /home 但這不起作用(並且所有目錄都已經屬於
kuba
組)我需要配置什麼才能使 apache 打開符號連結文件?
我不想禁用 SeLinux,因為它安裝在 Fedora 上是有原因的,還有其他方法嗎?
您可以使用它
audit2why
來找出拒絕訪問的原因,以及是否存在允許訪問的 SELinux布爾值。SELinux boolean
httpd_enable_homedirs
允許 Apache 讀取主目錄,在您的情況下應該足夠了。您可以使用 (as root) 啟用它setsebool -P httpd_enable_homedirs 1
。如果您需要更改 SELinux 策略,可以使用
audit2allow
生成策略模組以允許訪問。SELinux 規則在 Unix 權限後檢查。SELinux 規則只會添加更嚴格的訪問控制規則,不會降低現有文件權限的限制。
Apache 有FollowSymLinks和SymLinksIfOwnerMatch 選項,它們會影響符號連結的處理方式。預設情況下,啟用FollowSymlinks並且 Apache 遵循符號連結,但這些選項可以在
<Directory>
配置文件的部分或.htaccess
文件中進行更改。