我在 Ubuntu 20.04 中使用 Subversion 1.13.0,并使用 Apache 2.4.41 通过 HTTPS 提供 SVN。
身份验证是通过密码文件完成的,如果用户未经身份验证,主 /svn 文件夹将失败并出现 401。
但现在我需要创建一个需要匿名访问其文件的存储库。提交仍然需要身份验证。
是否可以将此存储库设置为无需身份验证即可读取?
答案1
假设您在 Apache 中使用 mod_dav_svn 来为 Subversion 提供服务,那么配置由 Apache 处理,如果是这样,那么是可以的。我建议您阅读Subversion 红皮书在线。第 188 页开始一节“httpd,Apache HTTP 服务器”,其中深入介绍了如何配置 Apache 来处理 SVN 存储库。
具体来说,您将使用 Limit 或 LimitExcept 指令修改 apache 配置文件 httpd.conf。他们给出的一个示例(第 194 页)是:
<Location /svn>
DAV svn
SVNParentPath /var/svn
# Authentication: Digest
AuthName "Subversion repository"
AuthType Digest
AuthUserFile /etc/svn-auth.htdigest
# Authorization: Authenticated users only for non-read-only
# (write) operations; allow anonymous reads
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
此示例允许任何人执行 HTTP GET、PROPFIND、OPTIONS 和 REPORT 方法,但要求他们是经过身份验证的用户才能执行任何其他 HTTP 方法(例如 PUT 和 PROPPATCH)。