美文网首页
转载—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