ckuserID 子例程

用途

认证用户。

注: 此子例程已过时,提供此子例程是为了向后兼容。 请改为使用 authenticate 子例程。

安全性库 (libc.a)

语法

#include <login.h>
int ckuserID ( User Mode)
int Mode;
char *User;

描述

ckuserID 子例程认证由 User 参数指定的帐户。 认证方式由 Mode 参数提供。 loginsu 命令继续使用 ckuserID 子例程来处理 /etc/security/user auth1auth2 认证方法。

ckuserID 子例程依赖于 authenticate 子例程来处理 /etc/security/user 文件中的 SYSTEM 属性。 如果认证成功,那么将调用 passwdexpired 子例程。

如果用户已通过认证,那么将向用户显示在调用 authenticate 子例程期间由语法或装入模块引起的错误。 如果用户认证失败,那么将使用 USER_Login 审计事件来审计这些错误。

参数

描述
用户 指定要认证的用户的名称。
方式 指定认证方式。 此参数是位掩码,可能包含以下一个或多个值,这些值在 login.h 文件中定义:
S_PRIMARY
将检查为 User 参数定义的主认证方法。 必须通过所有主认证检查。
S_SECONDARY
将检查为 User 参数定义的辅助认证方法。 辅助认证检查不需要成功。

每个用户的主认证方法和辅助认证方法在/etc/security/user 文件,通过定义 auth1auth2 属性。 如果没有为用户定义主方法,那么将采用 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