Americas

  • United States
sandra_henrystocker
Unix Dweeb

Unix and long usernames

Analysis
Jul 30, 20083 mins
Data CenterLinuxOpen Source

I ran into an odd issue the other day when I was working on a Linux box. I noticed a number of processes in the ps output were listed with the user’s UID instead of his username. It took a little poking around before I realized that it was usernames with more than eight characters that were replaced by the numeric IDs. While this wasn’t a big problem, it makes it a lot more trouble to figure out who is running what processes if I have to look them up in the /etc/passwd file.

I could truncate usernames to eight characters and be done with it. Then again, I’d have to inform all the users with nine or more characters that I had shortened their usernames and they would probably stress out at having to remember another variation of their login name. Besides, it seems this old limitation of Unix systems could be handled more smoothly. Even if there would be some workaround to make ps output look the way I expected, would I want to teach it to everyone or force their accounts to alias the command to ps?

The simplest way around the issue seemed to be to create a second entry in the /etc/passwd file. Where I once had:

slrauenzahn:x:111:111:Sara L. Rauenzahn:/home/slrauenzahn:/bin/bash

I now have this:

slrauenz:x:111:111:Sara L. Rauenzahn:/home/slrauenzahn:/bin/bash
slrauenzahn:x:111:111:Sara L. Rauenzahn:/home/slrauenzahn:/bin/bash

Sara can still log in with her usual “slrauenzahn” username, but when I and others examine processes with “ps -ef”, we will see “slrauenz” alongside each of her processes and will recognize the processes as hers. I could have as easily called the added username “sara” or “sarar” if I thought it would make her easier to recognize. The processes that fetch the username from the /etc/passwd file will simply grab the first entry that matches the UID. In this case, that’s 111.

Unix and eight character usernames go back a long way, even further back than eight character filenames in DOS. What surprises me is that longer usernames can still present problems. With 2 TB files and pathnames that exceed 4000 characters, why are Unix systems today still plagued by problems when usernames exceed eight little characters?

The other “eight character” problem I run into from time to time involves a user trying to change his password. I’ll get a call from one of my users telling me that he can’t change his password. He tells me the system comes back with “Permission denied”. Almost every time, the user has a username that exceeds eight characters and I have to suggest that they enter their username after passwd command so that Unix will not be confused.

boson> passwd
passwd: Changing password for slrauenz
passwd: User unknown: slrauenz
Permission denied
boson> passwd slrauenzahn
Enter existing login password:

Unix systems have developed in magnificent ways. With outstanding file systems (like zfs!), impressive degrees of virtualization, zones and much improved systems administration tools, Unix has grown into an ever increasingly impressive operating system. There are just these odd little problems that still seem to plague even the best implementations of my very favorite OS. Sigh!

sandra_henrystocker
Unix Dweeb

Sandra Henry-Stocker has been administering Unix systems for more than 30 years. She describes herself as "USL" (Unix as a second language) but remembers enough English to write books and buy groceries. She lives in the mountains in Virginia where, when not working with or writing about Unix, she's chasing the bears away from her bird feeders.

The opinions expressed in this blog are those of Sandra Henry-Stocker and do not necessarily represent those of IDG Communications, Inc., its parent, subsidiary or affiliated companies.