Index: auth/auth_util.c =================================================================== RCS file: /data/cvs/samba/source/auth/auth_util.c,v retrieving revision 1.39.2.51 diff -u -r1.39.2.51 auth_util.c --- auth/auth_util.c 9 Dec 2003 18:34:29 -0000 1.39.2.51 +++ auth/auth_util.c 19 Dec 2003 00:01:14 -0000 @@ -926,21 +926,38 @@ fstring dom_user; struct passwd *passwd; - fstr_sprintf(dom_user, "%s%s%s", - domain, lp_winbind_separator(), username); + fstr_sprintf(dom_user, "%s%s%s", domain, lp_winbind_separator(), + username); passwd = Get_Pwnam(dom_user); + + if ( passwd ) { + char *p; + + /* make sure we get the case of the username correct */ + /* work around 'winbind use default domain = yes' */ + + p = strchr( passwd->pw_name, *lp_winbind_separator() ); + if ( !p ) + fstr_sprintf(dom_user, "%s%s%s", domain, + lp_winbind_separator(), passwd->pw_name); + else + fstrcpy( dom_user, passwd->pw_name ); + } + else { + /* if the lookup for DOMAIN\username failed, try again + with just 'username'. This is need for accessing the server + as a trust user that actually maps to a local account */ - /* if the lookup for DOMAIN\username failed, try again - with just 'username'. This is need for accessing the server - as a trust user that actually maps to a local account */ - - if ( !passwd ) { fstrcpy( dom_user, username ); passwd = Get_Pwnam( dom_user ); + + /* make sure we get the case of the username correct */ + if ( passwd ) + fstrcpy( dom_user, passwd->pw_name ); } - if (passwd == NULL) + if ( !passwd ) return NT_STATUS_NO_SUCH_USER; *uid = passwd->pw_uid; @@ -953,6 +970,9 @@ --jerry */ *found_username = talloc_strdup(mem_ctx, dom_user); + + DEBUG(5,("fill_sam_account: located username was [%s]\n", + *found_username)); return pdb_init_sam_pw(sam_account, passwd); } Index: auth/auth_winbind.c =================================================================== RCS file: /data/cvs/samba/source/auth/auth_winbind.c,v retrieving revision 1.6.2.18 diff -u -r1.6.2.18 auth_winbind.c --- auth/auth_winbind.c 7 Oct 2003 16:34:23 -0000 1.6.2.18 +++ auth/auth_winbind.c 19 Dec 2003 00:01:14 -0000 @@ -76,7 +76,8 @@ } if (strequal(user_info->domain.str, get_global_sam_name())) { - DEBUG(3,("check_winbind_security: Not using winbind, requested domain was for this SAM.\n")); + DEBUG(3,("check_winbind_security: Not using winbind, requested domain [%s] was for this SAM.\n", + user_info->domain.str)); return NT_STATUS_NOT_IMPLEMENTED; }