I have added a new user in Ubuntu using puppet with a hard coded uid of 10017. The uids must be the same across workstations so that when user data is restored everything lines up.
Now I find out that uid is not unique. Mysql is using it. How can I test a server to find out if a uid (10018) exists?
Answering the specific question (how do I tell if a uid is in use) ...
Will exit with 0 if uid is in use and 2 if not. As Mark says it will also output any matching entries. When using within a shell script I'd expect to discard the output and just test the exit code.
Note that using
getent
has the advantage of any techniques that look at/etc/passwd
directly because it will also consult any other data sources you have configured (NIS, LDAP etc).