diff options
author | Gerald Carter <jerry@samba.org> | 2003-10-07 16:35:03 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-10-07 16:35:03 +0000 |
commit | 4e4bf2de31b0e45bdb3a0d68548fc6bcee886aa7 (patch) | |
tree | ffcc3747a9235d8a3a6b7500d652ffd87ee84881 /source3/auth/auth_util.c | |
parent | 261a31dcc5c8b78d6b8f476dc217732aaa8258bd (diff) | |
download | samba-4e4bf2de31b0e45bdb3a0d68548fc6bcee886aa7.tar.gz samba-4e4bf2de31b0e45bdb3a0d68548fc6bcee886aa7.tar.bz2 samba-4e4bf2de31b0e45bdb3a0d68548fc6bcee886aa7.zip |
make sure to call get_user_groups() with the full winbindd name for a user if he;she has one; bug 406
(This used to be commit 19925e3a04f421f4dcc469b701f3cc51ef98ac2c)
Diffstat (limited to 'source3/auth/auth_util.c')
-rw-r--r-- | source3/auth/auth_util.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c index 952aa8ba59..3803741466 100644 --- a/source3/auth/auth_util.c +++ b/source3/auth/auth_util.c @@ -644,6 +644,9 @@ NT_USER_TOKEN *create_nt_token(uid_t uid, gid_t gid, int ngroups, gid_t *groups, * * currently this is a hack, as there is no sam implementation that is capable * of groups. + * + * NOTE!! This function will fail if you pass in a winbind user without + * the domain --jerry ******************************************************************************/ static NTSTATUS get_user_groups(const char *username, uid_t uid, gid_t gid, @@ -926,8 +929,10 @@ static NTSTATUS fill_sam_account(TALLOC_CTX *mem_ctx, with just 'username'. This is need for accessing the server as a trust user that actually maps to a local account */ - if ( !passwd ) - passwd = Get_Pwnam(username); + if ( !passwd ) { + fstrcpy( dom_user, username ); + passwd = Get_Pwnam( dom_user ); + } if (passwd == NULL) return NT_STATUS_NO_SUCH_USER; @@ -935,7 +940,13 @@ static NTSTATUS fill_sam_account(TALLOC_CTX *mem_ctx, *uid = passwd->pw_uid; *gid = passwd->pw_gid; - *found_username = talloc_strdup(mem_ctx, passwd->pw_name); + /* This is pointless -- there is no suport for differeing + unix and windows names. Make sure to always store the + one we actuall looked up and succeeded. Have I mentioned + why I hate the 'winbind use default domain' parameter? + --jerry */ + + *found_username = talloc_strdup(mem_ctx, dom_user); return pdb_init_sam_pw(sam_account, passwd); } |