正确设置 trac 和 git 用户的文件权限以访问 gitolite 服务器存储库

正确设置 trac 和 git 用户的文件权限以访问 gitolite 服务器存储库

在我的服务器中,我通过 gitolite 托管一些 git 存储库,并为每个存储库提供一个 trac。

我有一个名为 git 的用户来从服务器推送/拉取(git clone git@server:repo)。并且 trac 是一个带有 mod_wsgi 的 apache vhost。它与 www-data 用户一起运行。

所以让我感到困惑的是(可能是因为我对文件权限根本就不太了解)什么是 git 存储库的最佳权限设置(chown、chmod)(/home/git/repositories/...)。

www-data(或 trac)至少需要读取权限(我认为)。并且 git(或 gitolite)显然需要读/写权限来推送变更集。

我尝试了一些方法(例如将 www-data 和/或 git 添加到 www-data/git 组),但没有成功。两者中至少有一个不起作用(git 或 trac)。

非常感谢您的任何建议。

答案1

我认为最安全的方法是建立一个名为 git-readers 的组

向其中添加 git 和 www-data,然后具有以下文件夹结构:

/home/git - git:git-readers u=rwx,g=rx,o=
/home/git/repositories - git:git u=rwx,g=rwx,o=rx

这将允许 www-data 进入文件夹进行读取,但只授予 git 用户写入权限。任何其他用户都无法执行任何操作。

如果要添加其他作者,我会添加另一个组 git-writers 并将用户和 git 以及 git-readers 组添加到其中,然后使用以下结构:

/home/git - git:git-readers u=rwx,g=rx,o=
/home/git/repositories - git:git-writers u=rwx,g=rwxs,o=rx

注意组权限中的“s”。这会使作者用户使用 git-writers 组作为其默认组。只有当作者都是 umask 0002 时,这才会正常工作。

答案2

相关内容