安装git以在多用户系统中使用

我需要在Ubuntu服务器上安装git,这个服务器将被多个用户共享和访问。

我假设我将使用git + ssh,所以每个用户都有一个系统帐户,但是我怎样才能安装git和一个版本库,以便每个用户都可以推送/拉取一个本地IP?

我会build议使用gitolite来pipe理用户访问和权限。

描述它的最好方法是引用开发者:

Gitolite允许你在一台服务器上使用一个用户来托pipe许多git仓库,并为许多开发人员提供访问权限,而不必为其提供真正的用户名或对服务器的shell访问权限。 这样做的基本魔法是ssh的pubkey访问权限和authorized_keys文件,灵感来自一个名为gitosis的旧程序。

Gitolite可以限制谁可以读取(克隆/读取)或写入(推送)存储库。 它还可以限制谁可以推到什么分支或标签,这在企业环境中是非常重要的。 Gitolite可以在不需要root权限的情况下安装,并且不需要git本身和perl以外的软件。 它还有其他几个在doc /目录中描述的其他特性。

以下是我个人想强调的一些function:

  • 每个用户都被迫拥有一个SSH密钥,否则他们不能推送到服务器
  • 没有系统帐户 – 只是服务器上的“git”用户。
    • 你通过这个用户来完成你所有与你的服务器的git交互
  • SSH密钥的configuration和添加通过一个git仓库进行!
    • 比如在创build一个仓库的时候,你只需要添加两行到你的gitoliteconfiguration文件,仓库的名字以及谁有读/写的权限。 承诺和推动,和vóila! 你现在可以使用'git clone ssh://[email protected]/yournewrepo.git'克隆你新鲜的空回购。

祝你好运

-víðir

一种方法是为“git”用户创build一个组,并添加您想要访问该组的所有用户。 您可以使用“groupadd”命令创build组,然后编辑/ etc / group修改该组中用户的逗号分隔列表。 我通常根据项目命名组,比如“newwebsite”而不是像“git”。 例如,/ etc / group条目可能如下所示:

newwebsite:x:999:swarren,jafo,kyle,mlb 

现在创build一个目录来保存git仓库,比如说“/ var / git / newwebsite”:mkdir -p / var / git / newwebsite

在此目录上设置权限以包含组粘滞位:

 chgrp newwebsite /var/git/newwebsite chmod g+ws /var/git/newwebsite 

现在使用以下命令在这个目录中初始化仓库:

 cd /var/git/newwebsite git init --bare --shared=group 

注意:不要用您的组replace“组”,它需要是string“组”。

如果这个错误出来了,你的“git”版本可能不支持“–bare”选项。 在这种情况下删除“–bare”选项。

此时,您的用户应该能够通过以下方式检出存储库:

 git clone git+ssh://$USER@$HOST/var/git/newwebsite 

在Ubuntu上安装git

sudo apt-get install git-core

有关如何使用它的说明看看这个文件,我发现了一个很好的参考。