Gitolite 简介
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 2repo @projects baz #line3RW+ = @staff #line 4- master = ashok #line5RW = ashok #line6R = wally #line7config 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
Gitolite 简介相关推荐
- git简介、安装、基本操作——Git折腾小记
这两天刚完成了一个小项目,整理资料发现现在写代码跟文档又没有版本控制的意识,刚好前两天电脑出问题,差点所有代码跟文档全丢掉,所以这两天又在自己的台式机上架起了git,做所谓的代码服务器,之前折腾过一次 ...
- git服务器文件同步,使用gitolite搭建git服务器并实现文件的自动备份
现在搭建git服务器是一件比较简单的事情,有很多现成的工具,个人感觉比较好的是使用GitLab搭建git服务器,搭建完成了只有在电脑的浏览器中输入对应的网址就能看到图形界面,图形界面和github很像 ...
- etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理
1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...
- Docker学习(一)-----Docker简介与安装
一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...
- 【Spring】框架简介
[Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...
- TensorRT简介
TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...
- 谷粒商城学习笔记——第一期:项目简介
一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...
- 通俗易懂的Go协程的引入及GMP模型简介
本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...
- Linux 交叉编译简介
Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...
最新文章
- 新笔记本怎么在桌面添加计算机文件夹,win10桌面悬浮文件夹怎么弄_win10电脑桌面悬浮文件夹如何添加-win7之家...
- 在Android上使用Socket
- [JS-DOM]核心DOM模型(Document,Element,Node)
- 推动Windows的限制:USER和GDI对象 - 第2部分
- (31)css常用属性兼容问题—需要加前缀的属性总结
- AI实战分享 | 基于CANN的辅助驾驶应用案例
- Zoom创始人袁征转让约1800万股股票 价值超过60亿美元
- OA选型案例:建筑行业选型华天OA系统
- Python+数据库+前端+Django
- 【Python游戏】Python各大游戏合集:超级玛丽、天天酷跑、我的世界、魔塔、雷霆战机 | 附带源码
- matlab实时处理数据,Matlab下实现的实时数据采集和处理
- Unity 安装个人免费版
- 我九点钟上计算机课用英语怎么说,人教版四年级英语下册 第5次课 Unit 2 What time is it 时间的表达方式...
- 用40年前的电脑打开《花花公子》封面女郎图片,这可能吗?
- MES主要功能模块介绍
- 牛客习题总结38(7月13日)
- Google Code Jam 2010 Qualification Round 资格赛 Problem A. Snapper Chain 问题A.按扣链条
- 关于Hibernate的Session和SessionFactory
- 信噪比(一些概念,公式推导,实验分析)
- 【项目总结】基于SpringBoot+Ansj分词+正倒排索引的Java文档搜索引擎项目总结