美文网首页
转载—git服务器的权限管理:gitolite

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

作者: 过来摸摸头丶 | 来源:发表于2018-10-10 16:37 被阅读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的权限配置

  • 添加其他人

    把小伙伴的公钥发给管理员。管理员添加到gitolite-admin仓库的keydir目录下,注意文件名字格式为username.pub,username就是配置权限时的用户名。

  • 配置用户对仓库的读写权限

    直接修改conf文件夹下的,gitolite.conf文件。简单解释下几个用法:

    • repo代表仓库的意思,如果新添加一个repo,代表服务端新建一个空仓库,仓库push到服务端后会自动创建。

    • RW 代表可读可写

    • @all 代表所有人。

    • master和 dev代表分支

参考:

@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/目录下是否有对应的仓库被添加。

相关文章

网友评论

      本文标题:转载—git服务器的权限管理:gitolite

      本文链接:https://www.haomeiwen.com/subject/setmaftx.html