From the [user add](http://manpages.ubuntu.com/manpages/lucid/man8/useradd.8.html) man page

"It is usually recommended to only use usernames that begin with a lower case letter or an underscore, followed by lower case letters, digits, underscores, or dashes. They can end with a dollar sign. In regular expression terms: [a-z_][a-z0-9_-]*[$]?

On Debian, the only constraints are that usernames must neither start with a dash (-) nor contain a colon (:) or a whitespace (space:  , end of line: \n, tabulation: \t, etc.). Note that using a slash (/) may break the default algorithm for the definition of the users home directory.

Usernames may only be up to 32 characters long."