ms-nfs41-client/build.vc10
Olga Kornievskaia ab55e6e8c5 first stab at handling security irp
Basic handling of owner and group security query (no dacl).

Added new upcall for NFS41_ACL_QUERY (driver and daemon code).

Daemon, upon getting NFS41_ACL_QUERY first places a getattr that has
owner, group attribute request. We currently don't cache them!!!

Then, we parse nfs4name format (ie user@domain or group@domain)
into user and domain. We currently ignore domain part!!!

Then, we assume that whatever we are mapping is "known" locally
(ie LookupAccountName() api which retrieves a SID for a given name).
Mapping from name to SID can only be done in the userland. We then
copy the bytes via the upcall pipe to the kernel. If the received
user or group cant be mapped via LookupAccoundName(), we create a
well known null SID as the reply.

Kernel creates a security descriptor in the absolute-format and adds
owner and group sids to it. Important: RtlSetOwner/Group functions only
work with absolute-format security descriptor, however the reply to the
user needs to be in the self-relative format.

The way security query works is that it passes us a buffer to be filled
with the security context. However the user doesn't know how big the
buffer should be so, the user is allowed to pass a null buffer and have
the kernel return how much memory is needed. This leads to 2 security
queries => 2 NFS41_ACL_QUERY upcalls => 2 getattr rpcs... It should be
improved.

TODO:
- need to add caching of owner/group attributes for a file?
- need to add calls to LDAP for more general mapping?
- need to cache reply of the ACL if supplied length is 0?
2011-03-22 17:21:13 -04:00
..
.gitignore fresh git tree for public release 2010-10-12 10:15:48 -04:00
daemon.vcxproj first stab at handling security irp 2011-03-22 17:21:13 -04:00
daemon.vcxproj.filters first stab at handling security irp 2011-03-22 17:21:13 -04:00
dll.vcxproj build.vc10: updated warning settings for visual studio projects 2010-12-10 13:49:37 -05:00
dll.vcxproj.filters fresh git tree for public release 2010-10-12 10:15:48 -04:00
env.props.example fresh git tree for public release 2010-10-12 10:15:48 -04:00
libtirpc.vcxproj turning callback off for krb5p 2011-02-03 13:13:10 -05:00
libtirpc.vcxproj.filters first stab at SSPI leaving gss calls in 2010-12-02 14:22:04 -05:00
mount.vcxproj build.vc10: updated warning settings for visual studio projects 2010-12-10 13:49:37 -05:00
mount.vcxproj.filters fresh git tree for public release 2010-10-12 10:15:48 -04:00
ms-nfs41-client.sln fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_driver.vcxproj fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_driver.vcxproj.filters fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs_install.vcxproj build.vc10: updated warning settings for visual studio projects 2010-12-10 13:49:37 -05:00
nfs_install.vcxproj.filters fresh git tree for public release 2010-10-12 10:15:48 -04:00