Gitosis管理(权限管理建议使用这种方法)

简介: 三、Gitosis管理(权限管理建议使用这种方法)服务器端1 安装Gitosis 下载Gitosis wget  https://github.

三、Gitosis管理(权限管理建议使用这种方法)

服务器端

1 安装Gitosis 

下载Gitosis 

wget  https://github.com/res0nat0r/gitosis/archive/master.zip

(地址可以自己寻找合适的,上面地址下载以后为master,需要改名为master.zip)

$unzip master.zip

$ cd gitosis-master

$ python setup.py install(root用户)

$ cd gitosis

分类: Python/Ruby

ImportError: No module named setuptools 解决方案  
shell中输入:
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install


 初始化 Gitosis 了。需要通过自己的公钥来运行 gitosis-init (git用户)

useradd git

su - git

cd

cd /home/git

mkdir .ssh

ssh-keygen


$ gitosis-init < /home/git/.ssh/id_rsa.pub 

 将这个新的控制仓库中的 postupdate脚本加上执行权限

$ chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update (root用户)

测试是否配置正确 

$ ssh git@192.168.1.83  (git用户)

输出下面内容为正确

PTY allocation request failed on channel 0

ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.

Connection to 192.168.1.83 closed.

 

$ git clone git@192.168.1.83:gitosis-admin.git   (git用户)

(若无法克隆,说明安装有问题,不是绝对路径)

$ cd gitosis-admin

$ ls

keydir 为放置公钥的文件路径

gitosis.conf为配置权限目录

$ cat gitosis.conf

默认内容:

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

Members = git@localhost

 

添加一个群组 

[group myproject]

writable = melon_project 

Members = melon  (多个时候,空格分开)

----

生成密钥,将公共密钥 存为melon.pub (members相同),上传到服务器/home/git/gitosis-admin/melon.pub,保存私钥保存

-----

$ git add .

$ git commit -m message .

$ git push

 

第一次需要通过这样的方式生成项目仓库

$ mkdir melon_p

$ cd melon_p

$ git init

$ git remote add origin git@192.168.1.83:melon_project.git

$ git push origin master  (会提示没有提交任何文件,无所谓,这步会创建melon_project.git仓库,也可以添加些文件 再提交push)

 

之后,就可以在外部克隆仓库了..

 

注意使用gitosis进行控制时,不能在url前面添加 ssh:// 添加了会无法克隆仓库

 

基本的服务端和客户端都已经实现了,可以用git来作为项目的版本控制了

目录
相关文章
|
4月前
|
Python
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
7月前
|
机器学习/深度学习 传感器 大数据
大数据如何化解城市交通拥堵的难题?
大数据如何化解城市交通拥堵的难题?
249 5
|
11月前
|
供应链 搜索推荐 算法
淘宝电商运营的小秘籍,看完血赚。
在淘宝电商竞争激烈的环境中,掌握实用运营技巧是成功的关键。本文深入剖析了淘宝电商运营的五大核心策略:精准市场定位与选品、引人入胜的店铺装修、优质客户服务、灵活营销推广及数据驱动决策。通过这些技巧,你可以在淘宝平台上打造独具魅力的店铺,吸引更多流量和客户,实现销售业绩稳步增长,最终脱颖而出,成为知名品牌。
1036 10
|
8月前
|
安全 网络协议 网络安全
Hyper-V无连接,常见原因及修复
Hyper-V无连接问题可能由虚拟交换机配置、网络适配器驱动、IP设置、防火墙、BIOS、Hyper-V服务、虚拟机系统及物理网络等多方面引起。解决时需逐一排查:确认虚拟交换机绑定正确、驱动兼容、IP配置无误、防火墙规则适当、BIOS启用虚拟化技术、Hyper-V服务正常运行、虚拟机系统网络完好以及物理网络设备功能正常。若仍无法解决,建议寻求专业技术支持。
1078 17
|
存储 前端开发 Java
Git 仓库越来越大?不要慌!试试这个简单方法,轻松秒瘦身
Git 仓库越来越大?不要慌!试试这个简单方法,轻松秒瘦身
|
存储 Kubernetes Ubuntu
helm部署mysql
在K8S部署mysql的步骤可用helm来简化,今天就来实战通过helm部署mysql,并且将之前遇到的问题和解决方法列出来
1887 1
helm部署mysql
C++命名空间(Namespace)详解
C++命名空间(Namespace)详解
314 2
|
前端开发 搜索推荐 Java
旅游定制服务|基于SSM实现旅游个性化定制网站平台
旅游定制服务|基于SSM实现旅游个性化定制网站平台
442 0
|
编译器 C语言 C++
g++命令编译出来的文件体积过大解决方案
g++命令编译出来的文件体积过大解决方案
714 0
|
存储 Kubernetes 关系型数据库
Helm部署mysql8主从
Helm部署mysql8主从
1441 0