From: Ralph Boehme Date: Wed, 28 Nov 2018 14:39:21 +0000 (+0100) Subject: winbindd: Route predefined domains through the BUILTIN domain child X-Git-Tag: tdb-1.3.17~510 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b8d9fdad4a4e2c479141b3d40e9a7320a49c0dd;p=thirdparty%2Fsamba.git winbindd: Route predefined domains through the BUILTIN domain child Without this eg "NT Authority" didn't work: $ bin/wbinfo -n "NT Authority/Authenticated Users" failed to call wbcLookupName: WBC_ERR_DOMAIN_NOT_FOUND Could not lookup name NT Authority/Authenticated Users $ bin/wbinfo --group-info="NT Authority/Authenticated Users" failed to call wbcGetgrnam: WBC_ERR_DOMAIN_NOT_FOUND Could not get info for group NT Authority/Authenticated Users With the patch: $ bin/wbinfo -n "NT Authority/Authenticated Users" S-1-5-11 SID_WKN_GROUP (5) $ bin/wbinfo --group-info="NT Authority/Authenticated Users" NT AUTHORITY\authenticated users:x:10002: BUG: https://bugzilla.samba.org/show_bug.cgi?id=12164 Signed-off-by: Ralph Boehme Reviewed-by: David Mulder Reviewed-by: Andreas Schneider Autobuild-User(master): Ralph Böhme Autobuild-Date(master): Wed Dec 5 11:27:22 CET 2018 on sn-devel-144 --- diff --git a/selftest/knownfail.d/samba.blackbox.wbinfo b/selftest/knownfail.d/samba.blackbox.wbinfo deleted file mode 100644 index e294c2d3c15..00000000000 --- a/selftest/knownfail.d/samba.blackbox.wbinfo +++ /dev/null @@ -1,2 +0,0 @@ -^samba.blackbox.wbinfo\(.*\).wbinfo -n NT Authority/Authenticated Users\(.*\) -^samba.blackbox.wbinfo\(.*\).wbinfo --group-info NT Authority/Authenticated Users\(.*\) diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c index 4d8fdb74472..75d2f31b55f 100644 --- a/source3/winbindd/winbindd_util.c +++ b/source3/winbindd/winbindd_util.c @@ -1504,6 +1504,8 @@ struct winbindd_domain *find_lookup_domain_from_sid(const struct dom_sid *sid) struct winbindd_domain *find_lookup_domain_from_name(const char *domain_name) { + bool predefined; + if ( strequal(domain_name, unix_users_domain_name() ) || strequal(domain_name, unix_groups_domain_name() ) ) { @@ -1519,6 +1521,11 @@ struct winbindd_domain *find_lookup_domain_from_name(const char *domain_name) return find_domain_from_name_noinit(domain_name); } + predefined = dom_sid_lookup_is_predefined_domain(domain_name); + if (predefined) { + return find_domain_from_name_noinit(builtin_domain_name()); + } + if (IS_DC) { struct winbindd_domain *domain = NULL;