Gitolite3推送和selinux访问失败

我尝试用ssh和http安装gitolite3。

我主要关注了gitolite3的官方指南 ,但是我仍然徘徊在剩下的三个问题上。

  1. 当我$ git clone http://florian@server/git/testing ,这正确地创build回购。 我添加并提交一个新的文本文件,然后$ git push http://florian@server/git/testing 。 那么,这只是给了我一个信息:

     Everything up-to-date 

    这很奇怪 我$ rm -rf testing ,再次克隆回购,我的文本文件不存在。 看来阅读很好,但是写作在某处丢失了。 在/ etc / httpd / logs / suexec.log,error_log,access_log中都没有任何可疑,它们都表示成功的用户身份validation和连接。 此外,用于testing的./gitolite-admin/conf/gitolite.conf的内容是:

     repo testing RW+ = @all RW+ = daemon 

    虽然gitolite3的官方指南没有提及添加W +的testing回购。 我有点傻眼,我应该在哪里推进http工作?

  2. 为了达到这个目的,我必须echo 0 > /selinux/enforce (禁用selinux),我想再次重新启用它。 重新启用后,每次我尝试上面的$ git clone http://florian@server/git/testing ,httpd error_log有以下几行,而且命令本身失败(当然):

     [Sun Aug 04 00:19:34 2013] [error] [client 10.42.43.1] FATAL: errors found but logfile could not be created [Sun Aug 04 00:19:34 2013] [error] [client 10.42.43.1] FATAL: /var/lib/gitolite3/.gitolite/logs/gitolite-2013-08.log: Permission denied [Sun Aug 04 00:19:34 2013] [error] [client 10.42.43.1] FATAL: warn\tUse of uninitialized value $rc{"UMASK"} in umask at /usr/share/gitolite3/gitolite-shell line 95, <DATA> line 1.<<newline>> [Sun Aug 04 00:19:34 2013] [error] [client 10.42.43.1] Premature end of script headers: gitolite-suexec-wrapper.sh 

    …所以我现在跑到selinux困难。 运行以下行显示:

     # ll -Z /var/lib/gitolite3/.gitolite/logs/gitolite-2013-08.log -rw-rw-rw-. gitolite3 gitolite3 unconfined_u:object_r:gitosis_var_lib_t:s0 /var/lib/gitolite3/.gitolite/logs/gitolite-2013-08.log 

    …更让我困惑的是 我知道gitolite3是跟着gitosis,看来我的操作系统CentOS6.4实际上是用旧的gitosis标签标记文件上下文,而不是新的gitolite标签。 公平的,但现在我想问社区什么是最佳做法是在这里,我应该启用哪些权限来解决这个访问问题?

对不起,如果这些是很多问题,我不知道安装gitolite3是不是很直接的HTTP。 但是我承诺要做到这一点,我知道到现在还不是很远。