Svnserve基于路径的身份验证拒绝所有连接

时间:2014-05-07 14:41:05

标签: svn tortoisesvn svnserve

所以我一直在使用SVN over HTTP(Apache和WebDav)一段时间了,我想放弃apache并用运行最新ArchLinux的Raspberry Pi上的svnserve替换它。

我开始启用svnserve服务: systemctl enable svnserve

然后,我在/etc/config.d/svnserve下的配置文件中为命令添加了必要的args,现在包含以下内容

SVNSERVE_ARGS="-r /media/USB/repositories --config-file /media/USB/svnserve.conf"
SVNSERVE_USER="svn"

对于记录/media/USB/dev/sda1的挂载,它是一个始终插入的NTFS存储设备。

我有大约70个存储库,因此在每个存储库中使用conf/目录来控制访问权限并且根据我的理解,我可以做同样的事情,我在Apache上使用DAV和有一个配置文件来统治它们!

所以我把/ media / USB下面的所有3个文件放在下面:

svnserve.conf的

[general]
anon-access = none
auth-access = write
authz-db = subversion.authz
password-db = subversion.passwd
realm = Subversion

subversion.authz

[/]
* = r
dany = rw

subversion.passwd

dany = some password hash

现在,当我使用TortoiseSVN使用svn://TheCorrectIp/RepoName签出网址时,我收到以下错误: Error: No access allowed to this repository我甚至没有提示输入用户/通行证组合。

这是我到目前为止没有运气的尝试(每次试用后重新启动服务):

  • 清除TortoiseSVN的密码缓存
  • 复制存储库conf/目录下的所有3个配置文件(只是为了查看这是否是路径问题)
  • authz-db 中使用绝对路径和相对路径(相对于存储库的conf,如文档中所示,相对于svnserve.conf文件)
  • 创建一个全新的存储库并单独使用其conf目录

在摆弄svnserve.conf的同时,我注意到发生了一些奇怪的事情:

  • 如果我注释掉authz-db和password-db我仍然会遇到同样的问题
  • 如果我将anon-access更改为读取或写入,并注释掉所有其他我能够检出存储库,我不会被要求任何组合。如果我保持anon-access完整并放回authz-db或password-db我无法再次结账
  • 停止服务并在执行结帐时运行svnserve -d --forground -r /media/USB/repositories --config-file /media/USB/svnserve.conf以监控控制台输出:当我结账时,控制台上没有显示任何内容。

我真的很感激任何对我可能做错的反馈,谢谢!

1 个答案:

答案 0 :(得分:0)

好吧,我终于想通了,我的passwd文件格式错误,它必须是这样的

[users]
dany = unencrypted password

我会更多地搜索以确定您是否可以实际加密密码