Git sharedRepository的权限问题

时间:2011-03-28 05:34:36

标签: git permissions repository gitolite

我正在使用Gitolite来管理我的git存储库。我还使用第三方Web应用程序来显示存储库。

但是,每次执行git push --all git@myserver.com:myproject时,第三方Web应用程序都无法访问存储库文件。所以我需要每次chmod go+rx -R /path/to/the/repository/folder运行以查看存储库。

我已设置git config core.sharedRepository all但仍未记住git push之后的权限。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以定义一个hook to your gitolite environment,以便从由gitolite管理的裸仓库中更新非裸pos(使用正确的ACL)。

只要您不使用 the update hook (在Gitolite V3中),您就可以定义一个post-receive钩子来执行这些任务。

话虽如此,请检查您的gitolite.rc中的variable REPO_UMASK UMASK是否与此问题有关:

  

$UMASK,八进制,默认0077

     

gitolite使用的默认UMASK使所有repos及其内容具有rwx------权限。
  希望运行gitweb的人意识到这不会发生   处理此问题的正确方法是将此变量更改为0027(这将获得rwxr-x---),然后将运行Web服务器的apache或httpd用户添加为'gitolite'组的成员。

     

请注意语法;前导0是必需的。如果在安装完成后更改它,则还必须执行一些chmod来调整已创建的文件和目录的权限。

(注意:REPO_MASK获得UMASK GitoliteV3 or 'g3'}