是否有一种通用的方法来判断用户名在类 Unix 系统上是否有效?

是否有一种通用的方法来判断用户名在类 Unix 系统上是否有效?

我正在寻找一种跨平台的方法来确定用户名和组名是否有效。平台包括 Linux、Solaris、Aix 和 HPUX。无论用户/组是在本地定义(例如 /etc/passwd)还是通过 LDAP 或 NIS/YP 等服务定义,它都需要工作。这种方法的存在可能只是一厢情愿的想法,但问一问也没什么坏处。谢谢!

附加信息:不幸的是,我无法控制运行此程序的系统;脚本将发送给客户,他们可以做任何他们想做的事情。而且我自己没有办法测试这一切……

答案1

“getent passwd | grep” 难道没有任何帮助吗?

答案2

命令行

id <username>

答案3

如果不了解平面文件,我通常使用命令idfinger。如果您已将系统配置为在系统范围内使用 LDAP 或 NIS/YP,则任何命令行实用程序都应具有此功能。

最终,为了确保解决方案万无一失,您可能必须在脚本中写入更复杂的逻辑。这很好地说明了 IT 部门为何经常试图防止过多的技术差异。

相关内容