ckuseracct 子例程

用途

检查用户帐户的有效性。

安全性库 (libc.a)

语法

#include <login.h>
int ckuseracct ( Name Mode TTY)
char *Name;
int Mode;
char *TTY;

描述

注: 此子例程已过时,仅为向后兼容性而提供。 使用 login起到限制作用 子例程,它执行 ckuseracct 子例程函数的超集。

ckuseracct 子例程检查由 Name 参数指定的用户帐户的有效性。 Mode 参数提供帐户使用方式, TTY 参数定义用于访问的终端。 ckuseracct 子例程检查以下条件:

  • 帐户存在
  • 帐户到期

Mode 参数指定其他特定于方式的检查。

参数

描述
名称 指定要验证其帐户的用户的登录名。
方式 指定使用方式。 下面列出了 login.h 文件中定义的有效值。 Mode 参数必须是下列其中一项或 0:
S_LOGIN
验证此帐户是否允许本地登录。
S_SU
验证是否允许使用 su 命令,以及当前进程是否具有可调用 su 命令以切换到帐户的组标识。
S_DAEMON
验证帐户是否可用于使用 srccron 子系统调用守护程序或批处理程序。
S_RLOGIN
使用 rlogindtelnetd 程序验证帐户可用于远程登录。
TTY 指定发端活动的终端。 如果此参数是空指针或空字符串,那么不会执行 TTY 源检查。

安全性

描述
访问的文件:  
方式 文件
R /etc/passwd
R /etc/安全性/用户

返回值

如果帐户对指定的用法有效,那么 ckuseracct 子例程将返回值 0。 否则,返回值为-1并将errno全局变量设置为相应的错误代码。

错误代码

如果下列其中一个或多个为 true ,那么 ckuseracct 子例程将失败:

描述
ENOENT Name 参数中指定的用户没有帐户。
ESTALE 用户的帐户已到期。
EACCES 指定的终端无权访问指定的帐户。
EACCES Mode 参数为 S_SU,并且不允许当前进程使用 su 命令来访问指定的用户。
EACCES 在指定的 方式中不允许访问帐户。
EINVAL Mode 参数不是 S_LOGINS_SUS_DAEMONS_RLOGIN之一。