在gerrit中权限控制是基于群组的. 每个用户有一个或者多个群组, 访问权限被赋予这些群组.访问权限不能赋予个人用户
在Gerrit系统
自带下面的群组
Anonymous Users
Change Owner
Project Owners
Registered Users
Anonymous Users
所有用户都是匿名用户
成员, 所有用户都能继承Anonymous Users
所有访问权限.
权限的解读参考:http://www.cnblogs.com/lexuele/p/5133601.html
Gerrit上的所有项目默认是继承All-Projects这个项目的权限,这个项目是Gerrit安装后系统自动创建的。
先看下这个项目的权限
所有新建的项目都继承了这些权限,如果需要单独更改某一个Project的权限,则可以从Projects==>List==>Project Name(选择你要更改权限的项目)==>Access==>Edit 来更改权限。
注意:千万不要点击All-Projects按钮来更改权限,应该这个更改是对所有Project生效的,相当于全局的权限设置。我们可以通过Edit来增加一些权限,覆盖掉All-Projects的权限。即当单个项目的权限与全局的权限冲突时,以项目自身设置的权限为准。
权限创建示例:
1、将某个Project只对group1组内的用户可见,当其他组的用户登录gerrit时,在Projects list中是看不到该项目的。
2、将某个项目的owner改为某个组的所有用户,此权限设定慎用
3、伪造提交者
正常情况下,开发者的用户配置,包括邮箱配置必须和Gerrit Web UI上配置的一直,才能执行git push命令,来提交change。
例如,开发者全局配置为:
1
2
3
|
$ git config --list
user.name=user1
user.email=123456789@qq.com
|
对应的Gerrit账户上的注册邮箱也必须为123456789@qq.com
如果修改了开发者邮箱配置,那么执行git push命令时会报以下错误:
remote: ERROR: does not match your user account.
我们可以通过Forge Committer Identity 权限来伪造提交者。配置如下
关于Gerrit权限可以参考这个文档:http://www.jianshu.com/p/d95faa9f8b05