我想在我的服务器上设置 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
如果你的umask
是002
,则会显示以下内容:
drwxrwxr-x 2 git git 4096 Nov 11 13:50 tata.git
这很好。但是,如果你的版本umask
是022
- 大多数发行版都是这种情况,那么你将得到以下结果:
drwxr-xr-x 2 git git 4096 Nov 11 13:50 tata.git
您在这里看到,组成员git
仅对r-x
文件夹具有权限 - 根本没有写入权限。因此,即使您成为www-data
组的一部分git
,Web 服务器也不会对该存储库具有写入权限。
如上面的链接所述,解决方案是在适当的文件中进行设置,在大多数情况下,该文件将是您的 /home/git/.profile,如下所示umask
:002
umask 002