“Gerrit网页更改登陆密码”的版本间的差异
来自个人维基
(以“由于 gerrit登陆使用鉴权使用的是 apache的 htpassword认证方式,因此添加用户、更改密码都只能在命令行下、使用 htpassword命令进...”为内容创建页面) |
小 |
||
(未显示1个用户的4个中间版本) | |||
第5行: | 第5行: | ||
现在这里就是实现在网页端自助注册用户、更改密码。 | 现在这里就是实现在网页端自助注册用户、更改密码。 | ||
− | 1、安装 php | + | == 一、安装配置网站 == |
+ | |||
+ | === 1、安装 php === | ||
$ sudo apt-get install php5 | $ sudo apt-get install php5 | ||
− | 2、增加apache监听端口 | + | ===2、增加apache监听端口=== |
因为 apache 80端口已经用作 gerrit 8080端口的反向代理,因此为使其他正常的 php能正常运行,需要增加 apache监听端口 | 因为 apache 80端口已经用作 gerrit 8080端口的反向代理,因此为使其他正常的 php能正常运行,需要增加 apache监听端口 | ||
第19行: | 第21行: | ||
</pre> | </pre> | ||
− | + | ===3、同步更改vitualhost的端口=== | |
− | 4、安装 htpaswd | + | 更改 /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,增加鉴权: | ||
+ | <pre> | ||
+ | <Location /htpaswd/md/> | ||
+ | AuthType Basic | ||
+ | AuthName "Gerrit Code Review" | ||
+ | AuthBasicProvider file | ||
+ | AuthUserFile /home/admin/gerrit/etc/passwords | ||
+ | Require valid-user | ||
+ | </Location> | ||
+ | </pre> |
2015年4月6日 (一) 09:26的最后版本
由于 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>