前言

首先说明一下,这还是本人第一次写这类文章,如有不妥,多多见谅。

基本情况

因为现在公司的人不是很多,但是还对代码有着严格的管控,所以采用了gitolite的管理方式

其实正常来讲,这种权限的把控在我看来没什么必要。

我在之前没有接触过这个插件的时候,对它可以说是一头雾水,现在搞懂了以后也想分享给大家

好了,废话不多说,咱们开始吧。

一、安装git

首先咱们要弄清楚,git是分本地以及远端的,这里以我使用的windows电脑为例(Mac不需要安装),

现在Git服务端安装好Git,大部分的是系统自带的

[root@uat1 admin]# rpm -qa|grep git
libpcap-1.4.0-4.20130826git2dbcaa1.el6.x86_64
git-1.7.1-9.el6_9.x86_64

然后需要安装windows本地的git(这里自行百度,很简单),出现我的画面就说明你成功了

二、获取本地公钥

在git客户端(也就是你的windows电脑,以下使用名词客户端),执行下面的命令:

ssh-keygen -t rsa

紧接着连续回车三次,你的公钥就会自动生成,下面是查找公钥的方法

Murry@Savior MINGW64 ~
$ cd ~/.ssh/ Murry@Savior MINGW64 ~/.ssh
$ ls
id_rsa.pub id_rsa known_hosts

你会生成两个文件,一个带.pub的就是公钥,另一个不带的就是私钥

三、在服务端安装gitolite

然后开始安装gitolite

首先咱们需要安装一个git用户,用这个用户来进行安装

[root@uat1 ~]# useradd git (增加用户)
[root@uat1 ~]# su - git (切换用户)
[git@uat1 ~]$ pwd (查看位置)
/home/git

开始下载gitolite

[git@uat1 ~]$ git clone https://github.com/sitaramc/gitolite

紧接着,开始安装gitolite

[git@uat1 ~]$ mkdir /home/git/bin  (创建bin目录)
[git@uat1 ~]$ gitolite/install -to /home/git/bin (将gitolite安装到目录下)
[git@uat1 ~]$ cd bin/ (进到目录)
[git@uat1 bin]$ ls (查看内容)
commands gitolite gitolite-shell lib syntactic-sugar triggers VERSION VREF

这样咱们就可以看到gitolite相关的命令了

四、配置gitolite的管理员

这里提一下,gitolite的管理员可以是自己的一台电脑也可以是一台服务器,这里咱们配置为自己的电脑

首先将之前获取到的公钥,也就是id_rsa.pub发送到git的服务端(也就是服务器上)

scp id_rsa.pub user@ip地址:/tmp  (这里会需要输入服务器密码)

服务器接收到以后,将文件名改为admin.pub

[git@uat1 tmp]$ mv id_rsa.pub admin.pub

接着就开始用管理员的公钥来进行安装gitolite

[git@uat1 ~]$ /home/git/bin/gitolite setup -pk admin.pub

紧接着你就可以看到生成了两个文件

/home/git/repositories/gitolite-admin.git
/home/git/repositories/testing.git

第一行的是管理者的git仓库,第二行的就是测试仓库

五、如何进行权限的管控

然后咱们开始生成管理员的管理仓库

[git@uat1 ~]$ git clone user@ip地址:gitolite-admin

然后咱们进入目录下就可以看到两个文件

Murry@Savior MINGW64 ~/.ssh/gitolite-admin (master)
$ ls
conf/ keydir/

这两个目录咱们分别来看

进入conf/了解一下

Murry@Savior MINGW64 ~/.ssh/gitolite-admin (master)
$ cd conf/ Murry@Savior MINGW64 ~/.ssh/gitolite-admin/conf (master)
$ ls
gitolite.conf

可以看到gitolite.conf这个文件,它就是用来管理git的权限文件,来打开看一下内容

Murry@Savior MINGW64 ~/.ssh/gitolite-admin/conf (master)
$ cat gitolite.conf
repo gitolite-admin
RW+ = gitadmin
repo testing

在这里我们就可以清楚地看到gitolite是怎么管理权限的 ,repo作为仓库的名字,而下面就是

拥有权限的人,这里RW就是可读可写

那么问题就来了,仓库和权限者他是怎么定义的呢

这里仓库其实只要你写了名字他就会自动生成,而拥有权限者的名字,就用到了keydir/目录

这个目录下的文件就是拥有者的公钥,.pub前面的名字就是这里的名字

六、更改后如何从本地提交到远端

关于这个问题只需要几个git基本命令即可

$ git add .

$ git commit -m "注释内容"

$ git push

只需要这三步操作,如果对git命令不了解建议先了解一下

到这里,我们就实现了gitolite的权限管控

git+gitolite如何实现权限控制的更多相关文章

  1. 再谈git的http服务-权限控制gitweb版(未成功)

    截至目前,对gitweb的掌握还没达到最终目标,仅仅实现了通过浏览器来浏览项目,通过git命令仍然未能clone项目.但仍然要记录下来,主要是因为打算暂时放弃这条路,而所收获的一些经验还是要记录下来. ...

  2. 再谈git的http服务-权限控制hooks版

    通过git-http-backend方法提供的http服务基本上可以做到认证用户才能使用,但只能控制到服务器路径访问,而且无法区分读写.经过不懈努力,找到了方法,相关脚本及配置见后. 基本思路就是利用 ...

  3. Gitolite 权限控制

    官网 http://gitolite.com/gitolite/index.html 安装配置 http://gitolite.com/gitolite/install/ 傻瓜安装教程 http:// ...

  4. 建立多人协作git仓库/git 仓库权限控制(SSH)

    转载文章请保留出处  http://blog.csdn.net/defeattroy/article/details/13775499 git仓库是多人协作使用的,可以基于很多种协议,例如http.g ...

  5. Git 权限控制

    除了 Git 命令,权限控制也是 Git 中极为重要的组成部分,本文主要介绍 GitLab 系统提供的最常用的权限控制功能. 一.分配成员角色 首先来了解下,Git 中的五种角色: 每一种角色所拥有的 ...

  6. centos+git+gitolite 安装和部署

    一.部署环境 系统:CentOS 6.4x64 最小化安装 IP:192.168.52.131 git默认使用SSH协议,在服务器上基本上不用怎么配置就能直接使用.但是如果面向团队服务,需要控制权限的 ...

  7. 使用nginx和iptables做访问权限控制(IP和MAC)

    之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只 ...

  8. yii2搭建完美后台并实现rbac权限控制案例教程

    作者:白狼 出处:www.manks.top/article/yii2_frame_rbac_template 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

  9. yii2搭建完美后台并实现rbac权限控制实例教程

    1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 或者参考yii2实战教程之详细安装步骤 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/con ...

随机推荐

  1. 浅析微信支付:公众平台卡券功能开通、HTML5线上发券(JS-SDK接口)、查看卡券详情

    本文是[浅析微信支付]系列文章的第十六篇,主要讲解如何使用微信公众平台的卡券功能.如何使用HTML5在网页展示用户领券以及微信卡券和商户平台代金券的关系. 浅析微信支付系列已经更新十六篇了哟-,没有看 ...

  2. hdu 1217 汇率 Floyd

    题意:给几个国家,然后给这些国家之间的汇率.判断能否通过这些汇率差进行套利交易. Floyd的算法可以求出任意两点间的最短路径,最后比较本国与本国的汇率差,如果大于1,则可以.否则不可以. 有向图 一 ...

  3. python:从迭代器,到生成器,再到协程的示例代码

    程序员,没事多练练, 并发,并行编程,算法,设计模式, 这三个方面的知识点,没事就要多练练,基本功呀. class MyIterator: def __init__(self, element): s ...

  4. day16--HTML、CSS、JavaScript总结

        HTML 一大堆的标签:块级.行内 CSS position background text-align padding font-size background-image z-index ...

  5. Linux useradd -M -s

    groupadd mysql #创建mysql分组 useradd -M(不创建主目录) -s(不允许登录) /sbin/nologin mysql -g(加入mysql组) mysql

  6. KNN分类算法实现手写数字识别

    需求: 利用一个手写数字“先验数据”集,使用knn算法来实现对手写数字的自动识别: 先验数据(训练数据)集: ♦数据维度比较大,样本数比较多. ♦ 数据集包括数字0-9的手写体. ♦每个数字大约有20 ...

  7. BZOJ1264 [AHOI2006]基因匹配Match 动态规划 树状数组

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1264 题意概括 给出两个长度为5*n的序列,每个序列中,有1~n各5个. 求其最长公共子序列长度. ...

  8. ubuntu server 18.04 lts 终端中文显示为乱码的解决方案

    .最近安装ubuntu server 18.04 lts版本发现系统自带的终端下无论是编辑中文,还是显示中文均出现乱码,还是老毛病, 今天无意中发现通过ssh,远程访问,在windows中安装开源的p ...

  9. 基于python语言的经典排序法(冒泡法和选择排序法)

    前 每逢周末就遇雨期,闲暇之余,捣鼓了下python,心心念想学习,今天就在电脑上装了个2.7,学习了下经典算法,冒泡与选择排序法 第一次写关于python的文章,说的不当之处,多多指正,我积极改正 ...

  10. C# Clone控件

    /// <summary> /// Perform a Clone of the object asdfas. /// </summary> /// <typeparam ...