“Gerrit网页更改登陆密码”的版本间的差异
(以“由于 gerrit登陆使用鉴权使用的是 apache的 htpassword认证方式,因此添加用户、更改密码都只能在命令行下、使用 htpassword命令进...”为内容创建页面) |
|||
第4行: | 第4行: | ||
现在这里就是实现在网页端自助注册用户、更改密码。 | 现在这里就是实现在网页端自助注册用户、更改密码。 | ||
+ | |||
+ | 一、安装配置网站 | ||
1、安装 php | 1、安装 php | ||
第22行: | 第24行: | ||
4、安装 htpaswd | 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 | ||
+ | |||
+ | 这里通过登陆 http://gerrit.xxx.org:8010/htpaswd/已经可以正常操作了 | ||
+ | |||
+ | 2、安全增强 | ||
+ | |||
+ | 这里理论上已经可以正常工作了,但现在有一个致命的安全隐患,那就是任何人无需通过身份确认,就可以更改任意其他用户的密码。 | ||
+ | |||
+ | 这里必须要更改,由于没有去研究 htpassword是如何生成密码的(同一用户设置同一密码,每一次加密后的结果也不一样),这里打算用最简单的方法进行,那就是使用和 gerrit同一个 gerrit/etc/passwords进行鉴权,只有通过了才能设置自己的密码。 | ||
+ | |||
+ | 更改 site-enabled/下 8010的 virtualhost,增加鉴权: | ||
+ | <pre> | ||
+ | <Location /htpaswd/> | ||
+ | AuthType Basic | ||
+ | AuthName "Gerrit Code Review" | ||
+ | AuthBasicProvider file | ||
+ | AuthUserFile /home/iqoocode/gerrit/etc/passwords | ||
+ | Require valid-user | ||
+ | </Location> | ||
+ | </pre> |
2015年4月3日 (五) 16:00的版本
由于 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、更改 /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
这里通过登陆 http://gerrit.xxx.org:8010/htpaswd/已经可以正常操作了
2、安全增强
这里理论上已经可以正常工作了,但现在有一个致命的安全隐患,那就是任何人无需通过身份确认,就可以更改任意其他用户的密码。
这里必须要更改,由于没有去研究 htpassword是如何生成密码的(同一用户设置同一密码,每一次加密后的结果也不一样),这里打算用最简单的方法进行,那就是使用和 gerrit同一个 gerrit/etc/passwords进行鉴权,只有通过了才能设置自己的密码。
更改 site-enabled/下 8010的 virtualhost,增加鉴权:
<Location /htpaswd/> AuthType Basic AuthName "Gerrit Code Review" AuthBasicProvider file AuthUserFile /home/iqoocode/gerrit/etc/passwords Require valid-user </Location>