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

三、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 [email protected]  (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 [email protected]: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 [email protected]:melon_project.git

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

 

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

Gitosis管理(权限管理建议使用这种方法)_第1张图片

 

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

 

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

你可能感兴趣的:(Gitosis管理(权限管理建议使用这种方法))