ckuserID 子例程
用途
认证用户。
注: 此子例程已过时,提供此子例程是为了向后兼容。 请改为使用 authenticate 子例程。
库
安全性库 (libc.a)
语法
描述
ckuserID 子例程认证由 User 参数指定的帐户。 认证方式由 Mode 参数提供。 login 和 su 命令继续使用 ckuserID 子例程来处理 /etc/security/user auth1 和 auth2 认证方法。
ckuserID 子例程依赖于 authenticate 子例程来处理 /etc/security/user 文件中的 SYSTEM 属性。 如果认证成功,那么将调用 passwdexpired 子例程。
如果用户已通过认证,那么将向用户显示在调用 authenticate 子例程期间由语法或装入模块引起的错误。 如果用户认证失败,那么将使用 USER_Login 审计事件来审计这些错误。
参数
| 项 | 描述 |
|---|---|
| 用户 | 指定要认证的用户的名称。 |
| 方式 | 指定认证方式。 此参数是位掩码,可能包含以下一个或多个值,这些值在 login.h 文件中定义:
每个用户的主认证方法和辅助认证方法在/etc/security/user 文件,通过定义 auth1 和 auth2 属性。 如果没有为用户定义主方法,那么将采用 SYSTEM 属性。 如果未定义任何辅助方法,那么没有缺省值。 |
安全性
| 项 | 描述 |
|---|---|
| 访问的文件: |
| 方式 | 文件 |
|---|---|
| R | / etc / passwd |
| R | /etc/安全性/passwd |
| R | /etc/安全性/用户 |
| R | /etc/安全性/login.cfg |
返回值
如果帐户对指定的用法有效,那么 ckuserID 子例程将返回值 0。 否则,返回值为-1,并设置errno全局变量来指示错误。
错误代码
如果下列其中一个或多个为 true ,那么 ckuserID 子例程将失败:
| 项 | 描述 |
|---|---|
| ESAD | 用户的安全认证失败。 |
| EINVAL | Mode 参数既不是 S_PRIMARY ,也不是 S_SECONDARY ,或者 Mode 参数都是 S_PRIMARY 和 S_SECONDARY。 |