diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-11-18 03:31:35 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:57 -0500 |
commit | bc7b4abc3a85e78a73d401345265b2c022f0f04d (patch) | |
tree | 198b8203af8003f3e08c351f27425236bfd38227 /source4/librpc/idl/xattr.idl | |
parent | 3c25dfe78905984da1b18a7c136f954bfcdece42 (diff) | |
download | samba-bc7b4abc3a85e78a73d401345265b2c022f0f04d.tar.gz samba-bc7b4abc3a85e78a73d401345265b2c022f0f04d.tar.bz2 samba-bc7b4abc3a85e78a73d401345265b2c022f0f04d.zip |
r3832: added NT ACL query/set to the posix NTVFS backend. The default ACL is
based on the current nttoken, which is completely wrong, but works as a start.
The ACL is stored in the xattr system.DosAcl, using a NDR encoded IDL
union with a version number to allow for future expansion.
pvfs does not yet check the ACL for file access. At the moment the ACL
is just query/set.
We also need to do some RPC work to allow the windows ACL editor to be
used. At the moment is queries the ACL fine, but displays an error
when it fails to map the SIDs via rpc.
(This used to be commit 3a1f20d874ab2d8b2a2f2485b7a705847abf1263)
Diffstat (limited to 'source4/librpc/idl/xattr.idl')
-rw-r--r-- | source4/librpc/idl/xattr.idl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source4/librpc/idl/xattr.idl b/source4/librpc/idl/xattr.idl index 703fb2325b..153561ac1a 100644 --- a/source4/librpc/idl/xattr.idl +++ b/source4/librpc/idl/xattr.idl @@ -8,6 +8,9 @@ about a file in a architecture independent manner */ +[ + depends(security) +] interface xattr { const string XATTR_DOSATTRIB_NAME = "user.DosAttrib"; @@ -72,4 +75,24 @@ interface xattr uint32 num_streams; [size_is(num_streams)] xattr_DosStream *streams; } xattr_DosStreams; + + + /* we store the NT ACL a DosAcl xattr. It is versioned so we + can later add other acl attribs (such as posix acl + mapping) + + we put this xattr in the security namespace to ensure that + only trusted users can write to the ACL + */ + const string XATTR_DOSACL_NAME = "security.DosAcl"; + + typedef union { + [case(1)] security_descriptor *sd; + } xattr_DosAclInfo; + + typedef [public] struct { + uint16 version; + [switch_is(version)] xattr_DosAclInfo info; + } xattr_DosAcl; + } |