gitolite安装及配置教程centos7

article/2025/10/3 23:21:48

 

1. 安装依赖包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y

 

2.安装 Git

yum -y install git

 

3.创建git用户

useradd git
passwd git
# 输入再次git用户的密码# 切换到git用户
su git

4.获取Gitolite版本库并安装配置

   4.1 获取gitolite

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

  4.2 创建bin目录并安装gitolite

mkdir /home/git/bin
gitolite/install -to /home/git/bin

 

如果是CentOS7在安装可能会报如下错误

 

原因是:缺少 Data-Dumper-2.154.tar.gz这个包,直接下载安装就ok了

wget http://www.cpan.org/modules/by-module/Data/Data-Dumper-2.154.tar.gz
tar xvzf Data-Dumper-2.154.tar.gz
cd Data-Dumper-2.121
perl Makefile.PL
make
make install

 

5. 配置gitolite管理员

  gitolite 使用特殊的版本库gitolite-admin 来管理用户和版本库,所以需要创建一个管理员来管理所有的用户和版本库

  5.1 生成公钥

  用git用户生成公钥(注:如果你是接着上面一直做下来的,那么只需要输入cd ,然后回车,则就进入了该用户的目录,如果不是git用户,则需要输入su – git,来切换到git用户) 

  •   配置管理员识别
git config --global user.name "admin"
git config --global user.email "admin@XX.com"

 

  •   生成ssh公钥
cd 
ssh-keygen -t rsa

  然后一路回车。。。

  生成的公钥与私钥在 /home/git/.ssh/ 目录下

 

   5.2 修改.ssh/id_rsa.pub 为admin.pub(为什么要改成admin.pub 因为gitolite根据这个文件名来设立帐号.我这里用admin

mv .ssh/id_rsa.pub admin.pub

 

  5.3 使用管理员公钥安装gitolite(然后去/home/git/repositories 里面,可以看见仓库文件.gitolite-admin.git 和test.git 一个是管理仓库的,一个是测试用)

/home/git/bin/gitolite setup -pk admin.pub

 

  5.4 生成管理员管理仓库(不需要输密码)

git clone git@127.0.0.1:gitolite-admin

 

  进入仓库后可以看到conf 和keydir ,conf/gitolite.conf 是添加用户/仓库的配置, keydir 是放对应用户的公想·x钥.并且此时,admin.pub这个公钥可以删除了

 

  5.5 编辑gitolite.conf

vim gitolite-admin/conf/gitolite.conf

  完成如下图:(可以在项目前面添加文件路径)

 

 

说明:

定义两个用户组:dev、test

定义三个版本库:gitolite-admin、testing、xk-edu

用户组可以设置多个用户,用空格分开,RW+ 是最高权限(读写删)

5.6权限详解:

权限配置在gitolite.conf中进行,注释用#表示。
C

C 代表创建。仅在 通配符版本库 授权时可以使用。用于指定谁可以创建和通配符匹配的版本库。

R, RW, 和 RW+

R 为只读。RW 为读写权限。RW+ 含义为除了具有读写外,还可以对 rewind 的提交强制 PUSH。

RWC, RW+C

只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 C 的含义是允许创建和正则引用匹配的引用(分支或里程碑等)。

RWD, RW+D

只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 D 的含义是允许删除和正则引用匹配的引用(分支或里程碑等)。

RWCD, RW+CD

只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 C 的含义是允许创建和正则引用匹配的引用(分支或里程碑等),D 的含义是允许删除和正则引用匹配的引用(分支或里程碑等)。

-

 是一条禁用指令。只对写操作起作用,即禁用用户的写操作。
 
接下来实际分析一个稍微复杂一些的配置文件

1   @admin = git keven admin1 admin2
2   @devteam = dev1 dev2 dev3 fish
3 
4   repo gitolite-admin
5       RW+                 = git keven
6 
7   repo Projects/.+
8       C                   = @admin
9       RW                  = @all
10 
11  repo testing
12      RW+                  =   @admin
13      -                    =   fish
14      RW      master       =   @dev
15      RW+     dev          =   dev1
16      RW      wip$         =   dev2


逐行解释:

 

1: @admin用户组有git keven admin1 admin2四个用户
2:@devteam用户组有dev1 dev2 dev3 fish四个用户
4:对于gitolite-admin仓储
5:git keven两个用户拥有读/写/强制更新的权限
7:对于Projects下所有的git仓储(/.+代表递归所有)
8:@admin用户组拥有创建仓储的权限
9:所有人均可读/写
11:对于testing.git
12:@admin用户组拥有读/写/强制更新的权限
13:fish是新手,对其屏蔽写的权限。因为其属@dev组,则还只剩下R 读的权限
14:@dev用户组对master开头的分支拥有读/写权限
15:dev1这个用户对dev开头的分支拥有读/写/强制更新的权限
16:dev2这个用户对于wip分支(严格匹配)具有读/写权限


冷门用法,需要用户对gitolite有一定了解
有的时候用户可能需要在服务器端创建属于自己的仓储,这个时候就需要像下边这样:

1  @admin = git keven admin1 admin2
2  repo pub/CREATOR/.+$
3      C       =   @all
4      RW+     =   CREATOR
5      R       =   @admin


每个用户都可以在users/<自己的用户名>目录下创建属于自己的仓储,而这个仓储,自己拥有完整的权限,管理员只有读权限。
注:RW+ = CREATOR丢失会导致只能init空仓储而不能向上推送内容。
用法:
在用户shell中,进入要提交至服务器的仓储,执行:
git push git@server:pub/<username>/somegit.git <branch>
 
用户可以通过ssh git@server perms对仓储权限进行设置,允许其他用户拥有写权限等。
添加读权限是READERS,读写权限是WRITERS
操作:
 

ssh git@server perms pub/<username>/somegit READERS user1
ssh git@server perms pub/<username>/somegit WRITERS user2

 

   5.7 分别把添加上去的用户的公钥放到/home/git/gitolite-admin/keydir目录下

  

 

  5.7 把修改添加提交到版本库

cd /home/git/gitolite-admin
git add keydir/test.pub conf/gitolite.conf    添加指定文件
git add .    添加所有文件到git
git commit -am "new project and add user"    引号里面是提交说明
git push origin master    第一次要加origin master,以后直接git push即可

 

  5.8 提交完成后,查看管理员仓库多了个刚才新建的版本库

 

5.9 远程创建/删除仓库

创建:
关于创建仓储,方法有三种:
a. 登录远程服务器创建
ssh登录服务器,切换至git用户,进入相关目录,创建某仓储

mkdir somegit.git
cd somegit.git
git init --bare


创建完毕
b.修改gitolite.conf创建仓储
打开gitolite-admin/conf/gitolite.conf,添加:

repo testing2RW+    =  @all


保存修改,提交。

git@linux-dev:~/gitolite-admin$ git commit-m'add test2'
[master b26be9a] add test2
1 file changed, 4 insertions(+)
git@linux-dev:~/gitolite-admin$ git push origin master
Counting objects: 7, done.
Delta compression using up to2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4),350 bytes, done.
Total 4 (delta 1), reused0 (delta0)
remote: 初始化空的 Git 版本库于 /home/git/repositories/testing2.git/
To git@127.0.0.1:gitolite-admin0c409e4..b26be9a  master -> master


可以看到,gitolite会自动检测配置文件,发现目前没有的仓储会自动才创建。
c.高端大气上档次
对于通配符版本库,即repo Projects/.+类型的,在有创建权限的用户shell中,本地执行:

mkdir somegit
cd somegit
git init
git commit --allow-empty
git remote add origin git@server:Projects/somegit.git
git push origin master


gitolite会直接创建新的仓储。
删除:
1.在conf/gitolite.conf中删除相关仓储配置信息(gitolite不会自动删除服务器上的文件,这点与add不同);
2.登录服务器删除需要删除的仓储。
 

  7. 在客户机上安装git程序,右键选择Git Bash

ssh -T git@192.168.30.220.git

 

   到此gitolite安装成功。

 

 

如果觉得本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行随意打赏。您的支持将鼓励我继续创作


http://chatgpt.dhexx.cn/article/NGbqCTrL.shtml

相关文章

Git服务器搭建及Gitolite权限管理

之前写过一个Git服务器的简单搭建&#xff0c;那个的权限管理是通过手动配置的。这次用Gitolite来管理&#xff0c;方便快捷。 环境&#xff1a;Ubuntu Server 16.04.3&#xff08;命名GitServer&#xff09;&#xff0c;网络正确配置192.168.xx.xx&#xff08;可以连接Intern…

gitolite

2019独角兽企业重金招聘Python工程师标准>>> gitolite是什么 gitolite是git的权限控制系统。有如下特性: a. 在git服务器上需要一个真实的unix用户 b. 能用不同的账号访问git服务器&#xff0c;这些账号不是真实的unix用户也没有shell权限 c. 能控制多个git仓库的读…

搭建网站显示成功后却打不开主页原因

今年自学了一下建站&#xff0c;在腾讯云购买了域名和服务器&#xff0c;用护卫神主机大师搭了个网站。网站十分简单&#xff0c;运行得十分顺利。 过了两天&#xff0c;网站突然打不开了&#xff0c;页面显示没有备案。上网一查&#xff0c;备案需要准备资料&#xff0c;拍照…

【很容易忽视的问题】为何使用护卫神iis-windows服务器,在使用护卫神主机修改网站信息后则无法访问的根本原因??

本来是正常的网站&#xff0c;只要使用护卫神的主机大师修改一下&#xff0c;网站就提示错误&#xff1a;无法建立到 xxx.com 服务器的连接 不论基于哪个Lamp搭建环境【护卫神、phpstudy、宝塔Lamp】一旦你使用第三方软件为何网站&#xff0c;则必须确保以第三方的为准统一修改…

360主机卫士Linux版,360主机卫士

什么是虚拟补丁? 是一种可以使网站站长摆脱补丁管理困境的解决方案。 虚拟补丁简单的说就是"软补丁"&#xff0c;针对CMS的漏洞&#xff0c;不用站长自己修改CMS代码&#xff0c;在应用防火墙上&#xff0c;生成的特定防护规则。 它的好处&#xff1a; 1.不用修改代…

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

首次使用护卫神的主机系统来搭建运行自己的系统,发现没有办法直接指向框架的public,研究了一下总结出两种方案.如以下: 一. 1,先随意的创建一个主站不做使用. 2,在主站下面新建一个子站作为自己实际的项目配置.在主站目录的基础上追加public文件夹. 以上是第一种解决方法,很常…

护卫神·Nginx大师面板上如何设置伪静态

许多客户在使用护卫神Nginx大师创建网站后&#xff0c;因SEO要求&#xff0c;可能需要使用伪静态功能&#xff0c;在这里护卫神就大体说一下如何设置伪静态。本例以安装wordpress博客程序后设置伪静态&#xff1b;一、先打开桌面上的“护卫神Nginx大师”&#xff0c;右键点击要…

linux系统终端用户名和密码忘记了,主机大师(Linux)登录账户密码忘记的解决办法...

护卫神主机大师linux最新版本方法&#xff1a; 我们建议在初次安装完后复制相关的登录信息并妥善保存好。如没有复制下来&#xff0c;忘记了相关的登录信息或者是账户密码&#xff0c;可通过以下办法解决。 一、登录ssh终端后复制以下命令执行就可以创建一个新的用户&#xff1…

护卫神设置public目录(IIS下TP5如何设置运行目录)

护卫神设置public目录 最近有人问小编&#xff0c;护卫神主机系统或者IIS配置PHP的时候&#xff0c;public设置为对外公开目录这个问题百度无法搜索到真实解决办法&#xff0c;那么我们应该如何将运行目录设置为/public呢&#xff1f; 当我们使用护卫神主机系统配置Thinkphp的…

护卫神mysql远程_护卫神 主机管理系统使用说明(MySQL管理)

感谢大家使用【护卫神主机管理系统】v3.1&#xff0c;该版本支持在windows server 2003/2008/2012&#xff0c;含32位和64位&#xff0c;直接开设配置web站、ftp站&#xff0c;以及sql server和mysql&#xff0c;是您开设和管理虚拟主机的绝好帮手。 但是对于新用户可能在使用上…

护卫神apache大师3.0.0 php,护卫神Apache大师(PHP环境套件)V3.2.0 官方免费版

护卫神Apache大师是一套为方便广大用户管理服务器而开发的软件&#xff0c;集成了多版本PHP环境、Apache、Tomcat、JSP、MySQL、PhpMyadmin、主机管理系统、FilaZilla FTP&#xff0c;支持开设和管理多个主机、MySQL数据库。 【软件性质】自主开发&#xff0c;完全免费。 【运行…

系统切换服务器方法,护卫神•主机管理系统更换服务器方法(移机)

本文主要介绍如何整体迁移主机管理系统和网站到新服务器。 一、备份数据 将老服务器上的主机管理系统数据库备份。 位置&#xff1a;在主机管理系统安装目录下的host/admin/database/my.asp 二、安装主机管理系统 在新服务器安装护卫神•主机管理系统&#xff0c;推荐安装最新版…

护卫神主机大师或者是主机管理系统中创建网站时提示开设失败的解决办法

一种情况&#xff1a;阿里云默认的系统一般会开启密码复杂度的功能&#xff0c;这样在使用护卫神主机大师或者是主机管理系统开设网站时&#xff0c;填写的密码如不符合系统的复杂度要求。那么将出出现以下的提示&#xff1a;解决办法如下&#xff1a;1、打开系统组策略 2、找到…

护卫神 主机大师 MySQL无法远程连接的解决方案

护卫神 主机大师 MySQL无法远程连接的解决方案 背景&#xff1a;服务器小厂独立ip&#xff0c;其他环境直接用护卫神一键安装&#xff0c;因为远程桌面不总是很方便&#xff0c;远程连接MySQL报错 解决办法&#xff1a; 1、各种搜索引擎一阵猛搓&#xff0c;无法解决&#xf…

服务器维护护卫神,护卫神主机重启服务器

护卫神主机重启服务器 内容精选 换一换 通过Web浏览器登录资源&#xff0c;会话连接断开&#xff0c;提示网络连接异常&#xff0c;连接已断开&#xff0c;请重试(Code&#xff1a;T_1006)。云堡垒机系统与资源服务器之间网络连接不稳定&#xff0c;导致连接断开。云堡垒机或资…

护卫神主机大师php,护卫神主机大师下载

护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHPMySQLFTP伪静态PhpMyAdmin)&#xff0c;并可在线开设主机、SQLServer和MySQL;Web方式管理&#xff0c;拥有独立前台和后台面板。护卫神主机大师支持WindowsServer2008/2012&#xff0c;推荐在全新操作系统下安装。 软件…

护卫神mysql提权_护卫神主机大师提权漏洞利用分析

*本文原创作者&#xff1a;Freedom&#xff0c;本文属FreeBuf原创奖励计划&#xff0c;未经许可禁止转载 0x01 前言 护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHP5.2-5.6MySQLFTP伪静态PhpMyAdmin)&#xff0c;并可在线开设主机、SQL Server和MySQL&#xff1b;We…

护卫神mysql提权_护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机大师安装的软件)...

原标题&#xff1a;护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机大师安装的软件) “护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHP5.2-5.6MySQLFTP伪静态PhpMyAdmin)&#xff0c;并可在线开设主机、SQL Server和MySQL&#xff1b;Web方式管理&#xff0…

护卫神mysql域名连接_护卫神·主机大师WEB管理端绑定自己的域名_护卫神

护卫神主机大师面板上的网站管理WEB端地址默认为http://服务器IP:6588/admin。为了方便管理&#xff0c;可以绑定指定的域名&#xff0c;通过以下两种方法修改。 第一种方法&#xff1a; 在服务器上打开“护卫神主机大师”面板&#xff0c;点击“主机系统”旁边的“设置”进去&…

护卫神 更换mysql引擎_护卫神·主机大师更换服务器方法(移机或重装)_护卫神...

本文主要介绍如何转移护卫神主机大师的相关数据及网站数据/SQL数据库&#xff0c;适用于重装系统及迁移服务器。 一&#xff0c;备份数据&#xff1a; 复制备份护卫神主机大师数据库文件&#xff1b; 位置&#xff1a;护卫神主机大师安装目录/host/database/my.asp。 复制备份您…