【问题标题】:SVN commit authentication failureSVN 提交认证失败
【发布时间】:2015-09-09 17:25:49
【问题描述】:

注意:我已经阅读了最后 150 个 svn 提交错误问题,但没有一个答案能解决我的问题。

我正在尝试设置一个简单的 svn 服务器,我可以从中签出并提交文件。

conf/svnserv.conf

[global]
anon-access = none
auth-access = rw
password-db = passwd
#authz-db = authz

配置/密码

[users]
myuser = password

从另一台机器上的 svn checkout 工作正常:

svn co svn://138.25.25.42:3690 test --username myuser --password password

然后我在本地存储库副本中添加了一个本地文件

echo "content" > testfile
svn add testfile

但是当我现在尝试提交时,我得到一个身份验证/授权(德语:Autorisierung)错误(所有 3 个都相同)

svn ci --username myuser --password password -m "lala"
svn ci . --username myuser --password password -m "lala"
svn ci test --username myuser --password password -m "lala"

用wireshark查看传输,我的用户名和密码似乎被忽略了(?)

[SERVER->CLIENT]
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) ) ( 
[CLIENT->SERVER]
2 ( edit-pipeline svndiff1 absent-entries depth mergeinfo log-revprops ) 25:svn://138.25.25.42:3690 21:SVN/1.6.15 (r1038135) ( ) ) 
[SERVER->CLIENT]
( success ( ( ANONYMOUS ) 36:ab25c003-0e26-4e93-98a3-6c5d9cc9a979 ) ) ( ANONYMOUS ( 0: ) ) ( success ( ) ) ( success ( 36:ab25c003-0e26-4e93-98a3-6c5d9cc9a979 25:svn://138.25.25.42:3690 ( mergeinfo ) ) ) 
[CLIENT->SERVER]
( commit ( 4:lala ( ) false ( ( 7:svn:log 4:lala ) ) ) ) 
[SERVER->CLIENT]
( failure ( ( 170001 0: 62:/build/buildd/subversion-1.6.5dfsg/subversion/svnserve/serve.c 167 ) ) )     

任何帮助使提交工作将不胜感激。

编辑:奇怪的是,匿名结账也可以;所以配置文件似乎被忽略了,我就是不明白为什么。

【问题讨论】:

  • svnserve 的日志中有什么内容吗?
  • 日志只是说 svn ERR serve.c 167 170001 授权失败
  • 你的 svnserve.conf 在哪里?
  • 它在 svnroot/conf 中。我已经重新启动了明确提供路径的服务器,现在结帐时出现“无存储库”错误。
  • 我现在能够设置一个可以再次签出但不能签入的存储库。回到第一格.. :-/

标签: svn authentication commit


【解决方案1】:

解决了!

问题是:我在home目录下设置了svn server目录,运行svnserve的用户无权访问,不管目录中的777权限(因为没有权限访问父目录)。

【讨论】:

    【解决方案2】:

    您似乎在“auth-access”中获得了错误的令牌。它应该是“写”而不是“rw”。此外,您可能应该在其中指定一个“领域”,以便进行身份验证的用户知道他们正在验证什么。

    【讨论】:

    • 尝试用 write 而不是 rw 和 svnserve 重新启动,仍然是同样的错误。还加了一个领域,没区别。
    • 这可能是文件系统权限问题吗?你在 SSH 后面运行 svnserve 吗?
    • 另外,我刚刚注意到您的结帐行中可能存在拼写错误。你有“svn co svn://138.25.25.42:3690 test ...”,而它应该是“svn co svn://138.25.25.42:3690/test ...”。
    • @server: # chmod -R 777 svndir,没有变化。 Checkout 的工作方式与我一样,但与 /test 不同。我可以在那里设置错误吗?
    • 我很茫然。首先,我不知道为什么在您向 CLI 指定用户名/密码时会使用匿名。您可能想尝试吹走 ~/.subversion/auth 并重试。更改 svnserve.conf 后是否重新启动服务器?如果没有,您需要这样做。
    【解决方案3】:

    我遇到了类似的 subversion 问题(身份验证失败)。 我的解决方案是我需要删除配置文件中的所有空格。

    如上: conf/svnserve.conf 应该是:

    [global]
    anon-access=none
    auth-access=write
    password-db=passwd
    #authz-db = authz
    

    conf/passwd 应该是:

    [users]
    myuser=password
    

    当然svnserve.conf和passwd的访问必须是svnserve进程可以访问的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-12
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多