Hi Andreas, > +#define RICHACE_OWNER_SPECIAL_ID 0 > +#define RICHACE_GROUP_SPECIAL_ID 1 > +#define RICHACE_EVERYONE_SPECIAL_ID 2 > + > +struct richace { > + unsigned short e_type; > + unsigned short e_flags; > + unsigned int e_mask; > + union { > + kuid_t uid; > + kgid_t gid; > + unsigned int special; > + } e_id; > +}; > + > +struct richacl { > + atomic_t a_refcount; > + unsigned int a_owner_mask; > + unsigned int a_group_mask; > + unsigned int a_other_mask; > + unsigned short a_count; > + unsigned short a_flags; > + struct richace a_entries[0]; > +}; Is that also the on disk representation? I'm wondering if the size of an ace should be dynamic, which might make it possible to support other ace types in future. E.g. supporting other identities like 128-bit values to make it easier to map Windows SIDS. Even without 128-bit ids, it would be very useful to mark an ace so that it applies to a uid or gid at the same time. This would reduce the size of the ace list when Samba uses IDMAP_TYPE_BOTH, which means a SID is mapped to a unix id, which is user (uid) and group (gid) at the same time. This feature is required in order to support SID-Histories on accounts. Currently Samba needs to add two aces (one uid and one gid) in order to represent one Windows ace. I haven't looked at the claims based acls on Windows, but it would be good if the new infrastructure is dynamic enough to support something like that in a future version. Thanks very much on your persistent to bring richacls forward! metze
Attachment:
signature.asc
Description: OpenPGP digital signature