天天看点

网站运维:git工具(11):Gitosis安装与使用-添加用户和设定权限

Gitosis 就是一套用来管理 authorized_keys文件和实现简单连接限制的脚本。
添加用户和设定权限是管理一个特殊的 Git 仓库。
           
Gitosis的安装和配置
gitosis是用python写的,安装前需要提前安装python相关解析相关库
yum -y  install python-setuptools

从 Gitosis 项目主页克隆并安装
git clone https://github.com/tv42/gitosis.git

注意:git clone时可能发生错误,提示:fatal: HTTP request failed。
更新软件
yum update -y nss curl libcurl
cd gitosis
安装python
sudo python setup.py install

 生成本机SSH密钥
 ssh-keygen -t rsa -C "[email protected]"

将~/.ssh/id_rsa_pub公钥文件上传到服务器上
上传管理员公钥 , (如果已有ssh,在 ~/.ssh下 id_rsa.pub文件) 
scp ~/.ssh/id_rsa.pub [email protected]:/tmp

初始化gitosis
sudo -H -u git gitosis-init < /tmp/id_rsa.pub

在本地拉取
git clone [email protected]:gitosis-admin.git

说明:此时会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:./gitosis.conf   ./keydir   ./keydir/[email protected].com, 仓库管理在gitosis.conf 中,keydir目录下用来保存需要拉代码的人员的公钥。gitosis.conf 文件是用来设置用户、仓库和权限的控制文件。keydir 目录则是保存所有具有访问权限用户公钥的地方— 每人一个。在 keydir 里的文件名([email protected].com.pub)Gitosis 会自动从使用 gitosis-init 脚本导入的公钥尾部的描述中获取该名字。
[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = [email protected].com

说明:用户 [email protected].com — 初始化 Gitosis 公钥的拥有者 — 是唯一能管理 gitosis-admin 项目的人。
例如:添加一个新项目,叫shop
[group shop]
members = [email protected].com
writable = shop

修改完之后,提交 gitosis-admin 里的改动,并推送到服务器使其生效。

git add .
git commit -m ‘add project’;
git push [email protected]:gitosis-admin.git master
或
git push origin master
注意:不用事先到服务器上手工创建该项目的裸仓库— Gitosis 会在第一次遇到推送时自动创建。
要和朋友们在一个项目上协同工作,就得重新添加他们的公钥。
不过这次不用在服务器上一个一个手工添加到 ~/.ssh/authorized_keys 文件末端,
而只需管理 keydir 目录中的公钥文件。文件的命名将决定在 gitosis.conf 中对用户的标识。

           
git