This is a common question.
Please see
this thread. I provide a number of links at the end of the page.
EDIT: as a short answer to explain your issue, the useradd command expects the argument for the password option to be the encrypted form of the plaintext password--not the plaintext password itself. For your example sequence above to work, when prompted for the password with
su, you would need to enter a text string that, when encrypted, matches 'abc123'.