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

Re: Storing permissions

From
David A. Wheeler <dwheeler@dwheeler.com>
Date
Apr 17, 2005, 06:22 UTC
Message-ID
<42620092.9040402@dwheeler.com>
In-Reply-To
<Pine.LNX.4.58.0504162138020.7211@ppc970.osdl.org>
Linus Torvalds wrote:
Show 23 quoted lines
> 
> On Sat, 16 Apr 2005, Paul Jackson wrote:
> 
>>Morten wrote:
>>
>>>It makes some sense in principle, but without storing what they mean
>>>(i.e., group==?) it certainly makes no sense. 
>>
>>There's no "they" there.
>>
>>I think Martin's proposal, to which I agreed, was to store a _single_
>>bit.  If any of the execute permissions of the incoming file are set,
>>then the bit is stored ON, else it is stored OFF.  On 'checkout', if the
>>bit is ON, then the file permission is set mode 0777 (modulo umask),
>>else it is set mode 0666 (modulo umask).
> 
> 
> I think I agree.
> 
> Anybody willing to send me a patch? One issue is that if done the obvious
> way it's an incompatible change, and old tree objects won't be valid any
> more. It might be ok to just change the "compare cache" check to only care
> about a few bits, though: S_IXUSR and S_IFDIR.
There's a minor reason to write out ALL the perm bit data, but
only care about a few bits coming back in: Some people use
SCM systems as a generalized backup system, so you can back up
your system to an arbitrary known state in the past
(e.g., "Change my /etc files to the state I was at
just before I installed that &*#@ program!").
For more on this, see:
  http://www.onlamp.com/pub/a/onlamp/2005/01/06/svn_homedir.html

If you store all the bits, then you CAN restore things more exactly the way they were. This is imperfect, since it doesn't cover more exotic permission values from SELinux, xattrs, whatever. For some, that's enough.

Yeah, I know, not the main purpose of git. But what the heck, I _like_ flexible infrastructures.

--- David A. Wheeler
Previous: Linus TorvaldsNext: Paul Jackson
Message 11 of 25 in “Storing permissions”
  1. Martin MaresApr 16, 2005
  2. Paul JacksonApr 16, 2005
  3. Junio C HamanoApr 16, 2005
  4. Paul JacksonApr 17, 2005
  5. David A. WheelerApr 17, 2005
  6. Morten WelinderApr 17, 2005
  7. Paul JacksonApr 17, 2005
  8. Linus TorvaldsApr 17, 2005
  9. Paul JacksonApr 17, 2005
  10. Linus TorvaldsApr 17, 2005
  11. David A. WheelerApr 17, 2005
  12. Paul JacksonApr 17, 2005
  13. Daniel BarkalowApr 17, 2005
  14. Linus TorvaldsApr 17, 2005
  15. David A. WheelerApr 17, 2005
  16. Symlinks [was Re: Storing permissions]Morten Welinder, Apr 17, 2005
  17. Zack BrownDec 7, 2005
  18. Andreas EricssonDec 7, 2005
  19. Zack BrownDec 7, 2005
  20. Petr BaudisDec 7, 2005
  21. Johannes SchindelinDec 7, 2005
  22. Junio C HamanoDec 7, 2005
  23. Zack BrownDec 7, 2005
  24. Junio C HamanoDec 7, 2005
  25. H. Peter AnvinDec 8, 2005

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.