diff --git a/source/auth/auth.c b/source/auth/auth.c index 851e1f53cff..4bfbfe65fee 100644 --- a/source/auth/auth.c +++ b/source/auth/auth.c @@ -131,7 +131,10 @@ uint32 check_password(const auth_usersupplied_info *user_info, auth_serversuppli } if (nt_status == NT_STATUS_NOPROBLEMO) { + /* We might not be root if we are an RPC call */ + become_root(); nt_status = smb_pam_accountcheck(user_info->smb_username.str); + unbecome_root(); } if (nt_status == NT_STATUS_NOPROBLEMO) { diff --git a/source/smbd/auth.c b/source/smbd/auth.c index 851e1f53cff..4bfbfe65fee 100644 --- a/source/smbd/auth.c +++ b/source/smbd/auth.c @@ -131,7 +131,10 @@ uint32 check_password(const auth_usersupplied_info *user_info, auth_serversuppli } if (nt_status == NT_STATUS_NOPROBLEMO) { + /* We might not be root if we are an RPC call */ + become_root(); nt_status = smb_pam_accountcheck(user_info->smb_username.str); + unbecome_root(); } if (nt_status == NT_STATUS_NOPROBLEMO) {