pam_sm_open_session 子例程

用途

特定于 PAM 模块的 pam_open_session实现。

PAM 库 (libpam.a)

语法

#include <security/pam_appl.h>
#include <security/pam_modules.h>

int pam_sm_open_session (PAMHandle, Flags, Argc, Argv)
pam_handle_t *PAMHandle;
int Flags;
int Argc;
const char **Argv;

描述

当应用程序调用 pam_open_session ()时, PAM Framework 会针对会话模块堆栈中的每个模块调用 pam_sm_open_sessionpam_sm_open_session 模块接口为已认证的 PAM 用户启动新的用户会话。 应通过 pam_sm_close_session ()来清除打开会话所使用的所有特定于会话的信息和内存。

参数

描述
PAMhandle 表示当前用户认证会话的 PAM 句柄。 此句柄通过调用 pam_start ()获取。
标志 这些标志用于设置 pam_acct_mgmt 选项。 识别的标志为:
  • PAM_SILENT
    • 不应显示任何消息。
参数 定义的模块选项数。
参数 模块选项。 这些选项与模块相关。 接收无效选项的任何模块都应忽略这些选项。

返回值

成功完成后, pam_sm_open_session 将返回 PAM_SUCCESS。 如果例程失败,那么将根据实际错误返回其他错误。

错误代码

描述
pam_session_err 为新会话创建或除去条目时发生错误。
pam_user_unknown 用户未知。
PAM_OPEN_ERR 无法装入其中一个 PAM 认证模块。
PAM_SYMBOL-err 必需项不可用于 PAM 模块。
pam_service_err 在 PAM 模块中发生错误。
PAM_SYSTEM_ERR 发生系统错误。
PAM_BUF_ERR 发生内存错误。
PAM_CONV_ERR 发生对话错误。
pam_perm_denied 用户拒绝了访问许可权。