From: Post, Mark K <hidden> Date: 2016-06-15 22:42:29
I'm trying to set up a git repository for mainframe Linux developers to
use at git390.osdl.marist.edu. Everything _seemed_ to go well, until
Martin Schwidefsky started actually pushing changes back to the
repository. When he does that, the projects disappear from the web page
that gitweb.cgi is generating.
As far as I can tell, the problem is happening because these files are
being written out with file permissions of 640, and since Apache is
running as user wwwrun, it can't read them:
-rw-r----- 1 sky git 5490 Jun 9 03:35 ./linux-2.6.git/info/refs
-rw-r----- 1 sky git 54 Jun 9 03:35
./linux-2.6.git/objects/info/packs
-rw-r----- 1 sky git 41 Jun 9 03:35
./linux-2.6.git/refs/heads/master
-rw-r----- 1 sky git 41 Jun 9 03:35
./linux-2.6.git/refs/heads/origin
-rw-r----- 1 sky git 5490 Jun 9 04:00
./s390-experimental.git/info/refs
-rw-r----- 1 sky git 1 Jun 9 04:00
./s390-experimental.git/objects/info/packs
-rw-r----- 1 sky git 41 Jun 9 04:00
./s390-experimental.git/refs/heads/master
-rw-r----- 1 sky git 5490 Jun 9 11:31 ./s390-features.git/info/refs
-rw-r----- 1 sky git 1 Jun 9 11:31
./s390-features.git/objects/info/packs
-rw-r----- 1 sky git 41 Jun 9 11:31
./s390-features.git/refs/heads/master
-rw-r----- 1 sky git 5490 Jun 9 03:41 ./s390-fixes.git/info/refs
-rw-r----- 1 sky git 1 Jun 9 03:41
./s390-fixes.git/objects/info/packs
-rw-r----- 1 sky git 41 Jun 9 03:41
./s390-fixes.git/refs/heads/master
I know I could brute-force this by adding wwwrun to the git group, but I
first wanted to find out if that is the solution, or if something is
wrong with the way I've set things up. I tried searching the mailing
list archives, but nothing that appeared to be relevant turned up.
Thanks in advance for any help,
Mark Post
From: Jakub Narebski <hidden> Date: 2016-06-15 22:42:29
Post, Mark K wrote:
I'm trying to set up a git repository for mainframe Linux developers to
use at git390.osdl.marist.edu. Everything _seemed_ to go well, until
Martin Schwidefsky started actually pushing changes back to the
repository. When he does that, the projects disappear from the web page
that gitweb.cgi is generating.
As far as I can tell, the problem is happening because these files are
being written out with file permissions of 640, and since Apache is
running as user wwwrun, it can't read them:
-rw-r----- 1 sky git 5490 Jun 9 03:35 ./linux-2.6.git/info/refs
One of the possible soultion would be to add sky to Apache group,
make directory sticky-group, and make files readable by group (perhaps by
marking repository as shared, or something).
--
Jakub Narebski
Warsaw, Poland
As far as I can tell, the problem is happening because these files are
being written out with file permissions of 640, and since Apache is
running as user wwwrun, it can't read them:
You can either make sure that people have something like
umask 0022
in their bashrc (or that it's the default umask), so that they do things
world-readably by default.
Or add
[core]
SharedRepository = true
to the repository config file.
Linus
From: Junio C Hamano <hidden> Date: 2016-06-15 22:42:29
"Post, Mark K" [off-list ref] writes:
I'm trying to set up a git repository for mainframe Linux developers to
use at git390.osdl.marist.edu. Everything _seemed_ to go well, until
Martin Schwidefsky started actually pushing changes back to the
repository. When he does that, the projects disappear from the web page
that gitweb.cgi is generating.
As far as I can tell, the problem is happening because these files are
being written out with file permissions of 640, and since Apache is
running as user wwwrun, it can't read them:
-rw-r----- 1 sky git 5490 Jun 9 03:35 ./linux-2.6.git/info/refs
-rw-r----- 1 sky git 54 Jun 9 03:35
./linux-2.6.git/objects/info/packs
-rw-r----- 1 sky git 41 Jun 9 03:35
First of all, it is not git-daemon that is updating these refs.
The daemon is a read only facility.
And you have checked the suggestion by Linus to set the umask to
world readable, which brings me to the next question.
How did Martin actually "push changes back"?
Was it over git protocol over SSH, or the webdav thing over http
push? The comment by Linus is about the former and I do not
know offhand who webdav thing runs as or how it handles the
permissino bits.
It could be that your ssh daemon installation bypasses .bashrc
and uses its own .ssh/environment, in which case your user would
may need to do umask there as well.