== A (surprising) missing Unix tool program Every so often, I run across surprising omissions in the Unix toolchest of small utilities and the like. Today's is a program to print some or all of the various passwd fields for a user, by extended analogy to _id_ (which will print user and group information in useful ways); you would use it to extract data like the shell or the home directory for a particular account. (Perhaps I should instead call this a lack in the 'GNU Unix toolchest', since everyone else seems to have more or less frozen their idea of what 'Unix' and its toolchest is and so would probably argue that the Unix toolchest has exactly what it's supposed to have and is not missing anything. [[I disagree UnixFossilizationBad]].) The traditional answer to this is to use _awk_ or _cut_ on /etc/passwd to extract what you want. The problem with this is that it has been a very long time indeed since /etc/passwd was sure to have information for all logins on the system. If you are using YP/NIS, LDAP, or any number of other sources of account information, what you want is simply not there in /etc/passwd. On a modern Unix machine, you thus really do want and need something that calls _getpwnam()_ and reports back the requested bits. (In the process I think it should regularize the information a bit; the classic case would be to report a blank shell field as a shell of _/bin/sh_. This saves other programs from having to deal with both cases and getting it wrong sooner or later.) I know that I could easily write this in Perl or Python (and with slightly more work and masochism, in C). That's not the point; I don't just want a program to do this, I want a utility that's generally present on machines (and that will not be yet another local piece of magic for my coworkers to learn). In the absence of such a tool, I just use _awk_ and _cut_, since that's the 'standard' answer and it still works on our machines.