You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache 2.4.54 WebDAV启用FollowSymLinks后符号链接在客户端不显示的问题排查请求

Apache 2.4.54 WebDAV启用FollowSymLinks后符号链接在客户端不显示的问题排查请求

我目前在Apache 2.4.54上搭建WebDAV服务,大部分功能都正常,但碰到一个棘手的问题:

我在/var/webdav目录下创建了一个指向/var/symstore的符号链接symstore,通过浏览器访问/webdav路径时能正常看到这个symstore目录,但用WinSCP、cadaver、Cyberduck或FileZilla这类WebDAV客户端连接/webdav共享时,这个symstore目录完全不显示。不过如果我在客户端里直接输入/webdav/symstore路径,是可以正常访问里面内容的,说明对应的Location配置是生效的——我只是希望客户端能在/webdav的目录列表里显示这个“文件夹”入口,不需要它实际跟随符号链接。

我已经在配置里设置了FollowSymLinks选项,甚至尝试过换成Directory指令,但都没达到预期效果。下面是我的详细配置、权限信息、客户端操作输出和日志内容,麻烦大家帮忙排查下问题:

当前Apache配置

LoadModule dav_module           modules/mod_dav.so

LoadModule dav_fs_module        modules/mod_dav_fs.so

LoadModule ldap_module          modules/mod_ldap.so

LoadModule authnz_ldap_module   modules/mod_authnz_ldap.so

LoadModule auth_digest_module   modules/mod_auth_digest.so

DocumentRoot "/var/webdav"

DavLockDB "/run/lock/apache/DavLock"

<AuthnProviderAlias ldap ldap-auth-basic-provider>
LDAPReferrals Off
AuthLDAPURL ${LDAP_URL} NONE
AuthLDAPBindDN ${LDAP_AUTH_BIND_DN}
AuthLDAPBindPassword ${LDAP_AUTH_BIND_DN_PASSWORD}
</AuthnProviderAlias>

<AuthzProviderAlias ldap-group ldap-group-auth-provider "${LDAP_GROUP_DN}">
AuthLDAPURL ${LDAP_URL} NONE
AuthLDAPBindDN ${LDAP_AUTH_BIND_DN}
AuthLDAPBindPassword ${LDAP_AUTH_BIND_DN_PASSWORD}
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 10
AuthLDAPGroupAttribute ${LDAP_GROUP_ATTR}
</AuthzProviderAlias>

<VirtualHost *:80>
LogLevel ${LOG_LEVEL}
ErrorLog /usr/local/apache2/logs/error.log
CustomLog /usr/local/apache2/logs/access.log combined

Alias "/webdav/" "/var/webdav/"
<Location "/webdav/">
Dav On
Options +Indexes +MultiViews +FollowSymLinks
IndexOptions +Charset=UTF-8 +FancyIndexing +FoldersFirst
AuthType Basic
AuthName "WebDAV LDAP Authentication"
AuthBasicProvider ldap-auth-basic-provider
<RequireAll>
Require ldap-group-auth-provider
</RequireAll>
</Location>

Alias "/webdav/symstore/" "/var/symstore/"
<Location "/webdav/symstore/">
Dav On
Options +Indexes +MultiViews +FollowSymLinks
AuthType Basic
AuthName "ByteLoch-Symstore"
AuthBasicProvider ldap-auth-basic-provider
<RequireAll>
Require ldap-group-auth-provider
Require method GET CONNECT OPTIONS PROPFIND HEAD
</RequireAll>
</Location>

Alias "/symstore/" "/var/symstore/"
<Location "/symstore/">
Dav On
Options +Indexes +MultiViews +FollowSymLinks
AuthType Digest
AuthName "ByteLoch-Symstore"
AuthUserFile /run/lock/apache/users.passwd
<RequireAny>
Require user symstore
</RequireAny>
</Location>

</VirtualHost>

符号链接及目标目录权限

# ls -ld /var/webdav/symstore
lrwxrwxrwx 1 www-data www-data 13 Jan  8 23:09 /var/webdav/symstore -> /var/symstore

# ls -ld /var/symstore
drwxr-xr-x 2 www-data www-data 4096 Jan  8 23:20 /var/symstore

cadaver客户端操作输出

# cadaver http://localhost/webdav/
Authentication required for WebDAV LDAP Authentication on server 'localhost':
Username: .redacted.
Password:
dav:/webdav/> ls
Listing collection `/webdav/': succeeded.
.htaccess                              0  Jan  9 01:11
compose.yaml                        2488  Jan  8 20:59
dav:/webdav/> cd symstore
dav:/webdav/symstore/> ls
Listing collection `/webdav/symstore/': succeeded.
.htaccess                              0  Jan  9 01:11
README.md                           1516  Jan  8 20:44

Apache access.log日志片段

172.20.0.1 - .redacted. [09/Jan/2023:00:13:49 +0000] "OPTIONS /webdav/symstore/ HTTP/1.1" 200 - "-" "WinSCP/5.21.3 neon/0.32.1"
172.20.0.1 - .redacted. [09/Jan/2023:00:13:49 +0000] "PROPFIND /webdav/symstore/ HTTP/1.1" 207 864 "-" "WinSCP/5.21.3 neon/0.32.1"
172.20.0.1 - .redacted. [09/Jan/2023:00:13:49 +0000] "PROPFIND /webdav/symstore/ HTTP/1.1" 207 3148 "-" "WinSCP/5.21.3 neon/0.32.1"
172.20.0.1 - .redacted. [09/Jan/2023:00:13:52 +0000] "PROPFIND /webdav/ HTTP/1.1" 207 855 "-" "WinSCP/5.21.3 neon/0.32.1"
172.20.0.1 - .redacted. [09/Jan/2023:00:13:52 +0000] "PROPFIND /webdav/ HTTP/1.1" 207 2359 "-" "WinSCP/5.21.3 neon/0.32.1"
172.20.0.1 - .redacted. [09/Jan/2023:00:14:15 +0000] "OPTIONS /webdav/ HTTP/1.1" 200 - "-" "cadaver/0.23.3 neon/0.30.2"
172.20.0.1 - .redacted. [09/Jan/2023:00:14:15 +0000] "PROPFIND /webdav/ HTTP/1.1" 207 686 "-" "cadaver/0.23.3 neon/0.30.2"
172.20.0.1 - .redacted. [09/Jan/2023:00:14:17 +0000] "PROPFIND /webdav/ HTTP/1.1" 207 1730 "-" "cadaver/0.23.3 neon/0.30.2"
172.20.0.1 - .redacted. [09/Jan/2023:00:14:22 +0000] "PROPFIND /webdav/symstore/ HTTP/1.1" 207 695 "-" "cadaver/0.23.3 neon/0.30.2"
172.20.0.1 - .redacted. [09/Jan/2023:00:14:23 +0000] "PROPFIND /webdav/symstore/ HTTP/1.1" 207 2288 "-" "cadaver/0.23.3 neon/0.30.2"
172.20.0.1 - .redacted. [09/Jan/2023:00:14:29 +0000] "PROPFIND /webdav/symstore/ HTTP/1.1" 207 2288 "-" "cadaver/0.23.3 neon/0.30.2"

目前错误日志里没有任何报错信息,如果需要更详细的日志,我可以调整LogLevel来获取。希望大家能帮我找出为什么WebDAV客户端看不到这个符号链接目录,以及怎么解决这个问题。

备注:内容来源于stack exchange,提问作者kibblewhite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 13:24:07