7

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?

MDMoore313
  • 5,616

2 Answers2

14

Answering the specific question (how do I tell if a uid is in use) ...

getent passwd 1234

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).

Paul Haldane
  • 4,612
2
cat /etc/passwd | awk -F: '{print $3}' | sort -n