在git远程仓库上设置正确的组权限

wus*_*ase 8 git

我的服务器上有一个git远程仓库.每次我将本地分支推送到服务器时,〜/对象中的文件只具有我特定帐户的rw权限(不是我的组 - git).因此,当我的朋友对〜/对象中的那些文件进行推送时,他会获得权限许可错误.

Hes在同一组:git,但当然没有写权限(因为组git没有)

我如何告诉git为这些文件提供对整个git-group的正确权限?

谢谢你的帮助.

_christoph

Chr*_*sen 16

git-config(1):

  • core.sharedRepository
    当group(或true)时,存储库可以在组中的多个用户之间共享(确保所有文件和对象都是可写组的).[...]

在服务器上执行此操作:

  1. 配置存储库以进行组共享.
    这将有效地强制扩展umask以用于未来的Git操作.

    cd /path/to/repository.git
    git config core.sharedRepository group
    
    Run Code Online (Sandbox Code Playgroud)
  2. 清理现有权限:

    chgrp -R git .
    chmod -R g=u .
    
    Run Code Online (Sandbox Code Playgroud)
  3. 强制组所有者继承新条目(BSD样式系统不需要,但通常在其他系统上需要):

    find . -type d -print0 | xargs -0 chmod g+s
    
    Run Code Online (Sandbox Code Playgroud)


Eri*_*nis 1

我建议您让开发人员在连接到您操作的远程存储库服务器时使用通用用户帐户。您可以通过 SSH 密钥管理访问,因此您不必担心分发/共享密码等问题。

如果您想坚持使用单独的用户帐户,那么这个问题在 serverfault 上得到了很好的回答: https://serverfault.com/questions/26954/how-do-i-share-a-git-repository-with-multiple -机器上的用户

您可能想研究使用 gitosis 来运行您自己的存储库: http://eagain.net/gitweb/ ?p=git​​osis.git

好的 gitosis 设置说明可以在http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way上找到。