5.1. 提供的功能
5.1.1. 基于文本的对话功能
#include <security/pam_misc.h>
int misc_conv(
num_msg,
msgm,
response,
appdata_ptr);
int num_msg;
const struct pam_message **msgm;
struct pam_response **response;
void *appdata_ptr;
5.1.1.1. DESCRIPTION
misc_conv
函数是 libpam_misc 的一部分,而不是标准 libpam 库的一部分。该功能将提示用户适当的 Comments,并按照身份验证模块的指示获取适当的 Importing。
除了简单地插入适当的 pam_conv(3)外,此函数还提供了一些超时功能。该函数导出五个变量,应用程序程序员可以使用这些变量来限制此对话函数 await 用户键入内容所花费的时间。这五个变量如下:
-
time_t
pam_misc_conv_warn_time
;- 该变量包含* time (由 time(2)返回),应首先警告用户时钟正在滴答。默认情况下,其值为 0,表示不会发出此类警告。该应用程序可以将其值设置为将来的某个时间,但这应该在将控制权传递给 Linux-PAM *库之前完成。
-
const char *
pam_misc_conv_warn_line
;- 与
pam_misc_conv_warn_time
结合使用,此变量是指向字符串的指针,当需要警告用户超时即将到来时,将显示该字符串。它的默认值是“ ...时间用完了...”的翻译版本,但是可以在将控制权传递给* Linux-PAM *之前由应用程序进行更改。
- 与
-
time_t
pam_misc_conv_die_time
;- 此变量包含将超时的* time (由 time(2)返回)。默认情况下,它的值为 0,表示对话功能不会超时。该应用程序可以将其值设置为将来的某个时间,但这应该在将控制权传递给 Linux-PAM *库之前完成。
-
const char *
pam_misc_conv_die_line
;- 与
pam_misc_conv_die_time
结合使用,此变量是指向对话超时时将显示的字符串的指针。它的默认值是“ ...抱歉,您的时间到了!”的翻译版本,但是可以在将控制权传递给* Linux-PAM *之前由应用程序进行更改。
- 与
-
int
pam_misc_conv_died
;- 从* Linux-PAM *库返回后,此变量的值指示对话是否超时。值 1 表示发生超时。
以下两个功能指针可用于支持对话功能中的二进制提示。它们已针对 libpamc 库的当前版本进行了优化,并且会随时更改。
-
int
(*pam_binary_handler_fn)
(void *appdata
,pamc_bp_t *prompt_p
);- 该函数指针被初始化为 NULL,但可以用提供机器(机器)(隐藏)消息交换的函数来填充。它旨在与隐藏的身份验证协议(例如 RSA 或 Diffie-Hellman 密钥交换)一起使用。 (这仍在开发中.)
-
int
(*pam_binary_handler_free)
(void *appdata
,pamc_bp_t *delete_me
);- 该函数指针被初始化为
PAM_BP_RENEW(delete_me, 0, 0)
,但可以根据应用程序的需要进行重新定义。
- 该函数指针被初始化为
5.1.2. 将环境复制到 PAM 的环境
#include <security/pam_misc.h>
int pam_misc_paste_env(
pamh,
user);
pam_handle_t *pamh;
const char * const *user;
5.1.2.1. DESCRIPTION
此函数获取提供的环境指针列表,并将其内容“上载”到 PAM 环境。 PAM_SUCCESS 表示成功。
5.1.3. 解放本地保存的环境
#include <security/pam_misc.h>
int pam_misc_drop_env(
env);
char **env;
5.1.3.1. DESCRIPTION
定义此函数是对 pam_getenvlist(3)函数的补充。它将与* env
关联的内存,与 0 的 overwrite * * free()
释放之前的所有内存释放。
5.1.4. BSD 之类的 PAM 环境变量设置
#include <security/pam_misc.h>
int pam_misc_setenv(
pamh,
name,
value,
readonly);
pam_handle_t *pamh;
const char *name;
const char *value;
int readonly;
5.1.4.1. DESCRIPTION
该函数执行与 pam_putenv(3)等效的任务,但是其语法更像是 BSD 样式函数。 setenv()
。 * name
和 value
与'='串联以形成 name = value 并传递给pam_putenv()
。但是,如果已经设置了 PAM 变量,则仅当最后一个参数 readonly
*为零时才应用替换。