我已经设置了一个具有 WebDAV 访问权限的 SVN 存储库。出于某种原因,它不允许结帐。
这是我的 httpd.conf 部分:
<Location /svn>
DAV svn
SVNParentPath /home/svn/repositories
AuthzSVNAccessFile /home/svn/dav_svn.authz
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svn/dav_svn.passwd
</Location>
Run Code Online (Sandbox Code Playgroud)
我有两个名为“first”和“second”的存储库,dav_svn.authz 的内容是:
[first:/]
doe = rw
* = r
[second:/]
doe = rw
grig = rw
* = r
Run Code Online (Sandbox Code Playgroud)
当我尝试使用用户 doe 签出第二个时,我在 error_log 中得到这个信息:user doe: authentication failure for "/svn/second": Password Mismatch
为了了解可能是什么问题,我想更好地了解 AuthzSVNAccessFile 应该如何工作。
错误是否仅发生在两个存储库上的用户 doe 上?或者它在第二个存储库上的 grig 失败了吗?假设它对所有用户都失败,并且假设错误不在 AuthUserFile 中并且 SVNParentPath 是正确的,我认为您需要为所有存储库添加默认访问规则。
[/]
* = r
[first:/]
doe = rw
[second:/]
doe = rw
grig = rw
Run Code Online (Sandbox Code Playgroud)
或者您可以将用户 doe 和 grig 放入一个组中,并按如下方式进行:
[groups]
secondteam = doe, grig
[/]
* = r
[first:/]
doe = rw
[second:/]
@secondteam = rw
Run Code Online (Sandbox Code Playgroud)
您提到您想更好地了解 AuthzSVNAccessFile 应该如何工作。我建议阅读本教程。该教程中用于支持多个存储库的完整基于路径的授权文件示例如下:
[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
dangerman =
# Allow developers complete access to their project repos
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# Give the doc people write access to all the docs folders
[/trunk/doc]
@docs = rw
# Give trainees write access in the training repository only
[TrainingRepos:/]
@training = rw
Run Code Online (Sandbox Code Playgroud)
小智 0
只是一个检查(我不确定,我稍后会检查),但语法不应该是吗
[first:/home/svn/first]
?
first
名称在哪里,以及/svn/first
存储库的路径。
不确定它是否会解决问题,但我猜您当前的conf文件并不完全是您想要的。
归档时间: |
|
查看次数: |
33169 次 |
最近记录: |