VisualSVN服务器密码更改

时间:2010-12-04 15:49:57

标签: svn passwords visualsvn-server user-management authz

有没有人想出办法让远程用户在VisualSVN服务器中更改自己的密码?我们让它以'独立'(非ActiveDirectory)模式运行,我发现这个优秀产品的唯一不利因素是用户无法设置或更改密码。

这是我可以忍受的东西,但密码永远不会改变的安全含义是众所周知的。我确信必须能够添加功能,但我在VisualSVN使用的任何技术中都没有一点天赋 - 所以只是想知道是否有人这样做过?

更新2010-12-21

我决定自己实施这项计划。密码加密是我感谢一些帮助的第一个障碍。我发现VisualSVN有一个名为htpasswd的密码文件,其中包含以下格式的用户列表:

  

JoePublic:$ $ APR1 LPQ $ kF8nZjjuFxgJBExK8ruf20

JoePublic是用户名,我假设冒号是分隔符,其余的是某种密码哈希。在这种情况下使用的实际密码是 ForgetMeNot

这似乎不是MD5或SHA哈希,但我在这方面并不是非常明智,所以很可能。鉴于上述信息,任何人都可以推断出正在使用的算法吗?

3 个答案:

答案 0 :(得分:3)

如果您需要该功能,那么您需要与Active Directory集成,这无论如何都是一个好主意,因此用户无需管理多个单独的密码。

答案 1 :(得分:3)

您无法通过网络界面重置用户密码,但WMI(Windows管理 Instrumentation)VisualSVN Server提供程序允许您重置密码。即您可以通过WMI访问VisualSVN Server,这样您就可以编写各种编程语言的脚本来管理服务器并自动执行维护任务。

请参阅Windows Management Instrumentation interface reference

不幸的是,没有记录VisualSVN Server WMI提供程序,但是您可以查看描述可用类,方法和属性的MOF文件。您还可以查看WMI Administrative Tools,当您想要探索WMI基础架构时,此工具包非常有用。

以下PowerShell脚本将为位于您网络上qwerty123的VisualSVN Server实例上的Subversion用户username设置computer.contoso.com密码。

$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本地组的成员。

答案 2 :(得分:2)

VisualSVN使用的密码为md5格式htpasswd。基本上要测试,请使用:

htpasswd -cm test.htpass JoePublic

并验证结果。