gitosis是Git下的权限管理工具,通过一个特殊的仓库(gitosis-admin.git)对Git权限进行管理。

一、服务端安装并配置gitosis

(1)通过以下方式获取到安装包

root@wz:/home/git# git clone https://github.com/res0nat0r/gitosis

(2)使用python进行安装

root@wz:/home/git# python gitosis/setup.py install

(3)将authorized_keys移除或重新命名为authorized_keys.bak,Gitosis 将为我们管理公钥,后再重新添加公钥,并且让 Gitosis 自动控制authorized_keys文件。

root@wz:/home/git/.ssh# pwd

/home/git/.ssh

(4)将之前的git用户bash登陆设置修改过来

vim /etc/passwd

46 git:x:1002:1002:,,,:/home/git:/bin/bash

(5)初始化 Gitosis ,需要通过自己的公钥来运行gitosis-init,首先将我本地的公钥复制到服务端:

y@y:git$ scp /home/y/.ssh/id_rsa.pub  wzh@192.168.0.143:tmp/

wzh@192.168.0.143's password:

id_rsa.pub                                       100%  399     0.4KB/s   00:00

y@y:git$

服务端执行以下操作:注意不是在超级管理员用户下的:

wzh@wz:/home/git$ sudo -H -u git gitosis-init < ~/tmp/id_rsa.pub

这样该公钥的拥有者就能修改包含着 Gitosis 设置的那个 Git 仓库了。

此时目录结构如下:

同时.ssh下面会生成一个:authorized_keys文件

由gitosis管理的仓库放在:repositories/目录下面

此时在repositories/目录下面初始化一个空的仓库:

二、客户端操作gitosis

(1)现在可以试一下用初始化 Gitosis 公钥的拥有者身份 SSH 进服务器:

说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令所以它切断了连接。

(2)克隆 Gitosis 的控制仓库到本地:

注意:IP后面直接跟仓库的名称,无需路径,gitosis-admin.git在服务端的           repositories/目录下面。

gitosis-admin目录结构如下:

gitosis.conf文件是用来设置用户、仓库和权限的控制文件。

keydir 目录则是保存所有具有访问权限用户公钥的地方每人一个。

(3)修改 gitosis.conf配置文件并同步到服务端:其操作方式与普通的Git仓库一致,

提交到服务端之后,查看服务端:

(4)如果是多人协助开发同用一个版本库,则需要将他们每个人的公钥文件添加到keydir文件夹然后push到服务端。

文件的命名将决定在gitosis.conf配置文件中的称呼。

例如:参考《ProGit》

现在我们为 John,Josie 和 Jessica 添加公钥:

$ cp /tmp/id_rsa.john.pub keydir/john.pub

$ cp /tmp/id_rsa.josie.pub keydir/josie.pub

$ cp /tmp/id_rsa.jessica.pub keydir/jessica.pub

然后把他们都加进 ‘mobile’ 团队,让他们对iphone_project具有读写权限:

[group mobile]

writable = iphone_project

members = scott john josie jessica

Gitosis 也具有简单的访问控制功能。如果想让 John 只有读权限,可以这样做:

[group mobile]

writable = iphone_project

members = scott josie jessica

[group mobile_ro]

readonly = iphone_project

members = john

现在 John 可以克隆和获取更新,但 Gitosis 不会允许他向项目推送任何内容。

git版本控制gitosis的安装与使用相关推荐

  1. git版本控制工具的安装以及关联远程仓库(gitee为例)

    安装git(版本控制工具) 360软件管家安装(网络不佳的同学) git --version(测试是否安装完成,或者在桌面右击可以看到Git Gui here和Git Bash here) 配置用户名 ...

  2. git修改服务器的命令行,Git版本控制工具安装及命令行操作

    很多小伙伴不知道如何来安装Git版本控制工具,对于命令操作比较陌生.本文做了一个详细的文档,希望对大家有所帮助. 1.git 是什么一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制 ...

  3. Git服务器Gitosis安装设置

    1.安装 openssh服务器 sudo apt-get install openssh-server openssh-client 2.创建个人公钥和私钥 在默认用户的主目录路径下,运行以下命令,按 ...

  4. 为git服务器配置gitosis管理权限

    yum install python-setuptools git clone https://github.com/tv42/gitosis.git cd gitosis sudo python s ...

  5. Git 版本控制之 GitFlow

    来源:  http://t.cn/EbZKx96 最近在着手制定开发规范,想要把项目正规高效的跑起来.计划引入 Git 版本控制,Git-Flow 便成为了首选.因为之前并没有过多接触,所以先花些时间 ...

  6. git版本控制工具(二)----本地版本库的常用操作

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  7. git通过gitosis来管理权限(三)

    首先,git服务器的安装参见 http://blog.csdn.net/lyhdream/article/details/49561645 这篇文章的一小节. 开始安装gitosis 一.首先安装py ...

  8. CentOS下搭建Git服务器Gitosis

    说明:由于条件有限,我这里使用的是同一台centos的,但教程内容基本上通用. 1.编译安装git git安装教程:http://blog.haohtml.com/archives/10093 2.安 ...

  9. Git版本控制工具的使用一

    Git是一个开源的分布式版本控制工具,它的开发者就是Linux操作系统的作者Linus Tovarlds.Git被开发出来的初衷是为了更好的管理Linux内核,如今却被广泛地用于全球各大大中小型的项目 ...

  10. 九步学会Git版本控制的基础使用(保姆级教程)

    Git版本控制的基础使用 ==一.简介.安装与配置== ==简介== ==安装== ==配置== ==二.创建项目.忽略文件== ==三.初始化仓库== ==四.检查状态== ==五.加入仓库== = ...

最新文章

  1. android5.0(Lollipop) BLE Peripheral深入理解系统篇之提高篇
  2. 编译安装php之安装libiconv-1.14.tar.gz出错解决方法
  3. python学习-数据类型(布尔、空值)
  4. 【Transformer】ViT:An image is worth 16x16: transformers for image recognition at scale
  5. 【线性dp】【决策优化】CH5E02
  6. Socket编程:之TCP案例
  7. 泛型(java菜鸟的课堂笔记)
  8. Oracle BCT(Block Change Tracking)与增量备份
  9. TensorFlow 2.4 发布
  10. iis5.1配置php运行环境
  11. 图像融合(三)-- 拉普拉斯金字塔
  12. 2017值得一瞥的JavaScript相关技术趋势
  13. 强化学习在游戏中的作用_游戏中的强化学习
  14. Es6 类class的关键 super、static、constructor、new.target
  15. 安卓端黑名单拦截电话
  16. 展讯8541E:NFC PM1810驱动调试
  17. python使用抓包工具Fiddler4和selenium获取国家药监局网站数据
  18. cc2430的中文资料
  19. Oracle导入sas数据集,来自SAS数据集的Oracle表
  20. 关于bios+mbr还原uefi+gpt的系统后,出现进不去系统的问题

热门文章

  1. log4j2远程执行漏洞原理以及解决方案
  2. 编程训练4-统计单词平均长度
  3. e4a 安卓获取ROOT权限的方法思路 转载
  4. 【网络特效】12 个炫酷背景特效库
  5. 08-Linux账号管理学习
  6. 将1自动补位为01_英雄联盟如何避免被自动补位到辅助位置
  7. 低代码架构,内容赋能业务的最后一块拼图?
  8. 郑州大学计算机翟雨轩,郑州大学文件-20210331220732.doc-原创力文档
  9. mac excel 换行 快捷键
  10. [转]管理的最高境界不是完美