Apache 无法访问已挂载的 Samba 共享

Apache 无法访问已挂载的 Samba 共享

我在 CentOS 6.5 上运行 Apache 2.2,在访问已挂载的 Samba 共享时遇到了问题。

我的网络根目录是/var/www/html,并且我在根目录中创建了一个名为的文件夹intranet,并且我使用 fstab 中的以下行将共享挂载到该文件夹​​:

\\remote.server\share\intranet  /var/www/html/intranet  cifs    rw,auto,guest,uid=apache,gid=apache 0 0

我可以以 root 身份访问此共享并对其进行读取/写入。我还可以sudo -u apache读取和写入共享。就我在系统级别上所见,共享已完全按照预期安装。

但是,当我尝试通过以下方式访问共享时,http:\\myserver\intranet收到以下消息:

You don't have permission to access /intranet/ on this server.

但是,当我 时umount intranet,我能够成功访问带有 的普通文件夹intranethttp:\\myserver\intranet这说明我的httpd.conf.htaccess配置正确。

据我所知,问题在于,在某个地方,某些权限没有正确转换。我不确定我还能做些什么来解决这个问题。

编辑:我意识到我什么都没说,但我的 httpd.conf 和 .htaccess 文件也配置为FollowSymLinks。我已通过链接测试目录并访问它成功测试了这一点。

答案1

好的,我明白了。问题出在 SELinux 上。

该策略httpd_use_cifs已设置为关闭。我可以通过运行以下命令来查看:

getsebool -a | grep httpd

然后我看到了httpd_use_cifs --> off。剩下要做的就是更改策略:

setsebool -P httpd_use_cifs on

注意:该-P标志将策略写入磁盘,因此它们将在重新启动后继续存在。您可以省略 -P 标志,以暂时测试您的策略更改而不将其提交到磁盘。

答案2

对我来说最简单的事情就是作为 /var/www/html/ 的符号链接,例如 ln-s /path/to/share/ linkname。

相关内容