ubuntu server多用户共享版本库
问题:远程版本库使用gitolite,客户端需要克隆版本库,
需要把客户的公钥放入到gitolite上面去,可以算是一个萝卜一个坑,
其实就是通过密钥对来控制对远程版本库的访问。现在的问题是,
一个服务器上有个用户克隆下来了远程的版本库,如果远程版本库有更新,服务器需要同步更新,
这时就有问题出来了,每次更新都得这个用户才能更新,如果这个用户不在的话,岂不是更新不了了?
下面以git用户为例,git用户有访问远程版本库的权限,jiangli是待授权用户
1.首先需要把git用户的私钥给各个用户发一下
git用户密钥位置:/home/git/.ssh/
如果生成密钥的时候用的是默认值的话,私钥的名字是id_rsa,把这个用户给各个用户,得到私钥的用户jiangli,需要把改密钥放在自己用户目录下的.ssh目录下
/home/jiangli/.ssh/
sudo chown jiangli:jiang id_rsa
sudo chmod 400 id_rsa
ps:如果jiangli这个用户已经有了别的版本库的读写权限,该怎么办呢?
1.首先给.ssh/目录下的密钥改下名字,例如这样:
然后新建一个config文件
vi config
host gitolite
user git
hostname 域名或者ip
port 10080
identityfile ~/.ssh/id_rsa
host devwitmob
user git
hostname 域名或者ip
port 22
identityfile ~/.ssh/devwitmob
2.例如git用户把项目克隆到/srv/test目录下,项目名称SpySprite,我们需要改变这个目录的读写权限
sudo chmod 777 -R /srv/test/SpySprite
3.上面两步完成以后,有私钥的用户就可以执行git pull命令执行更新了