git 和 apache 的用户策略

git 和 apache 的用户策略

我想在我的服务器上设置 git 存储库,以便可以从我的网络服务器访问它(使用 redmine 进行读写)。我希望能够使用我的用户创建存储库(托托) 在 SSH 中。

目前我设置如下:

  • 我已经创建了一个 /var/redmine/repositories (所有者为托托
  • 我在此文件夹中创建 repo,然后将所有权更改为www-数据

当前的存储库是 github 克隆,但我希望将来在服务器上托管我自己的存储库。

在此背景下,我计划使用适当的git用户并包括www-数据用户在git团体。

这看起来正确吗?

答案1

因此,我猜您将使用您的git用户来创建存储库,而不是toto

如果你选择这条路,你可能会遇到一个问题,这取决于你的umask. 尝试发出以下命令:

git@host$ mkdir tata.git
git@host$ ls -ld tata

如果你的umask002,则会显示以下内容:

drwxrwxr-x 2 git git 4096 Nov 11 13:50 tata.git

这很好。但是,如果你的版本umask022- 大多数发行版都是这种情况,那么你将得到以下结果:

drwxr-xr-x 2 git git 4096 Nov 11 13:50 tata.git

您在这里看到,组成员git仅对r-x文件夹具有权限 - 根本没有写入权限。因此,即使您成为www-data组的一部分git,Web 服务器也不会对该存储库具有写入权限。

如上面的链接所述,解决方案是在适当的文件中进行设置,在大多数情况下,该文件将是您的 /home/git/.profile,如下所示umask002

umask 002

相关内容