Linux 服务器上的独立 git 帐户

Linux 服务器上的独立 git 帐户

我的 Linux(ubuntu)服务器上有很多 git 存储库。我使用 Apache 用户访问所有存储库www-data。以前这种方法效果很好,因为我是唯一的 Web 开发人员。现在我有更多的开发人员,我需要限制他们对某些存储库的访问。我该如何修改我的服务器/权限/git 存储库以适应这种情况?

让我向您展示我当前设置存储库的过程。

为了在 myserver.com 上为项目设置新的存储库project,我从终端发出以下命令:

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

为了将项目部署到 url http://project.myserver.com,我从终端发出以下命令:

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)

用户需要知道从 git 存储库推送和拉取的project密码。www-data

我如何修改我的服务器/权限/gitrepositories,以便我可以推送和拉取而project不是www-data

补充笔记

以下是 vhost 条目的git.myserver.com样子

<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归用户所有。这样,apache 就可以通过 urlwww-data中的符号链接写入 repos/var/www/git.myserver.com/public_html/projecthttp://[email protected]/project

答案1

首先,我会为 git 登录创建一个单独的用户。不过除此之外,管理此问题的最简单方法可能是使用类似 gitosis 的工具,这是一个简单的设置,允许您以细粒度的权限进行经过身份验证的 git 访问。

这将允许你向人们提供:

无访问权限、只读、读写等

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

NB 刚刚查看了开发者网站,里面还有更多功能。绝对值得一看https://github.com/sitaramc/gitolite/

相关内容