文档章节

gitolite配置简介

lgscofield
 lgscofield
发布于 2015/04/16 15:21
字数 1065
阅读 37
收藏 0
点赞 0
评论 0

What is gitolite

Gitolite是git的顶层的访问控制层。

下面是一些特性:

  • 在服务器端,使用一个单独的unix用户。
  • 提供多用户访问
    • 他们不是真正的用户
    • 它们不会获得shell权限
  • 控制对多个git仓库的访问
    • 真正的读访问被repo层控制
    • 写访问在branch/tag/file/directory层控制,包括谁能够rewind,create以及delete branches/tags
  • 能够不经过root允许进行安装,假设git和perl已经被安装了
  • 访问认证通常采用sshd,但是也可以使用http

Setting up gitolite

设置gitolite

这是使用gitolite的第二步,在install之后。这个步骤也是发生在server端。


安装完软件之后就可以使用了,使用之前先要设置。

首先你需要有一个public key文件。

假设这个管理员叫做alice,这个公钥可能被命名为alice.pub。

然后主机用户运行

gitolite setup -pk alice.pub

如果这个命令被成功的执行了,那么就完成了设置。

如果有警告,那么可能你提供的这个公钥在服务器上具有获取终端的权限,它不会工作。

通常,gitolite运行在一个用户不能直接访问的主机上,你采用其他的一些用户名登录,然后使用su -git命令。

在此,没有密钥被用来获取shell访问,因此没有冲突。

另外的方法是使用两个不同的密钥,用别名来区分。

setup命令还有其他的用处,因此在安装完了之后你可能还会用到它

  • 当你把一个已有的仓库移动到gitolite中时,更新钩子。或者修正钩子。
  • 更改一个丢失的管理员密钥
  • 设置gitolite为http模式

当有疑问的时候,运行gitolite setup,它不会造成什么损害,当然了如果你有上千个仓库的时候它会有些慢。

Cloning the admin repo

这是使用gitolite的第三步

克隆管理员repo,来到使用公钥设置的工作区,运行

git clone git@host:gitolite-admin

注意,不能包括repositories/部分

你可以在最后包含.git,但是这是可选的

如果这步成功了,那么你可以增加用户,repo仓库,或者其他的事情了。

如果这步失败了,去看看ssh的文档。

Gitolite administration

服务器端的管理

下面的命令要求用命令行访问服务器。

它们通常是一次性或者很少活动的。

  • 更改rc文件的内容
  • 安装客户的hooks,对所有的repos或者某一部分repos
  • 移动已经存在的repos到gitolite

access control via the gitolite-admin repo

日常操作大致如下:

  • 把gitolite-admin repo, clone下来到你的工作区
  • 做出适当的更改
  • add, commit, 以及 push

the conf/gitolite.conf文件

gitolite的大部分功能来自于conf/gitolite.conf文件。

这里面制定了对repos的访问控制细节。

任何关于增加用户的操作都来自于这个文件

下面是个例子

@staff = dilbert alice # line 1
   @projects = foo bar # line 2
   repo @projects baz #line3
       RW+ = @staff #line 4
       - master = ashok #line5
       RW = ashok #line6
       R = wally #line7
       config hooks.emailprefix = ['%GL_REPO] ' #line8

从下面的链接学到更多

  • 基础语法 -- 注释,空格,包含文件等 
  • 定义组, 1,2行
  • 增加删除用户
  • 增加删除repos 3行
  • 定义访问规则 4,5,6,7行
  • gitolite选项
  • git config关键字和值 8行
  • wile repos -- ad hoc, user-created, repos

Basic syntax

basic syntax

通常来说,所有的元素都是用空格隔开的;没有逗号,分号,以及其他的东西。

注释通常用shell的样式,#

用户名和repo名字一样,它们都以字母开始,但是可以用点,下划线,减号连接

用户名可以选择用@符号后面跟一个至少包含一个点号的域名

组名与用户名类似,以@开头

repo的名字里可以包含/符号

默认没有续行的功能,你不需要它们。

inlcude files

gitolite允许你将配置文件分为多个

使用下面的语法来包含进来

include "foo.conf"

可以使用通配符include *.conf

或者使用子目录foo/bar.conf repos/*.conf

© 著作权归作者所有

共有 人打赏支持
lgscofield

lgscofield

粉丝 20
博文 105
码字总数 63036
作品 0
南京
架构师
Centos 7.X 部署基于Git&Gitolite的分布式版本控制系统

1、简介 1.1 git 简介 Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这...

甘兵 ⋅ 2017/12/21 ⋅ 0

ubuntu14.04/Mint17上Gitolite的搭建过程

一、安装git 服务器端 sudo apt-get install git-core 二、在服务器端安装gitolite服务器 sudo apt-get install gitolite Gitolite通过git来管理它的配置文件,我们将要创建一个操作系统的用...

大培哥 ⋅ 2015/11/10 ⋅ 0

Gitolite如何导入其它git代码库

续上节,我们配置了《ubuntu Gitolite管理git server代码库权限》 在这里测试下Gitolite如何导入其它git代码库 要求:原服务器有sdk.git项目,我们导入到Gitolite并配置权限管理。 停止原服务...

科技小能手 ⋅ 2017/11/12 ⋅ 0

git和repo环境搭建

cd ~/src git clone git://eagain.net/gitosis.git Or try "git clone https://github.com/tv42/gitosis.git" cd gitosis/ python setup.py install --prefix=$HOME cd 因为Git本身没有用户和......

蓝桥书生 ⋅ 2013/11/22 ⋅ 0

上云连载:搭建私有可协作的 Git 服务器

教程 上云连载:搭建私有可协作的 Git 服务器 本文是「上云连载」系列的第三篇,将介绍如何在腾讯云 CVM 上搭建一个私有可协作的 Git 服务器。文中操作也适用于其他云服务商提供的服务器资源...

EarlGrey ⋅ 2016/10/24 ⋅ 0

Ubuntu下安装Git和Gitolite

Ubuntu Server 11.04 git的源码包安装 server版系统默认安装时没有gcc工具,需要额外安装,desktop已经有了 当机器可以连接外网后就可以通过sudo apt-get 来安装了 (注意:要先更新一下包源列...

蓝桥书生 ⋅ 2012/05/17 ⋅ 2

Git 的安装 与 权限的控制 (使用Gitolite)

一: Git的安装(centos) (参考 http://www.ccvita.com/tag/git/) 注意: A: Git 没有什么server端和client端之分,Git属于分布式版本控制系统. B: Git 安装步骤 yum install curl curl-devel zl...

求学ing ⋅ 2015/10/28 ⋅ 0

Gitolite 常见错误汇总

1、错误1:在执行 git clone YourGitName@YourIP:gitolite-admin 提示仓库不存在,或者没有权限。** 于是以为别人的文档写的不对,因为真是的 git 仓库是在你当时执行,gitolite setup -pk ...

clebeg ⋅ 2015/04/01 ⋅ 0

CentOS6.*安装gitolite

CentOS6.*安装gitolite 安装基础包 # yum install perl openssh git 创建git用户 # adduser git # passwd git 在git用户家目录下安装gitolite 切换到git用户 # su – git 创建文件夹bin $ m...

nut ⋅ 2013/10/22 ⋅ 5

Gitolite 构建 Git 服务器

如果不是要和他人协同开发,Git 根本就不需要架设服务器。Git 在本地可以直接使用本地版本库的路径完成 git 版本库间的操作。 但是如果需要和他人分享版本库、协作开发,就需要能够通过特定的...

PGSmith ⋅ 2013/07/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何优雅的编程——C语言界面的一点小建议

我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以...

柳猫 ⋅ 31分钟前 ⋅ 0

从零手写 IOC容器

概述 IOC (Inversion of Control) 控制反转。熟悉Spring的应该都知道。那么具体是怎么实现的呢?下面我们通过一个例子说明。 1. Component注解定义 package cn.com.qunar.annotation;impo...

轨迹_ ⋅ 32分钟前 ⋅ 0

系统健康检查利器-Spring Boot-Actuator

前言 实例由于出现故障、部署或自动缩放的情况,会进行持续启动、重新启动或停止操作。它可能导致它们暂时或永久不可用。为避免问题,您的负载均衡器应该从路由中跳过不健康的实例,因为它们...

harries ⋅ 33分钟前 ⋅ 0

手把手教你搭建vue-cli脚手架-详细步骤图文解析[vue入门]

写在前面: 使用 vue-cli 可以快速创建 vue 项目,vue-cli很好用,但是在最初搭建环境安装vue-cli及相关内容的时候,对一些人来说是很头疼的一件事情,本人在搭建vue-cli的项目环境的时候也是...

韦姣敏 ⋅ 44分钟前 ⋅ 0

12c rman中输入sql命令

12c之前版本,要在rman中执行sql语句,必须使用sql "alter system switch logfile"; 而在12c版本中,可以支持大量的sql语句了: 比如: C:\Users\zhengquan>rman target / 恢复管理器: Release 1...

tututu_jiang ⋅ 57分钟前 ⋅ 0

Nginx的https配置记录以及http强制跳转到https的方法梳理

Nginx的https配置记录以及http强制跳转到https的方法梳理 一、Nginx安装(略) 安装的时候需要注意加上 --with-httpsslmodule,因为httpsslmodule不属于Nginx的基本模块。 Nginx安装方法: ...

Yomut ⋅ 今天 ⋅ 0

SpringCloud Feign 传递复杂参数对象需要注意的地方

1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用...

@林文龙 ⋅ 今天 ⋅ 0

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 今天 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 今天 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部