Gitolite+Gitweb配置实现Git权限管理教程

文章中使用的server,指的是的服务器端的公网ip。
/mnt是我的阿里云外挂盘,新建用户不指定目标位置,会自动在/home下生成。

Gitolite配置

1、在指定目录/mnt/git下建立一个git的用户并给用户git设置密码。(服务器端-用户:root)

useradd -d /mnt/git -s /bin/bash git
passwd git
测试是否建立成功,如果通过ssh连接成功即证明用户已经建立成功。

ssh git@server
2、clone gitolite(服务器端-用户:git)

// 切换到git用户
su git
// 切换到git根目录
cd
// clone gitolite
git clone https://github.com/sitaramc/gitolite.git
成功后会在根目录看到一个gitolites的目录。

3、客户端生成秘钥(客户端)

ssh-keygen
会在你登录的用户的目录下找到.ssh目录,我的目录是C:\Users\new\.ssh,复制id_rsa.pub到d盘根目录。

通过ssh上传id_rsa.pub,并重命名为admin.pub。

// 切换到d盘目录执行
scp id_rsa.pub git@server:admin.pub
执行完成后,切换到服务器端可以在git用户的根目录下找到admin.pub

4、开始安装gitolite (服务器端-用户:git),所有操作都是在git的根目录。
注意点:
进入.ssh目录,如果有authorized_keys,删除即可。

// 新建bin目录
mkdir bin

// 安装gitolite,默认会安装到bin,如果想安装到你自己之的指定的目录请参考官方安装 -to
gitolite/install -ln

// 配置秘钥
bin/gitolite setup -pk admin.pub

测试是否执行成功

首先git根目录下是否生成了projects.list和repositories
同时可以进入.ssh,可以看到新生成的authorized_keys,以后每一次提交新用户都会写到这个里边。判断是否用户添加成功,看这个里边文件是否新增了那个用户的key即可。

5、客户端clone gitolite-admin(客户端)

// 结尾不需要加.git
git clone git@server:gitolite-admin

6、添加新用户(客户端)

修改gitolite-admin/conf/gitolite.conf

@developer  =   weiwei1628 mac

repo gitolite-admin

    RW+     =   weiwei1628 mac

repo testing

    RW+     =   @all

repo anhei
    RW+     =   @developer
将新用户的key都放到keydir

push到服务器即可,查看是否成功,去服务器进入git用户,查看.ssh/authorized_keys,里边会多了新的key。

Gitweb配置

1、安装(服务器端-用户:root)

yum install gitweb

2、配置(服务器端-用户:root)

/etc/gitweb.conf

$projectroot = "/home/git/repositories/";

3、重启httpd(服务器端-用户:root)

service httpd restart
即可看到gitweb的网站,但是会出现404找不到项目的情况。
这个问题是权限问题,查不不少资料,也遇到不少坑。

最终的解决方案:

首先要修改/home/git/.gitolite.rc中的UMASK,将0007修改为0027。

修改git及其根目录的读写权限为 755。

// 切换到root,在root根目录执行
chmod -R 755 /mnt/git
网上有配置方法,但是gitweb是找到项目了。但是客户端有clone不下文件了。提示秘钥没权限

chmod g+r /mnt/git/projects.list
chmod -R g+rx /mnt/git/repositories

时间: 2024-10-27 00:55:02

Gitolite+Gitweb配置实现Git权限管理教程的相关文章

linux中配置Gitolite+Gitweb+Nginx步骤详解

Gitolite是功能非常强大的Git服务器构建工具,可以比较方便地实现用户权限管理等功能.但是Gitolite是一个纯粹的Git服务器,不像Gitlab等项目,自身不具备其它的访问和浏览方式. 之前的服务器上也配置过Gitolite,同时配合Redmine来用.对我来说不管是Gitlab还是Redmine功能都太过丰富了.实际上自己的服务器上装Gitolite只是放一些私有库,我只需要一个简单直观的Web浏览功能而已.论项目协作的话,不管是Github还是国内的Gitcafe和OSC都是很不错

Ecshop 后台添加新功能栏目及管理权限设置教程

一.添加菜单项 打开 /admin/includes/inc_menu.php文件(后台框架左边菜单),在最后添加一行如下: 1$modules['17_other_menu']['sns_list'] = 'sns_list.php?act=list'; ecshop默认一级菜单项有16项,所里这里的例子从17开始.当然这个key可以随便取的,index.php文件中对菜单用了ksort排序."17_other_menu" 表示一级菜单,"sns_list"表示二

基于mvc5+ef6+Bootstrap框架实现身份验证和权限管理_C#教程

近和朋友完成了一个大单子架构是mvc5+ef6+Bootstrap,用的是vs2015,数据库是sql server2014.朋友做的架构,项目完成后觉得很多值得我学习,在这里总结下一些心得. 创建项目一开始删掉App_Start目录下的IdentityConfig.cs和Startup.Auth.cs文件;清空Modle文件夹,Controller文件夹和相应的View; 删除目录下的ApplicationInsights.config文件和Startup.cs文件 修改web.config文

MS SQL基础教程:权限管理

14.4.1 权限管理简介 用户在登录到SQL Server 之后,其安全账号(用户账号)所归属的NT 组或角色所被授予的权限决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问.修改哪些数据.在SQL Server 中包括两种类型的权限,即对象权限和语句权限. (1) 对象权限 对象权限总是针对表.视图.存储过程而言,它决定了能对表.视图.存储过程执行哪些操作(如UPDATE. DELETE. INSERT. EXECUTE).如果用户想要对某一对象进行操作,其必须具有相应的操作的权限.例

C#权限管理和设计浅谈_C#教程

此文主要想和大家分享的是这段时间,对权限管理和设计的断断续续的思考学习,和个人的一些软件开发等方面的看法. 提到'权限管理和设计',大家可能会第一时间想到这园子里的 吉日嘎拉,在这方面他可以算是'大牛'或专家 --他的'通用权限管理系统',究竟做的怎样,看看他的博客就差不多可以知道了(貌似我在给他做推广,呵呵...,but in fact,is not),别的暂且不敢说,最起码可以看出他研究的比较深入和狂热,其系统也具有一定的'成熟度',用他的话来说--就是在努力做到他的极致.他做的是通用权限管

centos6中gitolite安装配置步骤详解

git服务端的管理工具用过2个,一个gitlab,一个是gitolite, 1,gitlab功能强大,有web管理界面,反正是各种方便吧,请参考:linux gitlab nginx 安装 配置 详解,但是gitlab安装比较麻烦 2,gitolite,安装非常简单,功能也比较简单,基本需要能满足,创建仓库,分配权限,总体来说还不错. 如果频繁的创建仓库,以及人员变更,用gitlab比较合适的,反之gitolite比较合适. 一,安装GIT # yum install perl openssh

谈谈 Docker Volume 之权限管理(一)

Volume数据卷是Docker的一个重要概念.数据卷是可供一个或多个容器使用的特殊目录,可以为容器应用存储提供有价值的特性: 持久化数据与容器的生命周期解耦:在容器删除之后数据卷中的内容可以保持.Docker 1.9之后引进的named volume(命名文件卷)可以更加方便地管理数据卷的生命周期:数据卷可以被独立地创建和删除. 数据卷可以用于实现容器之间的数据共享 可以支持不同类型的数据存储实现 Docker缺省提供了对宿主机本地文件卷的支持,可以将宿主机的目录挂载到容器之中.由于没有容器分

Laravel5权限管理方法详解_php实例

本文实例讲述了Laravel5权限管理的实现方法.分享给大家供大家参考,具体如下: 关于权限管理的思考 最近用laravel设计后台,后台需要有个权限管理.权限管理实质上分为两个部分,首先是认证,然后是权限.认证部分非常好做,就是管理员登录,记录session.这个laravel中也有自带Auth来实现这个.最麻烦就是权限认证. 权限认证本质上就是谁有权限管理什么东西.这里有两个方面的维度,谁,就是用户维度,在用户维度,权限管理的粒度可以是用户一个人,也可以是将用户分组,如果将用户分组,则涉及到

Laravel5权限管理方法详解

本文实例讲述了Laravel5权限管理的实现方法.分享给大家供大家参考,具体如下: 关于权限管理的思考 最近用laravel设计后台,后台需要有个权限管理.权限管理实质上分为两个部分,首先是认证,然后是权限.认证部分非常好做,就是管理员登录,记录session.这个laravel中也有自带Auth来实现这个.最麻烦就是权限认证. 权限认证本质上就是谁有权限管理什么东西.这里有两个方面的维度,谁,就是用户维度,在用户维度,权限管理的粒度可以是用户一个人,也可以是将用户分组,如果将用户分组,则涉及到