Preliminary read side implementation of new permission handling.
* acl.h (MAX_ACL_ENTRIES): Raise to 2730. Add comment to explain. * sec_acl.cc: Add leading comment to explain new ACL style. Add definitions and macros to use for bits in new Cygwin ACL. (DENY_RWX): New mask value for all temporary deny bits. (getace): Add bool parameter to decide when leaving all bits intact, rather than filtering them per the already set bits. (get_posix_access): New function, taking over functionality to read POSIX ACL from SECURITY_DESCRIPTOR. (getacl): Just call get_posix_access. * sec_helper.cc (well_known_cygwin_sid): Define. * security.cc (get_attribute_from_acl): Remove. (get_info_from_sd): Remove. (get_reg_sd): Call get_posix_access instead of get_info_from_sd. (get_file_attribute): Ditto. (get_object_attribute): Ditto. * security.h (well_known_cygwin_sid): Declare. (get_posix_access): Add prototype. * Throughout, use simpler ACE macros from Windows' accctrl.h. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
@ -393,6 +393,7 @@ public:
|
||||
};
|
||||
|
||||
extern cygpsid well_known_null_sid;
|
||||
extern cygpsid well_known_cygwin_sid;
|
||||
extern cygpsid well_known_world_sid;
|
||||
extern cygpsid well_known_local_sid;
|
||||
extern cygpsid well_known_console_logon_sid;
|
||||
@ -463,6 +464,8 @@ bool get_sids_info (cygpsid, cygpsid, uid_t * , gid_t *);
|
||||
struct acl;
|
||||
extern "C" int aclsort32 (int, int, struct acl *);
|
||||
extern "C" int acl32 (const char *, int, int, struct acl *);
|
||||
int get_posix_access (PSECURITY_DESCRIPTOR, mode_t *, uid_t *, gid_t *,
|
||||
struct acl *, int);
|
||||
int getacl (HANDLE, path_conv &, int, struct acl *);
|
||||
int setacl (HANDLE, path_conv &, int, struct acl *, bool &);
|
||||
|
||||
|
Reference in New Issue
Block a user