请帮助我了解gitolite用户[关闭](please help me understand git

2019-07-29 07:45发布

出于某种原因,我gitolite没有拿出一个样本配置文件,我似乎无法找到一个在任何地方,我确定这个问题是在该文件回答如果有人能找到我,请!

不管怎么说,在gitolite配置文件的格式是很简单的,这里是从我剪断

gitolite conf
# please see doc/gitolite.conf.mkd for details on syntax and features

@nmscDevs = dev1@compaid.com dev2@compaid.com dev3@compaid.com
@buildMgr = william_slepecki@compaid.com dev4@compaid.com

repo    gitolite-admin
    RW+     =   gitadmin william_slepecki@compaid.com

repo    grindstone
    RW+ = gitadmin
    RW+ prod$ = @buildMgr
    - prod$ = @nmscDevs
    RW = @nmscDevs

我在我的keydir文件夹中的几个公共密钥:

keydir/
gitadmin.pub
william_slepecki@compaid.com.pub

我的问题是gitolite似乎忽略设置为单个用户的权限。 没有任何工程上的存储库(读,写等),除非我给gitadmin用户完全控制。 然后,似乎每个人都使用gitadmin用户的权限。 我克隆这样的回购

git clone git@server:grindstone.git

但是当我试图用这样的克隆

git clone 'dev1@compaid.com'@server:grindstone.git

林提示输入密码。 确实每个用户需要在服务器上拥有一个帐户,以便他们可以ssh到它?

究竟是如何做到的权限,gitolite工作? 我是铅理解git的用户需要一个帐户ssh到服务器上,那么一旦gitolite接管它使用沿着通过与git的请求,以确定权限的电子邮件,我错了吗? 我失去了什么?

顺便说一句,这是我的.ssh /配置

host server
     user git
     hostname server
     identityfile ~/.ssh/gitadmin

host server
     user william_slepecki@compaid.com
     hostname server
     identityfile ~/.ssh/id_rsa

更新:我已经升级到gitolite的最新版本,当我尝试做一个克隆我得到这个

$ git clone git@server:testing.git
Cloning into 'testing'...
FATAL: R any testing gitadmin DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly

我的配置文件现在看起来是这样的:

repo testing
    RW+ = william_slepecki 

我的.ssh配置不变。 另外,我有这个在我的日志

2012-05-08.13:01:13     19027   ssh     ARGV=gitadmin   SOC=git-upload-pack 'testing.git'       FROM=10.99.5.146
2012-05-08.13:01:13     19027           access(testing, gitadmin, R, 'any'),-> R any testing gitadmin DENIED by fallthru
2012-05-08.13:01:13     19027           trigger,Writable,access_1,ACCESS_1,testing,gitadmin,R,any,R any testing gitadmin DENIED by fallthru

这里是我的全球混帐配置的顶部SNIP

[user]
    name = Willie Slepecki
    email = william_slepecki@compaid.com

为什么在世界上是这仍然坚持认为gitadmin是回购,为什么不使用william_slepecki? 其中究竟这让名称中使用?

Answer 1:

我就点你的2个主要错误:

第一错误:Gitolite只使用用户部分(一个先前到“@”)在keydir找到的键。
例如:gitolite承认只有一个用户, william_slepecki ,用于键william_slepecki@compaid.com.pubwilliam_slepecki@anothercompaid.org.pub ,这里唯一的一点是,该用户可以用2个不同的密钥进行验证,你不能给权限密钥,只给用户。

第二个错误:您gitolite服务仅由一个正常的系统用户,可能提供git ,因此连接提出,要git@server.com:repo.git ,gitolite用户不需要或有一个系统帐户,只需一个SSH关键,因此与william_slepecki@server.com:repo.git永远不会成功



Answer 2:

好了,我的问题是几折。

首先,我误解了gitadmin关键的作用。 我想,既然这是有它需要的是对所有的开发工作站服务器上的实际帐户的用户。 原来那是错误的。 gitolite需要在keydir目录中的密钥,并将它们添加到GIT /的.ssh / authenticated_keys文件上推。 这使得在keydir所有键登录的机器上的用户饭桶。 由于git的用户不具有与之相关联的控制台,不存在安全漏洞。

其次,我的〜/ .ssh / conf目录文件。 因为我不知道如何#1的工作,我想混帐在某种程度上传递的电子邮件地址作为用户名的Git命令的一部分。 一旦我想通了#1,我能清理配置文件来映射git的@服务器用户和使用我的正常的一切。

一旦这两个问题进行了了解,并制定出来的,所有权限开始正常工作。 现在我已经更换了服务器上的用户gitadmin键无效开发商站的那些和更新了我的所有开发人员的configs。 管理是开心了。

感谢大家。



文章来源: please help me understand gitolite users [closed]
标签: git gitolite