我怎么知道一个uid是否存在?

我在Ubuntu上使用了一个硬编码的uid为10017的puppet添加了一个新用户。在工作站中,uid必须是相同的,这样当用户数据恢复时,所有内容都会排成一行。

现在我发现,uid不是唯一的。 Mysql正在使用它。 如何testing服务器以查明uid(10018)是否存在?

回答具体的问题(如何判断一个uid是否在使用中)

 getent passwd 1234 

如果uid正在使用,将会退出0,否则退出2。 正如马克所说,它也会输出任何匹配的条目。 在shell脚本中使用时,我希望放弃输出,只testing退出代码。

请注意,使用getent具有任何直接查看/etc/passwd技术的优点,因为它还会查阅您已configuration的任何其他数据源(NIS,LDAP等)。

 cat /etc/passwd | awk -F: '{print $3}' | sort -n