git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/4] Allow Git repositories to be shared using POSIX ACLs

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 19, 2010, 17:52 UTC
Message-ID
<7vsk8xjep1.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1266597207-32036-1-git-send-email-Matthieu.Moy@imag.fr>
Matthieu Moy <Matthieu.Moy@imag.fr> writes:
> In short: if a user wants to share a git repository using POSIX
> filesystem ACLs, it seems everything works except pack file creation.
> The problem is that we create the file with a mode 0600, i.e. no
> permission for group,...

Modulo that it is more like "we let mkstemp() to choose whatever file mode", this is a good analysis.

I think some versions of glibc used to have mkstemp() that creates 0644 or 0664, meaning that the modes left by various implementations of mkstemp() are different from each other, and also different from what we want. With aef5aed (pack-objects: quickfix for permission modes., 2007-04-22) and b6b32cc (Fix 'quickfix' on pack-objects., 2007-04-22), were attempts to work around that issue.

By not using mkstemp() from the platform but having our own would allow us to not even worry about this issue (this can be seen by the removal of a call to umask() in [PATCH 4/4]). I see your patches as a "bite-the-bullet and do the right thing" solution.

Show 5 quoted lines
> The test-case is really weak: ideally, we should have a real test with
> several users interacting. But that's hardly scriptable in a portable
> way, so the only testcase I added relies on getfacl and "ls -l" to find
> out if the result is correct. However, I did some manual testing, and
> as far as I can say, Git works very well with ACLs with this patch.
Thanks.
Previous: Matthieu MoyNext: Matthieu Moy
Message 11 of 18 in “Allow Git repositories to be shared using POSIX ACLs”
  1. 0/4 Allow Git repositories to be shared using POSIX ACLsMatthieu Moy, Feb 19, 2010
  2. 1/4 Add a testcase for ACL with restrictive umask.Matthieu Moy, Feb 19, 2010
  3. 2/4 Move gitmkstemps to path.cMatthieu Moy, Feb 19, 2010
  4. 3/4 git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument.Matthieu Moy, Feb 19, 2010
  5. 4/4 Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later.Matthieu Moy, Feb 19, 2010
  6. Junio C HamanoFeb 20, 2010
  7. Matthieu MoyFeb 22, 2010
  8. Junio C HamanoFeb 22, 2010
  9. Junio C HamanoFeb 22, 2010
  10. Matthieu MoyFeb 22, 2010
  11. Junio C HamanoFeb 19, 2010
  12. 0/6 Allow Git repositories to be shared using POSIX ACLsMatthieu Moy, Feb 22, 2010
  13. 1/6 Add a testcase for ACL with restrictive umask.Matthieu Moy, Feb 22, 2010
  14. 2/6 Move gitmkstemps to path.cMatthieu Moy, Feb 22, 2010
  15. 3/6 git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument.Matthieu Moy, Feb 22, 2010
  16. 4/6 Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later.Matthieu Moy, Feb 22, 2010
  17. 5/6 git_mkstemps_mode: don't set errno to EINVAL on exit.Matthieu Moy, Feb 22, 2010
  18. 6/6 Use git_mkstemp_mode instead of plain mkstemp to create object filesMatthieu Moy, Feb 22, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.