提问的智慧SVN版 - 提问者必读
 89 12345
发新话题
打印

[原创] 远程修改Subversion密码-ApachePasswd[20080108更新]

远程修改Subversion密码-ApachePasswd[20080108更新]

远程修改基于apache配置的Subversion密码的工具ApachePasswd

ApachePasswd说明


  这是一个用于修改Apache中AuthUserFile的工具,编写时主要是为了远程修改基于Apache配置的Subversion的用户密码。
  目前提供for apache2.0版本及for apache2.2版本。

  当Subversion配置成作为Apache的一个模块运行时,在httpd.conf中可能是类似这下面这样的语句:
  
<Location /svn>
DAV svn
SVNParentPath C:\SVN_repos
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile C:\SVN_repos\passwd
AuthzSVNAccessFile C:\SVN_repos\access.conf
Require valid-user
</Location>

  ApacehPasswd就是用来修改上面配置中的C:\SVN_repos\passwd这个文件的


  使用方法:
  1将文件Apache2xPasswd.cgi及Apache2xPasswd.cgi.ini复制到Apache的CGI脚本目录下,通常是cgi-bin目录。(这句话中的x请用相应的版本代替,如for apache2.0,则为Apache20Passwd.cgi)
  2如果是for apache2.2版本,复制apache的bin目录下libapr-1.dll、libapriconv-1.dll、libaprutil-1.dll到Apache2xPasswd.cgi所在的目录
  3修改配置文件Apache2xPasswd.cgi.ini中auth_user_file路径,如下

[path]
auth_user_file=这里改为你的Subversion所用的AuthUserFile全路径,如C:\SVN_repos\passwd

  4现在访问你服务器的http://localhost/cgi-bin/Apache2xPasswd.cgi就可以看到修改subversion密码的界面了。

备注:
1、配置文件可用的配置项

[path]
auth_user_file=这里改为你的Subversion所用的AuthUserFile全路径,如C:\SVN_repos\passwd
日志文件名
log_file=svnpass.log
[setup]
password_min_length=1
[html]
title=修改SubVersion密码
description=修改SubVersion密码
your_name = 用户名
old_password = 旧密码
new_password1 = 新密码
new_password2 = 验证新密码
btn_change = 修 改
btn_reset = 重 置

change_password_ok=成功修改密码
change_password_failed=修改密码失败
old_password_error=旧密码错误
server_error=服务器错误
password_must_greater=密码位数必须大于
two_password_not_matched=两密码不一致
please_enter_name=请输入用户名
back=返回

2、我一般用时都是将Apache2xPasswd.cgi改名为svnpass,这样用户修改密码时可以少打些字
如访问http://192.168.0.1/cgi-bin/svnpass就可以修改密码了,
当改名为svnpass时,配置文件Apache2xPasswd.cgi.ini要相应地改为svnpass.ini,因为这个脚本是根据自己的文件名找配置文件的

3、如果你配置了多个AuthUserFile,可以复制出多个ApachePasswd,配置多个相应的.ini,这样就可以修改多个AuthUserFile了。



作者:PCplayer (try876@gmail.com) www.iUseSVN.com

修改历史:
2006-6-9 23:46 第一个发布版本
2007-12-09 添加了apache2.2.x的支持,修改配置文件中配置项名称(更易理解)
2008-01-08 将页面底部的网站链接字体改小,增加一秘密开关,用于隐藏底部的网站链接

附件

Apache20Passwd.rar (85.39 KB)

08-1-8 20:56, 下载次数: 2820

ApachePasswd for Apache2.0

Apache22Passwd.rar (85.38 KB)

08-1-8 20:56, 下载次数: 1683

ApachePasswd for Apache2.2

TOP

附图

附件

ApacehPasswd.JPG (39.12 KB)

06-6-10 00:10

ApacehPasswd.JPG

TOP

7年前,我曾经写过一些CGI程序,我记得当时是直接用bash-shell脚本编写的。结果我习惯性地就先将你这个.cgi文件打开,一看居然是dos的PE文件,呵呵

你这个.cgi,是不是用c语言写的然后编译成exe在强行改为.cgi后缀的呀?
http://zhengxinxing.googlepages.com/home

TOP

没错,是用c语言编写的。
其实我经常把它改成svnpass.htm,配置文件改成svnpass.htm.ini
如图:

TOP

建议取消缺省至少需要6位的密码

TOP

可以修改配置文件中的这个配置项
[setup]
passminlen=1
这个配置项就是用来控制最小密码长度的

TOP

将 passminlen 改名为 password_min_length, 也许问这个问题的人就会少一些,呵呵

TOP

对,有空要把那些配置项名字好好改改,再把说明写一下,
发布一个升级版本

TOP

今天装了apache,用了你的这个密码修改工具,还挺方便的,哈

TOP


呵呵,好用就好,
有空我按上面的要求再改改,搞个升级版

TOP

你知不知道有没有可以通过web注册新用户的脚本工具?
我是突然想到的,既然可以改密码,习惯性的就想到添加新用户

TOP

呵呵,还不知道。
我要知道有添加用户的工具的话,我想那工具肯定也能修改密码,
如果这样那我就不用自己写了:)

TOP

你这么一说,
看来我的下一版本可以考虑一下这个功能,
你希望做成什么样的?

TOP

添加用户可能不像修改密码那样简单

首先你要考虑,添加的用户将会被与哪些代码库相关联,将会被授予怎样的目录权限
其次要确保,只有经过验证的用户,才有权力添加用户
第三,既然可以添加用户,那么是不是要考虑删除用户、修改用户授权、修改用户相关联的代码库?

当然,我们可以先简化问题,假设现在大家的代码库都采用同一份passwd文件,和同一份authz.conf文件,这样要实现上述三点就相对简单一些。然后再考虑,如果说各个代码库都使用独立的验证、授权文件,那么程序就必须添加各个分离的代码库配置的更改。最后再考虑,如果说有人将这些文件混合使用,比如说密码采用同一份文件,而授权采用分离的各自authz.conf来配置,那么你的程序业应该可以支持。

不过,对于基于unix系统的管理员来说,可能就用不上你的cgi程序了,比如说sf.net上面,就直接将svn的密码与个人帐号密码直接挂钩,登陆sf.net的unix服务器用的密码等,都是一份。

TOP

报错!!!

Linux下用此程序报如下错误:
[Thu Jun 29 11:10:10 2006] [error] (8)Exec format error: exec of 'svnpass' failed
[Thu Jun 29 11:10:10 2006] [error] [client xxx] Premature end of script headers: svnpass

文件权限为777

请问如何解决?

TOP

这个程序目前只有windows版本,所以linux下不能用,
我想,linux底下是不是有其它的修改密码方法,
如果没有,近期会将这个程序做一份linux版的

TOP

PCplayer ,请尽快制作一份linux下的程序吧!我现在非常需要这个程序

TOP

不好意思,你得先等一段时间(两三周吧),
因为现在单位工作很忙,抽不出时间

TOP

回复 #14 郑新星 的帖子

呵呵,新星说的是,添加用户不是那么简单,光添加用户没有什么大的意义。
你说的那三点可以考虑,有兴趣的话我们倒是可以合作开发一个远程的配置工具。
不过要挑个时间,最近真的很忙。

TOP


PCplayer ,你的工作这么忙啊?要不要我帮你分担一点

TOP

 89 12345
发新话题
订阅 我用Subversion - SVN中文论坛 邮件列表:iUseSVN@googlegroups.com
电子邮件:
网站重要事项将会在这个列表进行通知,点击这里浏览存于列表中的所有邮件