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_session 。 pam_sm_open_session 模块接口为已认证的 PAM 用户启动新的用户会话。 应通过 pam_sm_close_session ()来清除打开会话所使用的所有特定于会话的信息和内存。
参数
| 项 | 描述 |
|---|---|
| PAMhandle | 表示当前用户认证会话的 PAM 句柄。 此句柄通过调用 pam_start ()获取。 |
| 标志 | 这些标志用于设置 pam_acct_mgmt 选项。 识别的标志为:
|
| 参数 | 定义的模块选项数。 |
| 参数 | 模块选项。 这些选项与模块相关。 接收无效选项的任何模块都应忽略这些选项。 |
返回值
成功完成后, 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 | 用户拒绝了访问许可权。 |