svn apache 防止匿名读取 dav_svn.authz

svn apache 防止匿名读取 dav_svn.authz

因此,我浏览了大约十几个其他帖子,并阅读了http://svnbook.red-bean.com/en/1.8/svn.serverconfig.pathbasedauthz.html 我觉得我已经尝试了所有方法,但要么是可以匿名读取存储库 URL,要么是无法通过身份验证的用户进行读写访问。我肯定做了一些蠢事。

dav_svn.authz 文件:

    [MyRepository:/]
    $anonymous =
    name = rw
    * = r
    
    [/]
    * = r
    $anonymous =
    $authenticated = rw
    name = rw

我的网站文件:

 <Location /repourl>
            DAV svn
            SVNParentPath /var/lib/svn
            AuthType Basic
            AuthName "Subversion Repository"
            AuthUserFile /etc/apache2/dav_svn.passwd
            <IfModule mod_authz_svn.c>
                    AuthzSVNAccessFile /etc/apache2/dav_svn.authz
            </IfModule>
            <LimitExcept GET PROPFIND OPTIONS REPORT>
                    Require valid-user
            </LimitExcept>
    </Location>

总的来说,如果没有 * = r,我的经过身份验证的用户将无法读取或写入,但使用 * = r 则可以进行匿名访问,即我可以导航到 URL 并查看它。第一个问题是,即使 * = r 先出现,匿名用户也无法访问存储库的根目录“/”,但可以访问“MyRepository”,即使他们具有相同的设置?此外,为什么在“$anonymous =”和“Require valid-user”时匿名用户会获得访问权限。基本上,我只需要用户没有匿名访问权限和 RW 访问权限。我尝试了大约 100 种不同的组合,看看其中是否有任何一种可行,我只是不想发布我尝试过的所有不同组合。任何帮助都非常感谢。

答案1

我想到了!!!!!

<LimitExcept GET PROPFIND OPTIONS REPORT>

应该

<LimitExcept PROPFIND>

propfind 将提示用户输入用户名和密码,而不是仅仅显示访问权限。

相关内容