2 Unix SMB/CIFS implementation.
3 Portable SMB ACL interface
4 Copyright (C) Jeremy Allison 2000
5 Copyright (C) Andrew Bartlett 2012
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
22 /* Allow the smb_acl interface to be pushed into an NDR blob and read/written in python */
24 pointer_default(unique)
29 const int SMB_ACL_READ
= 4;
30 const int SMB_ACL_WRITE
= 2;
31 const int SMB_ACL_EXECUTE
= 1;
35 SMB_ACL_TAG_INVALID
= 0,
39 SMB_ACL_GROUP_OBJ
= 4,
52 typedef [switch_type(uint16
)] union {
53 [case (SMB_ACL_USER
)] smb_acl_user user
;
54 [case (SMB_ACL_USER_OBJ
)];
55 [case (SMB_ACL_GROUP
)] smb_acl_group group
;
56 [case (SMB_ACL_GROUP_OBJ
)];
57 [case (SMB_ACL_OTHER
)];
58 [case (SMB_ACL_MASK
)];
63 [switch_is(a_type
)] smb_acl_entry_info info
;
67 [public] typedef struct {
70 [size_is(count
)] smb_acl_entry acl
[*];
73 const int SMB_ACL_FIRST_ENTRY
= 0;
74 const int SMB_ACL_NEXT_ENTRY
= 1;
76 const int SMB_ACL_TYPE_ACCESS
= 0;
77 const int SMB_ACL_TYPE_DEFAULT
= 1;