diff options
author | Luke Leighton <lkcl@samba.org> | 1998-11-11 21:44:02 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1998-11-11 21:44:02 +0000 |
commit | e35207f28de89cb3da88b47f4e70224e6b7f78e9 (patch) | |
tree | cb2375e598cfd7d15abe255c50c8073dcb16f723 /source3/include/rpc_secdes.h | |
parent | 4dd4f1798ee302e56dca98f80e252cfbd14cd388 (diff) | |
download | samba-e35207f28de89cb3da88b47f4e70224e6b7f78e9.tar.gz samba-e35207f28de89cb3da88b47f4e70224e6b7f78e9.tar.bz2 samba-e35207f28de89cb3da88b47f4e70224e6b7f78e9.zip |
security descriptor info, provided by jean-francois
(This used to be commit 719382a5579e8798812bbccd14a4c1ffd9003f7a)
Diffstat (limited to 'source3/include/rpc_secdes.h')
-rw-r--r-- | source3/include/rpc_secdes.h | 53 |
1 files changed, 41 insertions, 12 deletions
diff --git a/source3/include/rpc_secdes.h b/source3/include/rpc_secdes.h index 1b438d3dfe..b317ead5e1 100644 --- a/source3/include/rpc_secdes.h +++ b/source3/include/rpc_secdes.h @@ -38,6 +38,31 @@ #define SEC_RIGHTS_READ 0x00020019 #define SEC_RIGHTS_FULL_CONTROL 0x000f003f + +#define SEC_ACE_TYPE_ACCESS_ALLOWED 0x0 +#define SEC_ACE_TYPE_ACCESS_DENIED 0x1 +#define SEC_ACE_TYPE_SYSTEM_AUDIT 0x2 +#define SEC_ACE_TYPE_SYSTEM_ALARM 0x3 + +#define SEC_ACE_FLAG_OBJECT_INHERIT 0x1 +#define SEC_ACE_FLAG_CONTAINER_INHERIT 0x2 +#define SEC_ACE_FLAG_NO_PROPAGATE_INHERIT 0x4 +#define SEC_ACE_FLAG_INHERIT_ONLY 0x8 +#define SEC_ACE_FLAG_VALID_INHERIT 0xf +#define SEC_ACE_FLAG_SUCCESSFUL_ACCESS 0x40 +#define SEC_ACE_FLAG_FAILED_ACCESS 0x80 + +#define SEC_DESC_OWNER_DEFAULTED 0x0001 +#define SEC_DESC_GROUP_DEFAULTED 0x0002 +#define SEC_DESC_DACL_PRESENT 0x0004 +#define SEC_DESC_DACL_DEFAULTED 0x0008 +#define SEC_DESC_SACL_PRESENT 0x0010 +#define SEC_DESC_SACL_DEFAULTED 0x0020 +#define SEC_DESC_SELF_RELATIVE 0x8000 + + + + /* SEC_INFO */ typedef struct security_info_info { @@ -48,8 +73,9 @@ typedef struct security_info_info /* SEC_ACE */ typedef struct security_ace_info { - uint16 unknown_1; /* 0x2000 */ - uint16 ace_size; + uint8 type; + uint8 flags; + uint16 size; SEC_INFO info; DOM_SID sid; @@ -62,27 +88,30 @@ typedef struct security_ace_info /* SEC_ACL */ typedef struct security_acl_info { - uint16 unknown_1; /* 0x0002 */ - uint16 acl_size; /* size in bytes of the entire ACL structure */ + uint16 revision; /* 0x0002 */ + uint16 size; /* size in bytes of the entire ACL structure */ uint32 num_aces; /* number of Access Control Entries */ SEC_ACE ace[MAX_SEC_ACES]; } SEC_ACL; + /* SEC_DESC */ typedef struct security_descriptor_info { - uint32 unknown_1; /* 0x8004 0001 */ + uint16 revision; /* 0x0001 */ + uint16 type; /* SEC_DESC_xxxx flags */ uint32 off_owner_sid; /* offset to owner sid */ - uint32 off_pnt_sid ; /* offset to parent? sid */ - uint32 off_unknown ; /* 0x0000 0000 */ - uint32 off_acl ; /* offset to list of permissions */ - - SEC_ACL acl; - DOM_SID owner_sid; - DOM_SID parent_sid; + uint32 off_grp_sid ; /* offset to group sid */ + uint32 off_sacl ; /* offset to system list of permissions */ + uint32 off_dacl ; /* offset to list of permissions */ + + SEC_ACL dacl; /* user ACL */ + SEC_ACL sacl; /* system ACL */ + DOM_SID owner_sid; + DOM_SID grp_sid; } SEC_DESC; |