On Friday 2014-02-28 18:59, Guido Berhoerster wrote:
Not as a prefix, from useradd(8):
Usernames must start 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_-]*[$]?
But that's an arbitrary useradd limitation then. Through AD bindings, I am already member of a group with spaces in it. Heck, I can even use an AD identity with backslash to authenticate to remote print servers.
lpr -P bmlp4d -H print.gwdg.de -U 'GWDG\jengelh2' sparkles.pdf
And because we can, Unicode:
19:57 nakamura:/home/jengelh # passwd 中村 New Password: Bad password: too short Reenter New Password: passwd: password updated successfully 19:58 nakamura:/home/jengelh # ssh 中村@localhost Password: Have a lot of fun... 19:58 nakamura:~ > id uid=25126(中村) gid=100(users) groups=100(users)
What I concur on is that names matching /^\d+$/ are "prone" to be interpreted as numeric UIDs rather than textual IDs, and therefore should not be relied upon to describe a user by that the _name_ of "12345".
The other thing is that usernames should not contain '/' because that would make programs susceptible to ".." attacks. As Windows has '\' as directory separator, I figure applications there just always use the SAM GUID instead of the username when they have to store something and decide to do so in the plain filesystem rather than registry - also because the GUID goes better with user renames.