Gerrit网页更改登陆密码
来自个人维基
由于 gerrit登陆使用鉴权使用的是 apache的 htpassword认证方式,因此添加用户、更改密码都只能在命令行下、使用 htpassword命令进行。
这使得非常不方便。
现在这里就是实现在网页端自助注册用户、更改密码。
目录 |
一、安装配置网站
1、安装 php
$ sudo apt-get install php5
2、增加apache监听端口
因为 apache 80端口已经用作 gerrit 8080端口的反向代理,因此为使其他正常的 php能正常运行,需要增加 apache监听端口
更改 /etc/apache2/ports.conf,增加 8010端口:
NameVirtualHost *:80 Listen 80 + Listen 8010
3、同步更改vitualhost的端口
更改 /etc/apache2/sites-enabled/下的 virtualhost,使 gerrit的反向代理仅限于 *:80端口,而 *.8010则使用普通的解析流程
4、安装 htpaswd
二、配置权限
1、增加 www-data到 gerrit所在的用户组
通过 ls -l gerrit/etc/passwords可以看出此文件的权限为 664 -rw-rw-r--,而 apache所在的用户为 www-data,为使能够写这个文件,必须把 www-data加入到 gerrit/etc/passwords所属用户的用户组中:
$ sudo usermod -G xxx www-data
- 更改完毕注意重启 apache
这里通过登陆 http://gerrit.xxx.org:8010/htpaswd/ 已经可以正常操作了
2、安全增强
这里理论上已经可以正常工作了,但现在有一个致命的安全隐患,那就是任何人无需通过身份确认,就可以更改任意其他用户的密码。
这里必须要更改,由于没有去研究 htpassword是如何生成密码的(同一用户设置同一密码,每一次加密后的结果也不一样),这里打算用最简单的方法进行,那就是使用和 gerrit同一个 gerrit/etc/passwords进行鉴权,只有通过了才能设置自己的密码。
更改 site-enabled/下 8010的 virtualhost,增加鉴权:
<Location /htpaswd/md/> AuthType Basic AuthName "Gerrit Code Review" AuthBasicProvider file AuthUserFile /home/admin/gerrit/etc/passwords Require valid-user </Location>