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
相关产品推荐
相关产品推荐

