diff options
author | Andreas Schneider <asn@samba.org> | 2012-07-20 17:12:09 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2012-07-23 22:12:29 +0200 |
commit | a256d61c505ab10710c7d7152bab4f018cfdcd74 (patch) | |
tree | 29fddce4055dfb95395f1226a8727e0811e80f8a /source3 | |
parent | 111c2159de6e417e7912dc8b26f6d3a2ce20de20 (diff) | |
download | samba-a256d61c505ab10710c7d7152bab4f018cfdcd74.tar.gz samba-a256d61c505ab10710c7d7152bab4f018cfdcd74.tar.bz2 samba-a256d61c505ab10710c7d7152bab4f018cfdcd74.zip |
s3-winbind: Fix bug #9052 resolving our own "Domain Local" groups.
We don't resolve our own "Domain Local" groups since bug #7843 has been
fixed. So we need to add the add resource groups to the sid list too.
Before bug #7843 the "Domain Local" groups were added with a
lookupuseraliases call, but this isn't done anymore for our domain
so we need to resolve resource groups here.
When to use Resource Groups:
http://technet.microsoft.com/en-us/library/cc753670%28v=WS.10%29.aspx
Signed-off-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Mon Jul 23 22:12:30 CEST 2012 on sn-devel-104
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/proto.h | 3 | ||||
-rw-r--r-- | source3/lib/util_sid.c | 9 | ||||
-rw-r--r-- | source3/winbindd/winbindd_pam.c | 2 | ||||
-rw-r--r-- | source3/winbindd/winbindd_util.c | 12 |
4 files changed, 12 insertions, 14 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 585067eccc..3a2bf1baa5 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -549,8 +549,7 @@ NTSTATUS sid_array_from_info3(TALLOC_CTX *mem_ctx, const struct netr_SamInfo3 *info3, struct dom_sid **user_sids, uint32_t *num_user_sids, - bool include_user_group_rid, - bool skip_ressource_groups); + bool include_user_group_rid); /* The following definitions come from lib/util_sock.c */ diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index f080d3dfb0..f051b7a1ff 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -130,8 +130,7 @@ NTSTATUS sid_array_from_info3(TALLOC_CTX *mem_ctx, const struct netr_SamInfo3 *info3, struct dom_sid **user_sids, uint32_t *num_user_sids, - bool include_user_group_rid, - bool skip_ressource_groups) + bool include_user_group_rid) { NTSTATUS status; struct dom_sid sid; @@ -191,12 +190,6 @@ NTSTATUS sid_array_from_info3(TALLOC_CTX *mem_ctx, */ for (i = 0; i < info3->sidcount; i++) { - - if (skip_ressource_groups && - (info3->sids[i].attributes & SE_GROUP_RESOURCE)) { - continue; - } - status = add_sid_to_array(mem_ctx, info3->sids[i].sid, &sid_array, &num_sids); if (!NT_STATUS_IS_OK(status)) { diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c index 96956d071e..a64cc5692c 100644 --- a/source3/winbindd/winbindd_pam.c +++ b/source3/winbindd/winbindd_pam.c @@ -308,7 +308,7 @@ static NTSTATUS check_info3_in_group(struct netr_SamInfo3 *info3, status = sid_array_from_info3(talloc_tos(), info3, &token->sids, &token->num_sids, - true, false); + true); if (!NT_STATUS_IS_OK(status)) { TALLOC_FREE(frame); return status; diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c index 162cdf22e1..52ce1e3056 100644 --- a/source3/winbindd/winbindd_util.c +++ b/source3/winbindd/winbindd_util.c @@ -1033,12 +1033,18 @@ NTSTATUS lookup_usergroups_cached(struct winbindd_domain *domain, return NT_STATUS_UNSUCCESSFUL; } - /* Skip Domain local groups outside our domain. - We'll get these from the getsidaliases() RPC call. */ + /* + * Before bug #7843 the "Domain Local" groups were added with a + * lookupuseraliases call, but this isn't done anymore for our domain + * so we need to resolve resource groups here. + * + * When to use Resource Groups: + * http://technet.microsoft.com/en-us/library/cc753670%28v=WS.10%29.aspx + */ status = sid_array_from_info3(mem_ctx, info3, user_sids, &num_groups, - false, true); + false); if (!NT_STATUS_IS_OK(status)) { TALLOC_FREE(info3); |