s3-passdb: Fix 'force user' with winbind default domain
authorAndreas Schneider <asn@samba.org>
Tue, 31 Mar 2015 16:15:51 +0000 (18:15 +0200)
committerJeremy Allison <jra@samba.org>
Tue, 31 Mar 2015 19:17:23 +0000 (21:17 +0200)
If we set 'winbind use default domain' and specify 'force user = user'
without a domain name we fail to log in. In this case we need to try a
lookup with the domain name.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11185

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Mar 31 21:17:23 CEST 2015 on sn-devel-104

source3/passdb/lookup_sid.c

index c5b28d83fc6534d18fd60503fd7077eecdf19218..a85b28fbceb4876ee3da8134b2457167c0d93c9d 100644 (file)
@@ -395,6 +395,30 @@ bool lookup_name_smbconf(TALLOC_CTX *mem_ctx,
                                ret_sid, ret_type);
        }
 
+       /* Try with winbind default domain name. */
+       if (lp_winbind_use_default_domain()) {
+               bool ok;
+
+               qualified_name = talloc_asprintf(mem_ctx,
+                                                "%s\\%s",
+                                                lp_workgroup(),
+                                                full_name);
+               if (qualified_name == NULL) {
+                       return false;
+               }
+
+               ok = lookup_name(mem_ctx,
+                                qualified_name,
+                                flags,
+                                ret_domain,
+                                ret_name,
+                                ret_sid,
+                                ret_type);
+               if (ok) {
+                       return true;
+               }
+       }
+
        /* Try with our own SAM name. */
        qualified_name = talloc_asprintf(mem_ctx, "%s\\%s",
                                get_global_sam_name(),