代码之家  ›  专栏  ›  技术社区  ›  Tobias Kienzler

在没有根权限的情况下管理git repo

  •  1
  • Tobias Kienzler  · 技术社区  · 14 年前

    我想在我的主目录中创建一个可以让在同一个文件系统中工作的同事访问的裸git repo,允许他们 git push 投入其中。不过,我不希望他们意外地修改回购协议 git ,所以我不能 chmod g+w 它。

    如果不是根,这有可能吗?我唯一能想到的就是把SUID设置成 吉特 所以git可以像我一样访问回购协议,但我不知道这是否真的是个好主意。。。

    3 回复  |  直到 14 年前
        1
  •  2
  •   Noufal Ibrahim    14 年前

    你可以用一些像 gitolite 这帮你解决了很多麻烦。

    如果要使用纯git,可以执行以下操作:

    要做到这一点,你的所有同事和你需要在同一组(如开发人员)。你可以一次解决所有问题:

    newgrp developers
    git init --bare --shared=group repo
    

    但当然你会得到一个空的存储库。你可以把你现在的工作推到那里继续下去。

    如果不使用git init路径,则需要自己设置apprioprate权限,并设置 core.sharedrepository=1 配置变量。

        2
  •  1
  •   Noufal Ibrahim    14 年前

    如果你将回购作为 file:/// ,则将应用文件权限。据我所知,git本身并不涉及“权限”。用于发布repo的机制负责这方面的工作(ssh的密钥、.htacess或web的一些东西)。


    这是未经测试的,但我认为您应该能够使用 git daemon 你的用户可以用来推/拉你的回购协议。它需要对存储库进行读/写访问,但这没关系,因为它是以您的身份运行的。您的用户只能使用此选项访问您的回购协议。有关详细信息,请查看手册页( git help daemon )以及 this . 然而,我最初的观点仍然站得住脚。这是一种 使用 文件:/// 公开不需要根权限的存储库的协议。

        3
  •  0
  •   Arafangion    14 年前

    最好的方法是使用gitosis,或者仅仅是创建一个新的git用户,让可信用户使用ssh密钥ssh进入该帐户。

    后者并不能真正阻止人们在不使用git的情况下访问这些文件,如果这很重要,请花时间正确配置gitosis。