git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Schindelin <johannes.schindelin@gmx.de>
To: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Cc: gitster@pobox.com, pclouds@gmail.com, git@vger.kernel.org
Subject: Re: Unable to create temporary file '/var/git/tmv3-target-overlay.git/shallow_Un8ZOR': Permission denied
Date: Tue, 22 Sep 2015 22:00:08 +0200	[thread overview]
Message-ID: <37ca95b3fef79e348fb5ba68cd21c590@dscho.org> (raw)
In-Reply-To: <1442855328.29498.30.camel@transmode.se>

Hi Joakim,

On 2015-09-21 19:08, Joakim Tjernlund wrote:
> On Mon, 2015-09-21 at 09:48 -0700, Junio C Hamano wrote:
>> Duy Nguyen <pclouds@gmail.com> writes:
>>
>> > Is it really necessary to remove write access in $GIT_DIR? Do we (git
>> > devs) have some guidelines about things in $GIT_DIR?
>>
>> Those who are allowed to "git push" into it should be able to write
>> there.  It is a different matter that "git" program itself may make
>> a policy decision to disallow some operations that the filesystem
>> bits alone would have allowed (e.g. you can arrange the "pusher" to
>> only come over the wire via "receive-pack" and "receive-pack" may
>> deliberately lack support for writing into $GIT_DIR/config).
>>
> 
> I view $GIT_DIR similar to "/" and "/tmp". Normally one does not let
> normal users write to "/"
> as you want to keep this level clean. It is not obvious to everybody
> what files are important
> under $GIT_DIR when mixed with tmp files etc.
> $GIT_DIR/tmp would solve this nicely.

By now it is pretty clear that you won't find many people here you share your opinion about locking down the Git directory.

The reason should be easy to understand: Git's concept is based on the idea that you have full control over your repository. Other repositories you might only have read access.

But this idea you have, to somehow introduce fine-grained levels of control, this idea would imply that all of a sudden Git is no longer free to write to its files as it likes. And as far as Git is concerned, everything inside .git/ *are* its files.

So in essence, the core concept of Git -- you clone a repository you cannot write to so that you have a local repository you can do *anything you like* to -- is pretty much incompatible with this idea of a selective lock down of files in .git/ that not only would require you to know very exactly what files Git might want to write, but also to keep yourself up-to-date with Git's development as to which files it might want to write for *every* new version. Making only .git/tmp/ a writable location further fails to acknowledge the fact that the hierarchy of to-be-written files follows the function of those files, not any write permission hierarchy. Since the idea seems so alien to Git's core concept, I called it "overzealous". If that hurt your feelings, I am sorry and would like to apologize
 .

Having said all that, I believe that reiterating this idea without pointing to any benefit will continue to fail to convince people that the idea is sound and that Git's core concept should change. If you need to exert more control in a specific repository, you simply make it accessible only as a non-file-system remote (where only `git`, `git-receive-pack` and `git-upload-pack` are allowed to be executed) and define hooks that can accept or deny on a *much* finer level than file system permissions ever could, after all.

Ciao,
Johannes

  reply	other threads:[~2015-09-22 20:00 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-21 11:36 Unable to create temporary file '/var/git/tmv3-target-overlay.git/shallow_Un8ZOR': Permission denied Joakim Tjernlund
2015-08-21 11:50 ` Joakim Tjernlund
2015-08-31  9:03   ` Joakim Tjernlund
2015-08-31  9:56 ` Duy Nguyen
2015-09-14 15:37   ` Joakim Tjernlund
2015-09-17 13:18     ` Duy Nguyen
2015-09-17 16:54       ` Joakim Tjernlund
2015-09-19  2:21         ` Duy Nguyen
2015-09-19  2:26           ` Duy Nguyen
2015-09-19  7:13           ` Johannes Schindelin
2015-09-20 13:36             ` Joakim Tjernlund
2015-09-19  8:44           ` Joakim Tjernlund
2015-09-21 16:48           ` Junio C Hamano
2015-09-21 17:08             ` Joakim Tjernlund
2015-09-22 20:00               ` Johannes Schindelin [this message]
2015-09-22 20:58                 ` Joakim Tjernlund
2015-09-23 11:10                   ` Johannes Schindelin
2015-09-23 15:13                     ` Junio C Hamano
2015-09-23 20:41                     ` Joakim Tjernlund
2015-09-23 22:48                       ` Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=37ca95b3fef79e348fb5ba68cd21c590@dscho.org \
    --to=johannes.schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=joakim.tjernlund@transmode.se \
    --cc=pclouds@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).