ubuntu git server setup
目的:
1 安装git服务器,创建git账户,进行权限管理
2 将管理账户分给user usertest
3 git创建一个project仓库,并将权限分配给usertest
1 安装git服务器,创建git账户,进行权限管理
安装git和openssh:
sudo apt-get install git-core openssh-server openssh-client
新加用户git, 该用户将作为所有代码仓库和用户权限的管理者:
sudo useradd -m git
sudo useradd -m git
sudo passwd git
建立一个git仓库的存储点:
sudo mkdir /home/repo
sudo mkdir /home/repo
让除了git以外的用户对此目录无任何权限:
sudo chown git:git /home/repo
sudo chmod 700 /home/repo
sudo chown git:git /home/repo
sudo chmod 700 /home/repo
ln -s /home/repo /home/git/repositories
注:上面这个软连接的步骤,实验的时候也可以暂时不要。
安装配置gitosis
初始化一下服务器的git用户,这一步其实是为了安装gitosis做准备。在任何一 台机器上使用git,第一次必须要初始化一下:
git config –global user.name “git”
git config –global user.email “git@ubuntu “
git config –global user.name “git”
git config –global user.email “git@ubuntu “
安装一下python的setup tool, 这个也是为了gitosis做准备:
sudo apt-get install python-setuptools
sudo apt-get install python-setuptools
如果这里安装失败可用一下方法: 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包:
cd /tmp
git clone git://eagain.net/gitosis.git
cd gitosis
sudo python setup.py install
cd /tmp
git clone git://eagain.net/gitosis.git
cd gitosis
sudo python setup.py install
这里gitosis可能下载失败,请到网站自行下载tar包。
初始化gitosis
如果你将作为git服务器的管理员,那么在你的电 脑上(另一台pc)生成ssh公钥:
回到git服务器上
sudo chmod a+r /tmp/id_rsa.pub
sudo chmod a+r /tmp/id_rsa.pub
让gitosis运行起来:
su root
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
Initialized empty Git repository in /home/repo/gitosis-admin.git/
Reinitialized existing Git repository in /home/repo/gitosis-admin.git/
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
Initialized empty Git repository in /home/repo/gitosis-admin.git/
Reinitialized existing Git repository in /home/repo/gitosis-admin.git/
2 将管理权限分给user usertest
登录git账户
git clone git@ubuntu:gitosis-admin.git
cd gitosis-admin
vi gitosis.conf
添加:
[liam]
members = usertest@ubuntu
writeable = gitosis-admin
登录git账户usertest, 通过:git clone git@ubuntu:gitosis-admin.git
可以正常正常clone到数据,从而可以设置gitosis.conf和添加keydir来分配权限。
keydir放置user的id_rsa.pub文件。重命名为:usertest.pub该文件也通过:ssh-keygen -t rsa生成。
然后通过git上传到gitosis-admin.git仓库。分配权限完毕。
3 git创建一个project仓库,并将权限分配给usertest
登录git
cd git@ubuntu:~/repositories
mkdir project.git
cd project.git
git init --bare
vi gitosis.conf
将project这个仓库的读写权限分配给usertest
11 [group usertest] 12 members = usertest@ubuntu 13 writeable = project
然后上传到gitosis-admin.git
登录usertest
git clone git@ubuntu:project.git
可以正常clone。
OK, 大功告成!

浙公网安备 33010602011771号