1、apt-get install git-core openssh-server openssh-client安装git需要的工具(gw作为管理账户)
2、adduser git, passwd git 创建git用户
#3、在root目录下mkdir /home/git_git,chown gw:gw /home/git_git,chmod 700 /home/git_git
4、切换到git账号下输入git config --global user.name "cjp",git config --global user.email "gw@163.com"
5、输入sudo apt-get install python-setuptools
6、cd /tmp然后输入git clone https://github.com/res0nat0r/gitosis.git
7、输入cd gitosis,输入sudo python setup.py install
8、默认状态下,gitosis会将git仓库放在git用户的home下,所以我们做一个链接到/home/cjp_git,输入ln -s /home/git_git /home/gw/repositories
9、换到个人账号下如cjp,输入ssh-keygen -t rsa,输入scp ~/.ssh/id_rsa.pub gw@192.168.213.131:/tmp(问题解决方案ssh -o StrictHostKeyChecking=no 192.168.213.131)
10、输入sudo chmod a+r /tmp/id_rsa.pub
( 1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去.2.添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers3.编辑sudoers 文件vi /etc/sudoers找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)4.撤销sudoers文件写权限,命令:chmod u-w /etc/sudoers)
11、输入sudo -H -u git gitosis-init < /tmp/id_rsa.pub ,这样就建立了一个gitosis-admin.git仓库在/home/git_git下
12、换到root账号下,输入chmod 755 /home/cjp_git/gitosis-admin.git/hooks/post-update
13、建一个文件夹例如for-cjp,然后把这个权限给cjp
14、切换回cjp,进入for-cjp,输入git clone git@192.168.5.200:gitosis-admin.git
15、所有需要管理权限的用户都要先输入ssh-keygen -t rsa,然后把~/.ssh/id_rsa.pub这个文件交给管理员,管理员把这些文件按照不同用户进行重新命名 ,例如cjp@etrans.pub,git@etrans.pub等,管理员把这些文件cp到克隆下来的gitosis-admin目录下的keydir里面
16、vi gitosis.conf,在gitosis-admin的组下面members添加git@etrans root@etrans,这样能够管理用户权限的就是账号 root和git
17、新建AVN.git仓库是在这个gitosis.conf,新建组例如group AVN,给它的成员cjp@etrans,gw@etrans,writable=AVN,新建组例如group hello,给它的成员 a@etrans ,readonly=AVN。这样就给AVN仓库分配了权限,git,cjp和gw是可以读写的,a只有读权限
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@etrans root@etrans
[group AVN]
writable = AVN
members = cjp@etrans gw@etrans git@etrans
[group hello]
readonly = AVN
members = a@etrans
18、回到gitosis-admin目录下,git add .
19、输入git commit -am "add gitosid access"
20、输入git push,这样权限就配置好了,也挂了一个AVN仓库,目前的AVN.git仓库是空的,就算是有权限的账号去克隆也会提示出
21、mkdir AVN然后进入之后输入git init
22、git remote add origin git@192.168.5.200:AVN.git
23、随便放点东西进去
24、git commit -am "AVN"
25、git push
26、现在这个AVN仓库就完成了。可以用不同账号去测试下权限