- Unified the formerly separate user & group name-lists into a single
authorWayne Davison <wayned@samba.org>
Mon, 21 May 2007 01:04:40 +0000 (01:04 +0000)
committerWayne Davison <wayned@samba.org>
Mon, 21 May 2007 01:04:40 +0000 (01:04 +0000)
commit030820d5dcb4799a8688187d9f5aa15525ae4be8
treefca9c786c12de573e3c864d7102a3c64a505c3c6
parent043ef55b227146d2482859c66573b3229042ee75
- Unified the formerly separate user & group name-lists into a single
  name-list.  On POSIX systems, this list will be sorted with the user
  names first, so the code will work essentially the same way it did
  before for the currently supported OSes.  However, the code will now
  more easily support non-POSIX ACL setups such as (hopefully) the one
  used in OS X.
- Increased the (potentially) available access-bit storage for name
  elements from 3 to 31 bits.  For non-name elements, the access bits
  now have the potential to store 7 bits instead of 3.  (All the
  current POSIX implementations still error-check their values at 3
  bits, but this will allow adding non-POSIX ACL setups more easily.)
- The protocol that transmits the ACL information was changed to send
  names in a single list, and to use {read,write}_varint() functions
  instead of {read,write}_byte().  This supports sending access-bit
  values up to 32-bits (minus any bits reserved for xmit flags).
- The construction of the internal access-bit value was moved into the
  lib/sysacls.c code, so that it could be handled in an appropriate
  manner for each OS.

(Aside: the code still does not support transmitting incompatible ACL
information between systems, but I envision improving --fake-super to
store the ACL information that is received as xattr information, and
this would allow a system that supports extended attributes to backup
a source system that had an incompatible ACL method.)
acls.c