我的linux(ubuntu)服务器上有很多的git仓库。 我使用Apache用户www-data访问所有这些文件。 这在过去很好,因为我是唯一的Web开发人员。 现在我有更多的开发人员,我需要限制他们访问一些存储库。 如何修改我的服务器/权限/ git存储库以适应此?
让我告诉你当前的stream程,我build立一个存储库。
要为myserver.com上的项目project设置新的存储库,我从terminal发出以下命令:
ssh [email protected] password: (password for www-data) cd /var/lib/repositories/ mkdir project.git cd project.git git init --bare git update-server-info cd /var/www/git.myserver.com/ ln -s /var/lib/repositories/project.git project
要将项目部署到http://project.myserver.com ,我从terminal发出以下命令:
ssh [email protected] password: (password for project) cd /var/www/project.myserver.com/public_html/ git init git remote add origin http://[email protected]/project git pull origin master password: (password for www-data)
用户project需要知道www-data的密码才能从git仓库中进行推送和拉取。
我如何修改我的服务器/权限/ gitrepositories,以便我可以推拉作为project而不是www-data ?
补充笔记
以下是git.myserver.com的vhost条目
<VirtualHost 173.255.230.136:80> ServerAdmin [email protected] ServerName git.myserver.com DocumentRoot /var/www/git.myserver.com/public_html/ ErrorLog /var/www/git.myserver.com/logs/error.log CustomLog /var/www/git.myserver.com/logs/access.log combined </VirtualHost>
目录/var/lib/git由www-data用户拥有。 通过这种方式,apache可以通过/var/www/git.myserver.com/public_html/project的符号链接通过url http://[email protected]/project写入repos
首先,我将为gitlogin创build一个单独的用户。 但是,除此之外,可能最简单的方法就是使用gitosis,这是一个简单的设置,允许您使用精细的权限进行身份validation的git访问。
这将允许你给人:
没有访问权限,只读,读写。 等等
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
NB只是检查了开发人员的网站,这里有更多的function。 值得一看https://github.com/sitaramc/gitolite/