![是否有一种通用的方法来判断用户名在类 Unix 系统上是否有效?](https://linux22.com/image/527914/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E7%A7%8D%E9%80%9A%E7%94%A8%E7%9A%84%E6%96%B9%E6%B3%95%E6%9D%A5%E5%88%A4%E6%96%AD%E7%94%A8%E6%88%B7%E5%90%8D%E5%9C%A8%E7%B1%BB%20Unix%20%E7%B3%BB%E7%BB%9F%E4%B8%8A%E6%98%AF%E5%90%A6%E6%9C%89%E6%95%88%EF%BC%9F.png)
我正在寻找一种跨平台的方法来确定用户名和组名是否有效。平台包括 Linux、Solaris、Aix 和 HPUX。无论用户/组是在本地定义(例如 /etc/passwd)还是通过 LDAP 或 NIS/YP 等服务定义,它都需要工作。这种方法的存在可能只是一厢情愿的想法,但问一问也没什么坏处。谢谢!
附加信息:不幸的是,我无法控制运行此程序的系统;脚本将发送给客户,他们可以做任何他们想做的事情。而且我自己没有办法测试这一切……
答案1
“getent passwd | grep” 难道没有任何帮助吗?
答案2
从命令行:
id <username>
答案3
如果不了解平面文件,我通常使用命令id
或finger
。如果您已将系统配置为在系统范围内使用 LDAP 或 NIS/YP,则任何命令行实用程序都应具有此功能。
最终,为了确保解决方案万无一失,您可能必须在脚本中写入更复杂的逻辑。这很好地说明了 IT 部门为何经常试图防止过多的技术差异。