Ubuntu上搭建SVN服务器全攻略(3)

6 远程修改svn用户口令

由于SVN+Apache架构下的用户并不是操作系统的用户,而只是Apache的用户,因此没有办法通过SSH登陆到操作系统来修改用户口令,只能另外想办法。借助Apache提供的Web服务,通过CGI或者mod_python等方式来修改authz配置文件,从而达到修改用户口令的目的。以下介绍通过perl的cgi来实现修改口令的功能,至于mod_python方法,我的实验只做了一半。

6.1 修改Apache2的配置文件

将/etc/apache2/apache2.conf 文件打开,找到如下内容(如果没有就直接添加,默认情况下好像就是没有,所以我是直接添加在文件的末尾):

#AddHandler cgi-script .cgi

修改成:

AddHandler cgi-script .cgi .pl

6.2 安装mod_perl默认包

sudo apt-get install libapache2-mod-perl2

6.3 相关配置

默认安装好后,cgi-bin的目录默认指向 /usb/lib/cgi-bin/目录。而安装apache2的时候这个目录一般是不会自动创建的。之所以选择这个目录,原因在下面这个文件:

/etc/apache2/sites-enabled/000-default

该文件是个链接,指向

/etc/apache2/sites-available/default

打开看看,里面有这样的一段,把cgi-bin目录指向了实际的/usr/lib/cgi-bin/目录。

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory "/usr/lib/cgi-bin">

AllowOverride None

Options ExecCGI -\MultiViews +\SymLinksIfOwnerMatch

Order allow,deny

Allow from all

</Directory>

默认情况下,上述文件不用任何修改。

6.4 获得修改口令的Perl脚本

访问ftp://192.168.19.63(或者直接与本作者联系)获得ChangePasswd.zip,将压缩包中的三个文件同时copy到/usr/lib/cgi-bin/目录。

sudo cp ChangePasswd.cgi /usr/lib/cgi-bin/

sudo cp ChangePasswd.ini /usr/lib/cgi-bin/

sudo cp ChangePasswd.log /usr/lib/cgi-bin/

6.5 修改脚本执行权限

cd /usr/lib/cgi-bin/

sudo chmod 777 ChangePasswd.cgi

sudo chmod 666 ChangePasswd.log

sudo chmod 666 /etc/subversion/passwd

之后,不用重新启动Apache服务就能通过访问URL来修改口令,直接访问URL:https://192.168.19.3/cgi-bin/ChangePasswd.cgi

验证通过后,即可显示如下修改密码界面:

如果修改成果,则显示如下界面:

ChangePasswd.cgi的详细说明,请参考附录A。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfdfz.html