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

我已将 apache 用户添加到kuba组中,并且在目录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 规则仅添加更严格的访问控制规则,并且不会减少现有文件权限的限制。

阿帕奇有关注符号链接符号链接IfOwnerMatch 选项这会影响符号链接的处理方式。默认情况下关注符号链接启用并且 Apache 遵循符号链接,但可以在<Directory>配置文件或.htaccess文件的部分中更改这些选项。

相关内容