允许用户更改其SVN密码

允许用户更改其SVN密码,svn,unix,.htpasswd,Svn,Unix,.htpasswd,我已经设置了一个SVN服务器,我想让用户能够更改自己的密码,但我不知道如何实现这一点。用户名和密码存储在我使用htpasswd创建的用户文件中。理想情况下,用户可以登录到服务器并运行命令htpasswd/svn/repos/users[username]来更改密码。这种方法(非常非常明显)的问题是,如果我让每个人都能读写该文件,他们就可以更改任何人的密码,甚至删除svn用户。有哪些替代方案?我没有在unix系统管理shell脚本方面的经验,所以如果这是一个完全没有问题的问题,请原谅。我认为您使用

我已经设置了一个SVN服务器,我想让用户能够更改自己的密码,但我不知道如何实现这一点。用户名和密码存储在我使用htpasswd创建的用户文件中。理想情况下,用户可以登录到服务器并运行命令htpasswd/svn/repos/users[username]来更改密码。这种方法(非常非常明显)的问题是,如果我让每个人都能读写该文件,他们就可以更改任何人的密码,甚至删除svn用户。有哪些替代方案?我没有在unix系统管理shell脚本方面的经验,所以如果这是一个完全没有问题的问题,请原谅。

我认为您使用的是Apache。对吧?

您是否考虑过将其用于帐户管理?Apache很好地与LDAP集成,Windows域帐户访问也可以由LDAP驱动。这意味着,您可以使用Windows帐户和密码登录Subversion,并且可以使用Windows组来帮助控制访问。以下是我的设置:

LoadModule dav_svn_module     modules/mod_dav_svn.so
<Location /source>
        DAV svn
        SVNPath /opt/svn_repos
        AuthType basic
        AuthName "Subversion Repository"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative off
        AuthLDAPURL "ldap://ldap.mycompany.com:3268/dc=mycompany,dc=com?sAMAccountName" NONE
        AuthLDAPBindDN "CN=svnUser,OU=Users,OU=Accounts,DC=mycompany,DC=com"
        AuthLDAPBindPassword "Swordfish"
        Require ldap-group CN=Developer,CN=Groups,DC=mycompany,DC=com
</Location>
LoadModule dav_svn_module modules/mod_dav_svn.so
DAV svn
SVNPath/opt/svn_回购
AuthType basic
AuthName“Subversion存储库”
AuthBasicProvider ldap
authzldapoff
AuthLDAPURL“ldap://ldap.mycompany.com:3268/dc=mycompany,dc=com?sAMAccountName“无
authldappbinddn“CN=svuser,OU=Users,OU=Accounts,DC=mycompany,DC=com”
AuthLDAPBindPassword“箭鱼”
需要ldap组CN=Developer,CN=Groups,DC=mycompany,DC=com
我曾经写过一个小PHP程序,允许用户更改他们的Subversion密码。我现在没有,但也没那么难做。您知道htpasswd文件的用户和位置。您所要做的就是让用户输入一个新密码,对其进行加密,然后重写htpasswd文件。我使用了一个符号链接,使htpasswd文件对我的PHP程序可见


然而,我发现更改htpasswd可能要等到Apache重新启动后才会生效,而且当人们进行Subversion签出时,您不能简单地重新启动Apache。

找到了一个类似问题的很好答案:请共享您的PHP程序好吗?