gitosis使用笔记
gitosis是Git下的权限管理工具,通过一个特殊的仓库(gitosis-admin.git)对Git权限进行管理。
1:服务端安装并配置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/目录下面初始化一个空的仓库:
2:客户端操作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 不会允许他向项目推送任何内容。
转载于:https://www.cnblogs.com/yshyee/p/4288465.html
gitosis使用笔记相关推荐
- Git 学习笔记:自定义Git(完)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- 基于gitosis的Git云端服务器配置
(本文需要自己实践,由于时间关系,我仅仅是做了整理和快速的练习,至于笔记中的账号和ip域名都是我参考文章中的.如果读者有任何问题欢迎留言和发邮件到luoquantao@126.com) 硬件:云端阿里 ...
- git学习笔记(全,附命令大全)
git学习笔记(全) 注:本文参考自廖雪峰官网 下图来自Git Cheat Sheet侵删 git优点 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上. Git跟踪并管理的是修改 ...
- 【读书笔记】知易行难,多实践
前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...
- 【运维学习笔记】生命不息,搞事开始。。。
001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...
- SSAN 关系抽取 论文笔记
20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...
- pandas以前笔记
# -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
最新文章
- Java 集合类详解
- memset函数源码实现
- vs编译项目报错:The OutputPath property is not set for this project
- iris流程图_如何搭建一个简单的机器学习流水线?
- c语言现代方法16章 基础、课后习题、基础等
- 介绍一个办法查TREX search的log
- 重新启动系统中的network服务器,linux系统调优-Network
- metrics类型 普罗米修斯_AspNet Core 下利用普罗米修斯+Grafana构建Metrics和服务器性能的监控...
- 计算机系十周年聚会邀请函,毕业十周年同学聚会邀请函
- 团队任务3 每日立会
- python获取url响应
- 安装LabelMe出现ERROR: No matching distribution found for labelme解决方式(关闭网络代理+使用清华源)
- json的的解析方法
- 开源项目9GAG源码解析与Material改造(一)
- origin如何绘制双y轴曲线_origin怎样画双y轴 看完恍然大悟
- python可视化的优势_「数据可视化」数据可视化的优势有哪些?
- 钉钉通知-调用钉钉发送企业内部消息开发
- 上班没事做gai这么办
- 一个低成本构建电商平台的方案
- 第一章:初识WPF,XAML,WPF控件