我已经使用 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