私人 GIT 存储库设置 Mac OS X Server

私人 GIT 存储库设置 Mac OS X Server

我想设置一个 git 存储库(裸存储库),只有“开发”组中的人员才能从存储库读取/写入。我该怎么做?(我更喜欢通过 http 执行此操作)

我正在运行 Mac OS X 10.6 Server

答案1

您可以设置一个 Apache 服务器并在服务器上设置 WebDAV 来验证您的用户。

我已经使用 subversion 完成了此操作,但它看起来对于 Git 来说工作方式类似。

http://www.icoretech.org/2009/11/hosting-git-repositories-through-webdav-on-snow-leopard-server/

答案2

您有多种选项可以限制谁可以写入 git 存储库:

1) 在您的 Web 服务器配置中,您可以根据组成员身份或用户 ID 限制对存储库的访问。这将是 Apache 配置,例如在 AuthGroupFile 设置中http://httpd.apache.org/docs/current/mod/mod_authz_groupfile.html#authgroupfilehttp://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html#authbasicprovider(但您可能需要从 /etc/group 映射到此文件格式)。

2) 更简单,您可以通过文件系统管理存储库权限。在您的 .git 目录中,您可以chmod -r a-rw限制chmod -r g+srw从目录读取和写入的权限给指定 unix 组中的成员(如果您需要更精确的说明,请告诉我)。git-init有一个--shared=group开关,允许基于 unix 组访问多个用户(参见http://kernel.org/pub/software/scm/git/docs/git-init.html

3)查看 Gitosis(http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way) 是一个简单的 Git 存储库“服务器”,它集中了身份验证,并确保您不需要为每个 Git 用户设置单独的 Unix 用户(和/或单独分组)。与 #1 一样,您将在操作简单性和设置复杂性之间做出权衡(因为您现在可能要管理两个组列表)。

希望有所帮助。

相关内容