故障排除技巧...

故障排除技巧...

我有一个运行 nginx 的 libvirt 虚拟机,其中挂载了一个共享文件系统,我想公开挂载的目录。nginx 似乎运行良好,我可以访问 /usr/share/nginx/html 中的基本本地文件和子目录。我有一个从挂载到默认 nginx 位置的符号链接,通过

ln -sf /mnt/h_drive/ss4/ /usr/share/nginx/html/

..我可以ss4从浏览器中看到目录,但是当我单击它时,我收到“403 Forbidden”,并在我的 /var/log/nginx/error.log 中看到以下内容

2017/10/18 17:52:16 [error] 30806#0: *1 opendir() "/usr/share/nginx/html/ss4" failed (13: Permission denied), client: xxx.xxx.xxx.xxx, server: _, request: "GET /opt/ss4/ HTTP/1.1", host: "example.com"

如果我禁用 selinux,setenforce 0我就可以访问所有内容。

我需要做什么才能访问此坐骑?

答案1

故障排除技巧...

以 root 身份安装

$yum 安装 setroubleshoot-服务器 -y

$aureport -a # 给出拒绝报告

$ausearch -m avc -ts recent#最近10分钟

您应该能够更新政策

$ sudo audit2allow -a

当运行上述报告时,您将会看到与您自己的情况类似的情况。

nginx system_u:system_r:httpd_t:s0 5 文件 getattr unconfined_u:object_r:puppet_etc_t:s0 被拒绝 616

创建策略

$audit2allow-a-M 读取

使新政策生效

$semodule-i 读取.pp

答案2

我最终偶然发现了以下解决方案:

semanage allow httpd_t nfs_t:dir read;

感谢@bell 提供的故障排除提示,我一定会在以后遇到问题时参考它们!

相关内容