On 10/3/06, Tom Haynes <Thomas.Haynes at sun.com> wrote: > Also, read passwd(4): > > where > > username is the user's login name. > > The login (login) and role (role) fields > accept a string of no more than eight bytes > consisting of characters from the set of > alphabetic characters, numeric characters, > period (.), underscore (_), and hyphen (-). > The first character should be alphabetic and > the field should contain at least one lower > case alphabetic character. A warning message > is displayed if these restrictions are not > met.
>From a standards perspective, this is outdated. Refer to http://www.opengroup.org/onlinepubs/009695399/xrat/xbd_chap03.html. User Database ... IEEE Std 1003.1-2001 is silent about the content of the strings containing user or group names. These could be digit strings. IEEE Std 1003.1-2001 is also silent as to whether such digit strings bear any relationship to the corresponding (numeric) user or group ID. I've spent many hours talking to the appropriate engineering folks from 2/3 of the leading UNIX vendors about supportability of all numeric (9-digit even) usernames. They each started telling me what POSIX says without being able to point to the part of POSIX that says all numeric usernames are not allowed. At the time, everything that was critical worked but left us in a dubious support situation. Along came an update to a product from the other 1/3 of the top UNIX vendors that specifically broke 9-digit usernames. The bug report that was opened was closed as "will not fix". In my experience with this issue (measured in dozens of hours, mostly really bad meetings) run away from 9-digit usernames as quickly as possible. If 9-digit numbers as usernames are engrained in your environment and you need to map names in an easy way, look to decimal->hex for inspiration. 100000000 == aa000000, 999999999 == y9999999. Mike -- Mike Gerdts http://mgerdts.blogspot.com/