`
annan211
  • 浏览: 461178 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

gitolite 对git进行权限管理

    博客分类:
  • git
 
阅读更多

作者原创 请尊重知识。

第一步 配置本地、服务器git环境 省略。
第二步 创建服务器git账户 省略。
  
第三步 在服务器安装gitolite

3.1 设置gitolite工作目录

#cd /home/git
	#chown -R git:git /home/git
	#chmod -R 2755 /home/git


  请尊重知识,请尊重原创 更多资料参考请见  http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1


3.2下载gitolite

#git clone git://github.com/sitaramc/gitolite.git



3.3安装gitolite

#su git
	#cd ./gitolite
	#mkdir -p ~/bin
	#./install -to ~/bin
	#echo "PATH=$PATH:$HOME/bin" >> ~/.bashrc
	#source  ~/.bashrc   使环境变量生效



3.4 生成公钥与私钥
下一步需要使用到管理员的公钥,在客户端生成公钥与私钥,把公钥上传到git服务器
为了方便,我在git服务器本地生成公钥和私钥,也在git服务器本地进行测试。其实把私钥拷贝到客户端使用也可以。

#su root  切换到root用户
#ssh-keygen -t rsa -f jingfn
下面一直输入“回车”就可以,生成的公钥和私钥在当前下面
把jingfn.pub复制到根目录/下

#cp jingfn* /



将公钥jingfn.pub 私钥jingfn文件 权限修改为git

#chown git jingfn*



3.5 setup
#su git
#cd ~/bin
#./gitolite setup -pk /jingfn.pub


这一步容易出现 如下错误

FATAL: '/jingfn.pub' not a readable file
	FATAL: '/jingfn.pub' must have exactly one line


请仔细检查jingfn.pub文件的所有权是否是git. 可以考虑重新生成。

此ppk文件是客户端访问服务器的ssh密钥文件。在克隆的时候需要用到,
在提交代码的时候 同样用到。只要使用torioseGit软件,本地一般会有pageant服务并且出现在桌面右下角。
点击开 add key 将ppk文件加进去即可。

将会显示下面的初始化信息

Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
	Initialized empty Git repository in /home/git/repositories/testing.git/
	


3.6 生成ppk
找到刚刚生成的jingfn(私钥,与公钥一起生成)
下载puttygen,运行puttygen,点击Conversions菜单项中的Import key ,
选择在刚刚生成的jingfn文件 ,在puttygen的界面上点击Save private key按钮就可以把私钥转换为ppk的格式了,
并存放好自己的ppk。

3.7 克隆gitolite-admin管理仓库
方法一 使用图形化界面
右键点击 git clone
设置好 url ,其格式为 git:120.24.239.225:gitolite-admin
设置 load putty key 选择刚刚生成并保存的ppk文件。

这时候就可以直接clone了。一般设置了load putty key之后,pull 和push 都是不需要填写密码的。

方法二 使用git bash
前提仍然是 需要先设置好 load putty key,否则不允许通过。

shell> git clone git@120.24.239.225:gitolite-admin.git 
	
	提交修改到服务器
   shell> git add .
   shell> git commit -am "update gitolite conf file"
   shell> git remote rm origin
   shell> git remote add origin git@120.24.239.225:gitolite-admin.git
   shell> git push origin master


  
  方法三 在Linux客户端直接克隆
 

 shell> git clone git@120.24.239.225:gitolite-admin.git 
   提交修改到服务器
   shell> git add .
   shell> git commit -am "update gitolite conf file"
   shell> git remote rm origin
   shell> git remote add origin git@120.24.239.225:gitolite-admin.git
   shell> git push origin master


  
  3.8 测试
   clone到本地的gitolite-admin 仓库,其结构为 keydir 和 conf
   keydir 用于存放需要访问各个仓库的客户端公钥,conf下的gitolite.conf 文件用于配置客户端的权限。

  
  

 repo gitolite-admin
    RW+     =   jingfn

   repo testing
    RW+     =   @all



   在编辑gitolite.conf文件之前,服务器仓库testing.git 是可以正常被clone盗本地的,并且可以写入新的文件。
   编辑gitolite.conf文件 去除testing 仓库下的所有用户

  
 

 repo gitolite-admin
    RW+     =   jingfn

   repo testing


   
这时候在本地 不管是push 还是pull 都是不被允许的。

到这里 基本完成了gitolite的权限配置。
  
3.9 用户组定义

repo gitolite-admin
			RW+     =   jingfn

		repo testing
			RW+     =   @all
			
		@admin = jingfn 
				
		@android_admin = jinchengLi jingfn
		@android = jinchengLi ouxch fwl jingfn joie luoyy Aaron dongzhuoyue
				
		@java_admin = jingfn 
		@java =jingfn joie wenquan zhengbobo
				
				
		repo gitolite-admin
		RW+     =   @admin
				
		repo android/..*
		C = @android_admin @admin
		RW = @android
				
		repo java/..*
		C = @java_admin @admin
		RW = @java

		repo kp-android
		C = @android_admin 
		RW = @android

		repo kp-android-old
		C = @android_admin 
		RW = @android
				
		repo kp-set-001
		C = @java_admin @admin
		RW = @java



这里修改了gitolite.conf文件 其权限分配规则是 ,定义了一组超级管理员@admin
以及 android 和java 的超级管理员和普通成员。

C 表示可以在该目录下创建版本库,创建版本库的用户拥有版本库的所有权限。

我们只需要添加一个 repo 并且push gitolite-admin 到服务器,服务器会自动新建
我们需要的新仓库,我们只需在本地客户端指向服务器git即可提交。

 

分享到:
评论

相关推荐

    ubuntu系统搭建git+gitolite实现git权限管理手册

    ubuntu系统搭建git+gitolite实现git权限管理手册,目前内网上讲的git+gitolite的帖子有很多,但大部分说的不是很清楚,按照他们的方法搭建可能会踩坑,文内的方法已亲测有效,如有问题可以及时反馈!

    Gitolite构建Git服务器

    总的来说,Gitolite构建Git服务器的过程涵盖了从基础的SSH协议理解,到Gitolite的安装配置,再到精细的权限管理等多个方面。通过对这些环节的深入了解和实践,可以构建出既安全又高效的Git服务器环境,满足企业级...

    gitolite-git-lfs:用于 git-lfs 集成的示例 gitolite 命令(适用于 django-git-lfs)

    gitolite-git-lfs 这是 gitolite 的概念证明 git-lfs 存储... 这是用于授予对服务器的访问权限的秘密值。 (参见 django-git-lfs 的 settings.LFS_PERMS_TOKEN 以供参考) 将 git-lfs-authenticate 放入 $LOCAL_CO

    GIT服务器 Gitolite.zip

    Git服务器Gitolite是搭建基于Git的分布式版本控制系统的一个强大工具,它允许用户轻松地管理和控制对Git仓库的访问权限。Git自身虽然提供了强大的版本控制功能,但对用户权限的管理相对简单,不适合大规模协作环境。...

    基于gitolite 搭建Git服务器

    Git服务端的搭建需要多用户协作及其权限控制等功能,这需要用户管理权限控制组件的支持,目前这类组件主要有两类:Gitosis和Gitolite。 Gitosis起初功能强大,但于09年不再更新。 Gitolite原本是作为Gitosis的lite...

    <Pro Git>中文版、Git+Gitolite_TortoiseGit、git学习文档

    Gitolite是一款基于Perl编写的Git服务器管理工具,它可以方便地控制用户对Git仓库的访问权限,实现细粒度的读写控制。结合Git,Gitolite允许团队成员安全地进行代码共享和协作,同时确保数据的安全性。 TortoiseGit...

    git gitolite repo 代码服务器配置记录

    git gitolite repo 代码服务器配置记录 为android等源码创建repo服务器,通过gitolite管理权限

    gitolite官方最新版

    Gitolite是一款强大的Git访问控制工具,它允许管理员在服务器上对多个Git仓库进行权限管理。Gitolite的出现解决了Git本身在权限控制上的局限性,使得团队协作更加安全和高效。这款工具由Rajesh尼克坦开发,以其轻量...

    GIT+Gitolite_TortoiseGit

    **Gitolite**是一款基于Git的轻量级仓库管理工具,特别适合中小型企业或团队使用,简化了Git仓库的管理和权限控制。 - **SSH认证**:Gitolite利用SSH的公钥认证机制,确保只有授权用户才能访问指定的仓库。 - **...

    Ubuntu-12.04-Server-amd64-git-gitolite安装.docx

    5. gitolite将在/home/git目录下创建`repositories`和`projects.list`,并有一个名为`gitolite-admin.git`的管理库,用于添加用户和配置权限。要更改gitolite的默认仓库路径,修改`.gitolite.rc`文件。 6. 在客户端...

    git安装配置手册

    Gitolite 是一个 Git 仓库管理工具,它可以帮助您管理 Git 仓库和用户权限。在安装 Gitolite 之前,需要将 Gitolite 的源码 Clone 到当前目录下,然后使用 Git 用户安装 Gitolite。 三、Gitolite 配置 在安装...

    gitolite.tar.gz

    Gitolite是一款强大的Git服务器权限管理系统,它允许管理员对Git仓库进行精细的权限控制,包括读、写、推送等操作。这款工具最初由Srikanth Rajagopalan开发,并且持续更新和维护,旨在为Git用户提供高效且安全的...

    Ubuntu-12.04-Server-amd64-git-gitolite安装.pdf

    本文将详细介绍如何在Ubuntu 12.04 Server上安装Git以及使用Gitolite进行版本控制管理。首先,我们通过包管理器`apt-get`来安装Git。在Ubuntu系统中,我们可以执行以下命令来安装Git基础组件: 1. `sudo apt-get ...

    在centos下搭建 git+gitolite 安装和部署

    讲速了 在centos 下搭建git服务器 用gitolite 来管理权限 很经典 值得拥有

    gitolite-2.3.1.tar.gz

    Gitolite是一款强大的Git服务器管理工具,它允许管理员在一台服务器上高效地管理多个Git仓库,并对用户访问这些仓库的权限进行细粒度控制。Gitolite的核心特性包括权限管理、用户认证、仓库克隆与推送限制等。下面将...

    gitolite服务器搭建

    将 `/data/git` 目录的所有权更改为 `gitolite` 用户,并设置合适的权限。 ```bash sudo chown -R gitolite:gitolite /data/git sudo chmod -R 755 /data/git ``` **7. 切换到Gitolite用户** 接下来,我们需要...

    git创建服务器端

    在搭建Git服务器端时,我们可以选择不同的工具,如GitLab、GitHub、Gitolite或Gitblit。这里我们将重点讨论Gitblit,一个轻量级且易于配置的Git服务管理器。 三、安装Gitblit 1. 下载Gitblit:访问Gitblit官网下载...

    搭建git服务器

    3. **Gitolite简介**:Gitolite是一个轻量级的、易于配置的Git服务器管理系统,支持多用户、多仓库、权限管理等功能。 #### 四、搭建步骤 1. **安装Git和SSH** - 在Ubuntu服务器上安装Git和SSH两个核心软件。 ```...

    git服务器搭建

    Gitolite 是一个用于管理 Git 仓库的权限控制系统,它允许管理员控制用户对 Git 仓库的访问权限。以下是使用 Gitolite 构建 Git 服务器的步骤: ### 2.1 安装 Gitolite #### 2.1.1 服务器端创建专用帐号 首先,...

    gitolite用户使用说明

    Gitolite是一款用于管理Git仓库权限的工具,它允许系统管理员设置细粒度的访问控制,从而确保代码库的安全性和协作效率。本文档旨在指导用户如何使用Gitolite进行基本的操作,包括SSH密钥的生成与配置、代码的克隆与...

Global site tag (gtag.js) - Google Analytics