有没有一种通用的方式来告诉用户名是否在一个类Unix系统上有效?

我正在寻找一种跨平台的方式来确定用户名和组名是否有效。 这些平台是Linux,Solaris,Aix和HPUX。 无论用户/组是本地定义的(如/ etc / passwd),还是通过LDAP或NIS / YP这样的服务,都需要工作。 这种方法可能是一厢情愿的想法,但是不能太伤心。 谢谢!

附加信息:不幸的是,我不控制这个系统运行。 脚本正在发送给客户,他们可以做任何他们想要的。 而我自己也没办法testing这个…

“getent passwd | grep”不能让你在任何地方?

从命令行 :

 id <username> 

如果没有分割平面文件,我通常使用命令idfinger 。 如果将系统configuration为在系统范围内使用LDAP或NIS / YP,则任何命令行实用程序都应共享此function。

最终,为了让您的解决scheme无懈可击,您可能必须在脚本中写入更复杂的逻辑。 这是IT部门经常试图阻止太多技术差异的一个很好的例子。