转载—git服务器的权限管理:gitolite

2018-10-10  本文已影响0人  过来摸摸头丶

参考链接:https://www.jianshu.com/p/a0eb79fa5b8d


系统

虚拟机:vitualbox 系统:Centos7

下载gitollite

1.添加gitolite依赖包

$ yum install 'perl(Data::Dumper)'

2.清空服务器段配置的ssh公钥

确保~/.ssh/authorized_keys文件是空的,或者不存在

3.上传管理员的客户端的ssh公钥到服务器上

把管理员电脑的sshid_rsa.pub文件复制到服务器的 $HOME/yourname.pub

$ scp /Users/xxx/.ssh/id_rsa.pub git@your ip address:/xiaoxiong.pub

4.安装配置gitolite

用git账号登录,执行以下命令:

$ su git    ##如果没有权限,则使用命令chown -R git:git /home/git
$ cd /home/git
$ git clone https://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin ## 必须项
$ ./gitolite二进制/install -to $HOME/bin ##用下载下来的仓库中的insall执行安装操作
$ ~/bin/gitolite setup -pk ~/YourName.pub ##把上传到服务器的 管理员的公钥setup到gitolite中
$ ls /home/git ##安装完成后如下所示

drwxr-xr-x   7 git  git  4096 Apr  3 23:50 bin               # 我们创建的存放gitolite二进制
drwxrwxr-x   6 git  git  4096 Apr  3 23:40 gitolite
drwx------   6 git  git  4096 Apr  3 23:52 .gitolite
-rw-------   1 git  git  7130 Apr  3 23:52 .gitolite.rc
-rw-------   1 git  git   398 Apr  3 23:39 malun.pub         # 管理员的公钥
drwxrw----   3 git  git  4096 Apr  3 23:40 .pki
-rw-------   1 git  git    19 Apr  4 00:26 projects.list     # 仓库列表(gitolite自动创建)
drwx------   5 git  git  4096 Apr  4 00:26 repositories      # 存放所有仓库文件夹
drwx------   2 git  git  4096 Apr  4 15:50 .ssh

# repositories目录下已经有两个git仓库了
# .
# |-- gitolite-admin.git      ## 管理配置权限的仓库
# `-- testing.git           # 测试仓库

好了,到此位置,管理员就可以直接把默认的远程管理的仓库gitolite-admin直接clone到本地进行管理git服务了。

5.管理员在本地管理和配置服务器端的仓库

下载服务器端的远程管理仓库

# 下载远程管理仓库, 请把aicoder.com换成你自己服务器的域名或者ip
$ git clone git@aicoder.com:gitolite-admin
$ cd gitolite-admin
# 目录结构如下:
# .
# ├── conf                # 配置文件夹
# │   └── gitolite.conf   # 配置权限的文件
# └── keydir              # 客户端的公钥文件夹,所有伙伴的公钥要放到此目录下
#     └── malun.pub

6.gitolite的权限配置

参考:

@admin = malun  
@om = malun bcd  
  
repo gitolite-admin  
    RW+     =   malun 
  
repo testing  
    RW+     =   @all  
  
repo om  
    RW+     =   @admin  
    RW+ master = @admin  
    RW+ dev  =   @om

做好配置后,由管理员把修改push到服务器端,会自动处理。

$ git add conf
$ git add keydir
$ git commit -m "added foo, gave access to alice, bob, carol"
$ git push

此时登录服务端,查看/home/git/repositories/目录下是否有对应的仓库被添加。

上一篇 下一篇

猜你喜欢

热点阅读