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>