diff options
author | Volker Lendecke <vl@samba.org> | 2016-12-29 09:56:29 +0000 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2017-01-02 18:04:13 +0100 |
commit | 2022ec8770ff05d91f6eaf2ae3da7a4150697d56 (patch) | |
tree | 960f89946e7bfd651bf0d24551343b336d835802 /librpc | |
parent | c98ad0accae2b32526cfdc4577cc6d5adafc5f00 (diff) | |
download | samba-2022ec8770ff05d91f6eaf2ae3da7a4150697d56.tar.gz |
winbind: Add a GetNssInfo parent/child call
This call will be done in the idmap child. It is not 100% the right place,
but there is no better one available to me. It will become a replacement
for the "winbind nss info" parameter: This global parameter is good
for just one domain. It might be possible to have idmap backend AD for
different domains, and the NSS info like primary gid, homedir and shell
might be done with different policies per domain. As we already have a
domain-specific idmap configuration, doing the NSS info configuration
there also is the closest way to do it.
The alternative, if we did not want to put this call into the idmap child
would be to establish an equivalent engine like the whole "idmap config
*" just for the nss info. But as I believe this is closely related,
I'll just keep it in the idmap child.
This also extends the wbint_userinfo structure with pretty much all user
related fields. The idea is that the GetNssInfo call can do whatever it
wants with it.
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'librpc')
-rw-r--r-- | librpc/idl/winbind.idl | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/librpc/idl/winbind.idl b/librpc/idl/winbind.idl index ec472c57ede..ab1a32e059c 100644 --- a/librpc/idl/winbind.idl +++ b/librpc/idl/winbind.idl @@ -72,11 +72,14 @@ interface winbind ); typedef [public] struct { + [string,charset(UTF8)] char *domain_name; [string,charset(UTF8)] char *acct_name; [string,charset(UTF8)] char *full_name; [string,charset(UTF8)] char *homedir; [string,charset(UTF8)] char *shell; + hyper uid; hyper primary_gid; + [string,charset(UTF8)] char *primary_group_name; dom_sid user_sid; dom_sid group_sid; } wbint_userinfo; @@ -86,6 +89,10 @@ interface winbind [out] wbint_userinfo *info ); + NTSTATUS wbint_GetNssInfo( + [in,out] wbint_userinfo *info + ); + typedef [public] struct { uint32 num_sids; [size_is(num_sids)] dom_sid sids[]; |