#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
;
misc_conv
함수는 표준 libpam이 아니라
libpam_misc에 포함돼 있다.
인증 모듈들의 지시에 따라 적절한 문구로 사용자에게 요청해서
적절한 입력 값을 얻는다.
pam_conv(3)에 딱 맞는 적당한 대화 함수라는 점에 더해서 약간의 타임아웃 동작도 제공한다. 다섯 개 변수가 노출돼 있으며, 응용 프로그래머가 이를 이용해서 대화 함수에서 사용자의 입력을 기다릴 시간의 양을 제한할 수 있다. 다섯 개 변수는 다음과 같다.
pam_misc_conv_warn_time
;이 변수는 시간이 흐르고 있다고 사용자에게 처음 경고할 (time(2)이 반환하는) 시간을 담는다. 기본값은 0이며, 이는 그런 경고를 주지 않겠다는 뜻이다. 응용에서 이 값을 미래의 어떤 시간으로 설정할 수 있는데, 단 Linux-PAM 라이브러리로 제어를 넘기기 전에 설정해야 한다.
pam_misc_conv_warn_line
;
pam_misc_conv_warn_time
과 함께
쓰는 변수로, 타임아웃이 다가오고 있다고 사용자에게 경고할
시간이 됐을 때 표시할 문자열에 대한 포인터다. 기본값은
"...Time is running out..."을
번역한 문자열이며, 응용에서 Linux-PAM으로
제어를 넘기기 전에 바꿀 수 있다.
pam_misc_conv_die_time
;이 변수는 타임아웃이 일어날 (time(2)이 반환하는) 시간을 담는다. 기본값은 0이며, 이는 대화 함수에 타임아웃이 없다는 뜻이다. 응용에서 이 값을 미래의 어떤 시간으로 설정할 수 있는데, 단 Linux-PAM 라이브러리로 제어를 넘기기 전에 설정해야 한다.
pam_misc_conv_die_line
;
pam_misc_conv_die_time
과 함께
쓰는 변수로, 대화 시간이 끝났을 때 표시할 문자열에 대한
포인터다. 기본값은
"...Sorry, your time is up!"을
번역한 문자열이며, 응용에서 Linux-PAM으로
제어를 넘기기 전에 바꿀 수 있다.
pam_misc_conv_died
;Linux-PAM 라이브러리에서 반환한 후에 이 변수 값이 대화 타임아웃 여부를 나타낸다. 1 값이 타임아웃이 일어났음을 나타낸다.
대화 함수에서 이진 프롬프트를 지원하는 데 다음 두 함수 포인터를 이용할 수 있다. libpamc 현재 버전에 최적화돼 있으며 바뀔 수 있다.
(*pam_binary_handler_fn)
(void *appdata
, pamc_bp_t *prompt_p
);
이 함수 포인터는 NULL로 초기화되어 있으며 머신 간 (숨겨진) 메시지 교환 동작을 제공하는 함수로 채울 수 있다. RSA나 디피헬만 키 교환 같은 숨겨진 인증 프로토콜에 쓰기 위한 것이다. (아직 개발 진행 중이다.)
(*pam_binary_handler_free)
(void *appdata
, pamc_bp_t *delete_me
);
이 함수 포인터는 PAM_BP_RENEW(delete_me, 0, 0)
로
초기화되어 있으며 응용에서 원하는 대로 재정의할 수 있다.
#include <security/pam_misc.h>
int pam_misc_paste_env( | pamh, | |
user) ; |
pam_handle_t *pamh
;const char * const *user
;#include <security/pam_misc.h>
int pam_misc_drop_env( | env) ; |
char **env
;#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
;