【问题标题】:Validate the user name in Unix/Solaris在 Unix/Solaris 中验证用户名
【发布时间】:2012-04-19 01:44:39
【问题描述】:

是否有任何 C API 用于验证用户名?

我正在输入当时可能不存在的用户名。 由于用户名需要遵循 POSIX 规则,是否有任何 C API 可以进行验证?

【问题讨论】:

标签: c linux unix solaris


【解决方案1】:

我假设您正在尝试确定您正在运行的系统上是否存在用户名。为此,您正在寻找 getwpent()/getpwnam() -- 查看手册页了解详细信息。

尽管这些返回的信息比您想要的多,getpwnam() 也会(轻松)告诉您是否存在与给定用户名对应的密码文件条目。

(如果您只是想确保用户名仅包含有效字符,请确保它仅包含 [A-Za-z0-9_]+

【讨论】:

  • 用户名应该不是纯数字;至少,如果用户名看起来像一个数字,您可能会感到困惑(如果 UID 与名称不是同一个数字,那么您可能会感到困惑——是的,您可以这样做;不,您不应该这样做!)。跨度>
  • 是的,这是真的。我想正确的正则表达式是 [A-Za-z_][A-Za-z_0-9]*
猜你喜欢
  • 2012-10-15
  • 2013-03-27
  • 2014-07-17
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
相关资源
最近更新 更多