* Git newbie question: permissions
@ 2008-10-09 20:20 Ed Schofield
2008-10-09 21:05 ` Samuel Lucas Vaz de Mello
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Ed Schofield @ 2008-10-09 20:20 UTC (permalink / raw)
To: git
Hi everyone,
I have a bare git repository that users in a particular group
("webdev") are pulling from and pushing to using the ssh transport.
One of the users has just reported this error during a push:
Counting objects: 103, done.
Compressing objects: 100% (68/68), done.
error: unable to write sha1 filename
./objects/4f/
973ce5c66f082af5087948cec57001f0c4da50: Permission denied
fatal: failed to write object
error: pack-objects died with strange error
error: failed to push some refs to '/var/git/myrepo.git'
I'd appreciate some help on getting my repository back to a sane
state, allowing this user to finish his push, and making sure
permissions are right in the future.
I don't think I specified "--shared=group" when initializing the
repository. Afterwards I manually set all files to have 660
permissions, dirs as 770, and set the group ownership to "webdev", but
I probably made a mistake by not setting the setgid bit on
directories. Now there are some objects directories with 755
permissions and different group ownership (the default groups of the
other users).
I have now run "git --bare init --shared=group" to reinitialize the
repository. This seems to have changed the directories to be g+sx. (Is
this all it did?). There are still some objects directories with 755
permissions rather than 770, which I presume I want, and the group
ownership of these is wrong. Shall I change these by hand? The sha1
files all have 444 permissions; is this right?
The last question I have is how to ensure that git creates object
files etc. with the right permissions when users push in future.
I'd appreciate any help!
-- Ed
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Git newbie question: permissions
2008-10-09 20:20 Git newbie question: permissions Ed Schofield
@ 2008-10-09 21:05 ` Samuel Lucas Vaz de Mello
2008-10-09 21:29 ` Marc Weber
2008-10-09 21:41 ` Samuel Tardieu
2 siblings, 0 replies; 6+ messages in thread
From: Samuel Lucas Vaz de Mello @ 2008-10-09 21:05 UTC (permalink / raw)
To: git
Ed Schofield wrote:
> I don't think I specified "--shared=group" when initializing the
> repository. Afterwards I manually set all files to have 660
> permissions, dirs as 770, and set the group ownership to "webdev", but
> I probably made a mistake by not setting the setgid bit on
> directories. Now there are some objects directories with 755
> permissions and different group ownership (the default groups of the
> other users).
>
Hi Ed!
I'm also a newbie here and I have a very similar setup to yours.
The only difference is that my repository was created using
git-cvsimport and afterwards I used git-config to set
core.sharedrepository=1 and manually set up the permissions.
I also got objects created with the users' default group, but for now I
just changed the deafault group for those users until I find a better
solution.
Another issue with this setup: if I run git-gc in the shared repo, it
recreate the files in logs/refs/heads with 644 permissions, which
prevents users to push until I manually fix the permissions.
Someone else have faced these kind of problems?
Regards,
- Samuel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Git newbie question: permissions
2008-10-09 20:20 Git newbie question: permissions Ed Schofield
2008-10-09 21:05 ` Samuel Lucas Vaz de Mello
@ 2008-10-09 21:29 ` Marc Weber
2008-10-09 21:41 ` Samuel Tardieu
2 siblings, 0 replies; 6+ messages in thread
From: Marc Weber @ 2008-10-09 21:29 UTC (permalink / raw)
To: git
> The last question I have is how to ensure that git creates object
> files etc. with the right permissions when users push in future.
Have a look at the config file. It should contain
[core]
sharedrepository = 1
now.
I've never used that option before but I think this option should be
enough to ensure that it works in the future if it did for other repos
in the past..
Marc Weber
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Git newbie question: permissions
2008-10-09 20:20 Git newbie question: permissions Ed Schofield
2008-10-09 21:05 ` Samuel Lucas Vaz de Mello
2008-10-09 21:29 ` Marc Weber
@ 2008-10-09 21:41 ` Samuel Tardieu
2008-10-09 22:59 ` Ed Schofield
2008-10-10 14:44 ` Samuel Lucas Vaz de Mello
2 siblings, 2 replies; 6+ messages in thread
From: Samuel Tardieu @ 2008-10-09 21:41 UTC (permalink / raw)
To: Ed Schofield; +Cc: git
>>>>> "Ed" == Ed Schofield <edschofield@gmail.com> writes:
Ed> I have now run "git --bare init --shared=group" to reinitialize
Ed> the repository. This seems to have changed the directories to be
Ed> g+sx. (Is this all it did?). There are still some objects
Ed> directories with 755 permissions rather than 770, which I presume
Ed> I want, and the group ownership of these is wrong. Shall I change
Ed> these by hand? The sha1 files all have 444 permissions; is this
Ed> right?
Ed> The last question I have is how to ensure that git creates object
Ed> files etc. with the right permissions when users push in future.
As Marc said, you should first make sure that "config" contains
"sharedrepository = 1" in the "[core]" section.
Then you can do the following:
- remove all permissions for "others": chmod -R o-rwx .
- mirror "user" permissions to "group": chmod -R g=u .
- add +s flag to directories: find . -type d | xargs chmod g+s
This should fix your current situation. The "sharedrepository = 1"
will tell git to maintain a proper shared state in the future
on objects it creates (i.e. mirror "user" permission to "group" ones).
Sam
--
Samuel Tardieu -- sam@rfc1149.net -- http://www.rfc1149.net/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Git newbie question: permissions
2008-10-09 21:41 ` Samuel Tardieu
@ 2008-10-09 22:59 ` Ed Schofield
2008-10-10 14:44 ` Samuel Lucas Vaz de Mello
1 sibling, 0 replies; 6+ messages in thread
From: Ed Schofield @ 2008-10-09 22:59 UTC (permalink / raw)
To: git
On Thu, Oct 9, 2008 at 10:41 PM, Samuel Tardieu <sam@rfc1149.net> wrote:
>>>>>> "Ed" == Ed Schofield <edschofield@gmail.com> writes:
>
> Ed> I have now run "git --bare init --shared=group" to reinitialize
> Ed> the repository. This seems to have changed the directories to be
> Ed> g+sx. (Is this all it did?). There are still some objects
> Ed> directories with 755 permissions rather than 770, which I presume
> Ed> I want, and the group ownership of these is wrong. Shall I change
> Ed> these by hand? The sha1 files all have 444 permissions; is this
> Ed> right?
>
> Ed> The last question I have is how to ensure that git creates object
> Ed> files etc. with the right permissions when users push in future.
>
> As Marc said, you should first make sure that "config" contains
> "sharedrepository = 1" in the "[core]" section.
>
> Then you can do the following:
>
> - remove all permissions for "others": chmod -R o-rwx .
> - mirror "user" permissions to "group": chmod -R g=u .
> - add +s flag to directories: find . -type d | xargs chmod g+s
>
> This should fix your current situation. The "sharedrepository = 1"
> will tell git to maintain a proper shared state in the future
> on objects it creates (i.e. mirror "user" permission to "group" ones).
This worked beautifully. Thanks Sam, thanks Marc!
-- Ed
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Git newbie question: permissions
2008-10-09 21:41 ` Samuel Tardieu
2008-10-09 22:59 ` Ed Schofield
@ 2008-10-10 14:44 ` Samuel Lucas Vaz de Mello
1 sibling, 0 replies; 6+ messages in thread
From: Samuel Lucas Vaz de Mello @ 2008-10-10 14:44 UTC (permalink / raw)
To: git
Samuel Tardieu wrote:
> This should fix your current situation. The "sharedrepository = 1"
> will tell git to maintain a proper shared state in the future
> on objects it creates (i.e. mirror "user" permission to "group" ones).
>
Is git-gc supposed to respect sharedrepository=1 and create
group-writable files?
For me, it's recreating the files under logs/refs/heads with 644
permissions.
BR,
- Samuel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-10-10 14:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-09 20:20 Git newbie question: permissions Ed Schofield
2008-10-09 21:05 ` Samuel Lucas Vaz de Mello
2008-10-09 21:29 ` Marc Weber
2008-10-09 21:41 ` Samuel Tardieu
2008-10-09 22:59 ` Ed Schofield
2008-10-10 14:44 ` Samuel Lucas Vaz de Mello
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).