VisualSVN服务器密码更改

6
有没有人找到一种方法允许远程用户在VisualSVN服务器中更改自己的密码?我们将其运行在“独立”(非ActiveDirectory)模式下,我发现这个优秀产品的唯一缺点是用户无法设置或更改密码。虽然我可以忍受这种情况,但不更改密码的安全隐患是众所周知的。我相信添加此功能肯定是可行的,但我对VisualSVN使用的任何技术都不太擅长 - 所以想知道是否有人已经做到了?
更新2010-12-21:
我决定尝试自己实现这个功能。首先遇到的障碍是密码加密,希望能得到一些帮助。我发现VisualSVN有一个密码文件,称为htpasswd,其中列出了以下格式的用户列表: JoePublic:$apr1$lpq$kF8nZjjuFxgJBExK8ruf20 JoePublic是用户名,我认为冒号是分隔符,其余部分是某种密码哈希值。在此示例中使用的实际密码为ForgetMeNot。
这似乎不是MD5或SHA哈希,但我在这个领域并不很有见识,所以可能是。根据上面的信息,有人能推断出正在使用的算法吗?

@BoltClock,我撤销了你的重新标记,因为这与SVN没有任何关系。这非常特定于内置于VisualSVN Server中的身份验证方案,它是与SVN分开且独立的。除非我漏掉了什么...? - Tim Long
进展更新:我注意到Apache附带了一个名为htpasswd的实用程序,不知道它是否与VisualSVN的htpasswd文件有关? - Tim Long
4个回答

3
您无法通过Web界面重置用户密码,但是VisualSVN Server的WMI(Windows Management Instrumentation)提供程序允许您重置密码。也就是说,您可以通过WMI访问VisualSVN Server,因此可以编写各种编程语言的脚本来管理服务器并自动执行维护任务。
请参见Windows Management Instrumentation interface reference
不幸的是,VisualSVN Server WMI提供程序没有文档,但是您可以查看描述可用类、方法和属性的MOF文件。您还可以检查WMI Administrative Tools,这个工具包在您想要探索WMI基础设施时非常有帮助。
以下PowerShell脚本将为位于您网络上的computer.contoso.com上的VisualSVN Server实例的Subversion用户username设置qwerty123密码。
$svnuser = Get-WmiObject -Namespace Root\VisualSVN -ComputerName computer.contoso.com -query "select * from VisualSVN_User where name = 'username'"
$svnuser.SetPassword('qwerty123')

请注意,此脚本仅为示例,您可能需要调整命令以在您的环境中正常工作。例如,您可能需要传递“-credential”参数以成功进行身份验证。确保您进行身份验证的用户帐户具有管理员权限或至少是VisualSVN Server Admins本地组的成员。

3
如果您需要该功能,那么您需要与Active Directory集成,这实际上是一个很好的想法,因为用户不必管理多个单独的密码。

1
没错,通常我会这样做,但这些用户是我们组织的外部用户,我不希望他们登录除 SVN 服务器以外的任何东西,尤其是我的域。而且我也不想为他们购买 CALs。所以在这种情况下,AD 不是一个好选择。但是对于这个好建议,我点赞。 - Tim Long
1
@Tim Long,VisualSVN是否将内部用户名/密码列表存储在明文文件中?我在帮助文档中没有看到任何细节,但值得在存储库中查找用户文件。如果是这种情况,那么建立自己的小型密码管理网页,让用户管理自己的密码。 - Samuel Neff
我想我可能会试一试。我正在相应地更新我的问题,您介意看一下并发表评论吗? - Tim Long
1
@Tim Long,你不应该通过编辑原始问题来提出后续问题。虽然相关,但新问题实际上非常不同,具体而言是“SVN / VisualSVN如何生成密码哈希值?”你应该将其发布为一个新问题。 - Samuel Neff

2
VisualSVN使用htpasswd格式的md5密码。 基本上,为了测试,请使用以下内容:
htpasswd -cm test.htpass JoePublic

并验证结果。


抱歉,我不理解。htpasswd 是 VisualSVN 的一部分吗?该命令实际上验证了什么? - Tim Long
点赞,因为它有效。@TimLong:htpasswd.exe(因为Windows)是Apache的一部分。如果使用Visual SVN Server身份验证而不是Windows身份验证,则在存储库根目录中会有一个名为htpasswd的文件。它包含htpasswd给定用户名和密码字符串时的输出,带有md5选项。 - blizpasta

1

从版本4.3.6开始,用户可以通过浏览器完成。服务器属性面板。

enter image description here

当通过浏览器访问页面时,选项会显示在右上角。

enter image description here


太棒了。但是自从我发表那篇文章的12年6个月以来,整个世界都迁移到了Git;-) - Tim Long
太棒了。但是自从我发表那篇文章以来的12年零6个月里,整个世界都迁移到了Git;-) - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接