Gitolite权限配置

原创 2016年06月01日 11:12:14

基本含义:

C    代表创建,仅在通配符版本库授权是使用,用于指定谁可以创建与通配符匹配的版本库
R    RW    RW+    R为只读,RW为读写权限,RW+代表除了拥有读写权限,还可以强制执行推送
RWC    RW+C    
RWD    RW+D    D代表允许删除和正则匹配的引用
RWCD  RW+CD

传统模式的引用授权
传统模式的引用授权指的是在授权指令中只采用R、RW和RW+的传统授权关键字,而不包括后面介绍的扩展授权指令。传统的授权指令没有把分支的创建和分支删除权限细分,而是和写操作及强制推送操作混杂在一起。

1  @administrators = jiangxin admin
2  @dev                  = dev1 dev2 badboy
3  @test                  = test1 test2
4
5  repo    test/repo1
6          RW+           = @administrators
7          RW master refs/heads/feature/ = @dev
8          R                 = @test

关于授权的说明:
- 第6行,对于版本库test/repo1,管理员组用户jiangxin和admin可以读写任意分支、强制推送,以及创建和删除引用。
- 第7行,用户组@dev除了对master和refs/heads/feature/开头的引用具有读写权限外,实际上可以读取所有引用。这是因为读取操作授权阶段无法获知引用。
- 第8行,用户组@test对版本库拥有只读授权。

扩展模式的引用授权
扩展模式的引用授权,指的是该版本库的授权指令出现了下列授权关键字中的一个或多个:RWC、RWD、RWCD、RW+C、RW+D、RW+CD,将分支的创建权限和删除权限从读写权限中分离出来,从而可对分支进行更为精细的权限控制。
- 非快进式推送必须拥有上述关键字中的+方可授权。
- 创建引用必须拥有上述关键字中的C方可授权。
- 删除引用必须拥有上述关键字中的D方可授权。
即引用的创建和删除使用了单独的授权关键字,和写权限和强制推送权限分开。

1   repo    test/repo2
2           RW+C = @administrators
3           RW+   = @dev
4           RW      = @test
5
6   repo    test/repo3
7           RW+CD  = @administrators
8           RW+C    = @dev
9           RW         = @test
通过上面的配置文件,对于版本

库test/repo2.git具有如下的授权:
第2行,用户组@administrators中的用户,具有创建和删除引用的权限,并且能强制推送。
其中创建引用来自授权关键字中的C,删除引用来自授权关键中的+,因为该版本库授权指令中没有出现D,因而删除应用授权沿用传统授权关键字。
第3行,用户组@dev中的用户,不能创建引用,但可以删除引用,并且可以强制推送。
因为第2行授权关键字中字符C的出现,使得创建引用采用扩展授权关键字,因而用户组@dev不具有创建引用的权限。
第4行,用户组@test中的用户,拥有读写权限,但是不能创建引用,不能删除引用,也不能强制推送。
通过上面的配置文件,对于版本库test/repo3.git具有如下的授权:
第7行,用户组@administrators中的用户,具有创建和删除引用的权限,并且能强制推送。
其中创建引用来自授权关键字中的C,删除引用来自授权关键中的D。 -
第8行,用户组@dev中的用户,可以创建引用,并能够强制推送,但不能删除引用。
因为第7行授权关键字中字符C和D的出现,使得创建和删除引用都采用扩展授权关键字,因而用户组@dev不具有删除引用的权限。
第9行,用户组@test中的用户,可以推送到任何引用,但是不能创建引用,不能删除引用,也不能强制推送。
对路径的写授权

在授权文件中,如果一个版本库的授权指令中的正则引用字段出现了以NAME/开头的引用,则表明该授权指令是针对路径进行的写授权,并且该版本库要进行基于路径的写授权判断。

1  repo foo
2      RW                           =   @junior_devs @senior_devs
3
4      RW  NAME/             =   @senior_devs
5      -   NAME/Makefile  =   @junior_devs
6      RW  NAME/            =   @junior_devs

关于授权的说明:
- 第2行,初级程序员@junior_devs和高级程序员@senior_devs可以对版本库foo进行读写操作。
- 第4行,设定高级程序员@senior_devs对所有文件(NAME/)进行写操作。
- 第5行和第6行,设定初级程序员@junior_devs对除了根目录的Makefile文件外的其他文件具有写权限。

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用gitolite管理git权限

1、服务器上添加专用管理账户git,并在服务器上安装git 2、创建本地机器的公私钥 3、服务器安装gitolite 4、仓库添加与管理 5、添加用户并管理用户权限 一、服务器上安装git略过...
  • u010320108
  • u010320108
  • 2017年03月01日 14:44
  • 862

git权限管理插件gitolite

现在一般安装的linux系统都会自带git代码仓库服务器,如果使用git原生的权限管理则需要修改每个repo的配置文件。同时如果使用到了ssh还得把每个都放到authorized_keys文件中,这还...
  • StormrageWang
  • StormrageWang
  • 2015年02月04日 16:11
  • 1982

git服务器搭建及gitolite权限管理

我是在ubuntu和CentOS系统上分别搭建的git服务器,大致过程都是相同的:   基本上都是通过软件源直接安装的   第一步,给服务器安装ssh服务(这个CentOS自带了) apt-get i...
  • redstarofsleep
  • redstarofsleep
  • 2015年04月17日 09:03
  • 4558

Gitolite 构建 Git 服务器的权限管理

参考资料:     http://www.ossxp.com/doc/Git/gitolite.html 架设环境debian squeeze,所有安装软件均为debian源上自带。 ...
  • xyw591238
  • xyw591238
  • 2016年10月12日 10:57
  • 1587

在linux(CentOS)上搭建git服务器和配置gitolite权限管理

什么是git服务器?我觉得其实就是集中存放git仓库的服务器,只不过这些git仓库要对外开放,让其他人来连接和push代码。         当前服务器上集中管理的git仓库不是使用git init来...
  • tb12315
  • tb12315
  • 2015年04月12日 22:59
  • 10639

gitolite用作项目管理

gitolite做项目管理,并更改其项目管理的路径以及项目日志记录路径等
  • yz_yangzhi
  • yz_yangzhi
  • 2017年01月11日 15:47
  • 283

七技术之Git服务器gitolite的搭建及简单操作

最近人比较懒了,为了让自己改变一下,所以决定抽空去学习一些新的技术,对于这些新的技术,目前的要求不是很高,只是要求入门就可以了。 由于本人只是花三四天整出来的东西,所以不洗勿喷,另外难免会有错误,如有...
  • mengxiangyue
  • mengxiangyue
  • 2014年08月09日 16:20
  • 12067

Gitolite + repo 搭建安卓源码开发环境

相比gitosis,gitolite的功能更为强大,支持对权限的细分控制,下面在最新版 的ubuntu 14.04 LTS中搭建gitolite服务器。一、安装准备 1.服务器安装opensshsu...
  • u011479494
  • u011479494
  • 2016年02月03日 16:26
  • 2327

gitolite 添加用户和repo

http://gitolite.com/gitolite/admin.html 1 adding and removing repos NOTE: this page descri...
  • alexwang1983
  • alexwang1983
  • 2014年01月09日 11:45
  • 2659

怎样在Ubuntu 14.04中搭建gitolite git服务器

1.    首先这里我们安装openssh-serveropenssh-client,如果你用的是VPS之类的一般都默认安装好了,不过运行一个这个命令不会有错的,如果有安装就会提示已安装。 ...
  • toto1297488504
  • toto1297488504
  • 2014年12月21日 10:59
  • 1475
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Gitolite权限配置
举报原因:
原因补充:

(最多只允许输入30个字)