我如何确定 uid 是否存在?

我如何确定 uid 是否存在?

我已经使用 puppet 在 Ubuntu 中添加了一个新用户,其硬编码 uid 为 10017。各个工作站的 uid 必须相同,以便在恢复用户数据时所有内容都对齐。

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

答案1

回答具体问题 (如何判断 uid 是否正在使用)...

getent passwd 1234

如果 uid 正在使用,则退出时返回 0,否则返回 2。正如 Mark 所说,它还会输出任何匹配的条目。在 shell 脚本中使用时,我希望丢弃输出并仅测试退出代码。

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

答案2

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

相关内容