因此,我浏览了大约十几个其他帖子,并阅读了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 将提示用户输入用户名和密码,而不是仅仅显示访问权限。