Apache 可以访问 Windows 共享,但不能访问其中的文件夹

Apache 可以访问 Windows 共享,但不能访问其中的文件夹

这是在 CentOS 7 上,
我在 /mnt/t 下映射了一个 Windows 共享文件夹
/mnt/t 符号链接到 /var/www/html/users。
以 root 身份登录时,我可以毫无问题地从 /var/www/html/user 链接访问共享文件夹和所有子文件夹。
我在 Windows 共享的根目录中有一个 index.html 文件,位于 /mnt/t/index.html。Apache
正确显示了 index.html 文件,所以我知道它可以访问 Windows 共享(这并没有完全起作用,需要编辑 httpd.conf)。Apache
不允许我访问 Windows 共享上顶部以下的任何文件夹,并显示“禁止访问,您无权访问...”错误消息。
错误日志显示“不允许符号链接或链接目标不可访问:/var/www/html/users”
我用来访问 Windows 共享的 Windows 帐户的用户名是“linux”。
我不明白为什么 Windows 会让 Apache(或用户“linux”)查看顶部目录中的文件,但不允许查看较低目录中的文件。 Windows 服务器对文件夹的限制并不比对文件的限制多。
我尝试了本论坛和其他论坛上找到的许多方法,但都没有成功。大多数方法都在下面显示的 httpd.conf 文件中。
欢迎提出任何建议。

回答问题:Apache 以 UID 48 运行。这是我用来映射 Windows 共享的 UID:

\\FWB-FILE-V01\Public /mnt/t cifs ip=10.168.1.32,用户, uid=48,rw,suid,iocharset=utf8,凭据=/root/.smbcredentials 0 0

我已经向 Windows 系统管理员询问了信息,我将发布他的答案。

以下是 httpd.conf (删除了注释):

服务器根目录“/etc/httpd”
收听 10.168.101.35:80
包括 conf.modules.d/*.conf
用户 apache
Apache 组
ServerAdmin root@localhost
服务器名称 10.168.101.35:80

<目录 />
    选项索引FollowSymLinks包括ExecCGI
    AllowOverride 无
    要求全部拒绝
</目录>

文件根目录“/var/www/html”

<目录 "/var/www">
    选项索引FollowSymLinks包括ExecCGI
    AllowOverride 无
    # 允许开放访问:
    要求所有已授予
</目录>

# 进一步放宽对默认文档根目录的访问:
<目录 "/var/www/html">
选项 全部
    AllowOverride 无
    命令允许、拒绝
    允许所有人
要求所有已授予
</目录>

<目录 "/var/www/html/users">
    选项索引FollowSymLinks包括ExecCGI
    AllowOverride 无
    命令允许、拒绝
    允许所有人
    # 允许开放访问:
    要求所有已授予
</目录>

<目录 "/var/www/html/users/*">
    选项索引FollowSymLinks包括ExecCGI
    AllowOverride 无
    命令允许、拒绝
    允许所有人
    # 允许开放访问:
    要求所有已授予
</目录>

<目录“/mnt/t”>
    选项索引FollowSymLinks包括ExecCGI
    AllowOverride 无
    命令允许、拒绝
    允许所有人
    # 允许开放访问:
    要求所有已授予
</目录>

<目录“/mnt/t/users”>
    选项索引FollowSymLinks包括ExecCGI
    AllowOverride 无
    命令允许、拒绝
    允许所有人
    # 允许开放访问:
    要求所有已授予
</目录>

注意:这不是完整的 httpd.conf 文件,只有顶部部分有我所做的更改。其余部分自安装以来没有改变。该机器上没有虚拟主机。

Windows 共享文件夹不包含任何符号链接。

当以“linux”身份登录时,我可以访问共享驱动器中的所有文件和文件夹。我无法以“apache”身份登录...

仍然没有进展:( 如能提供任何帮助,不胜感激!

截至 3 月 29 日,我这边没有新的回复,也没有新的结果。我快绝望了。
我尝试了一些与 SE Linux 相关的事情,但没有成功。SE Linux 已启用,我尝试过暂时禁用它,但没有任何效果。

相关内容