3.3. 계정 관리

3.3.1. 계정 관리를 위한 서비스 함수

#include <security/pam_modules.h>
int pam_sm_acct_mgmt(pamh,  
 flags,  
 argc,  
 argv); 
pam_handle_t *pamh;
int flags;
int argc;
const char **argv;
 

3.3.1.1. 설명

pam_sm_acct_mgmt 함수는 pam_acct_mgmt(3) 인터페이스에 대한 서비스 모듈의 구현이다.

이 함수는 사용자가 현재 접근이 허용되는지 여부를 결정하는 작업을 수행한다. 사용자를 검증하는 건 앞서 인증 모듈에서 이뤄졌다고 상정한다. 이 함수에선 다른 것들을 확인하는데, 예컨데 현재 시간이나 날짜, 터미널 번호, 원격 호스트 이름 등이다. 또한 이 함수에서 패스워드 만료 같은 걸 확인해서 사용자가 패스워드를 바꾼 후 진행하도록 응답할 수도 있다.

유효한 플래그는 다음과 같으며, PAM_SILENT와 논리 OR 되어 있을 수 있다.

PAM_SILENT

어떤 메시지도 찍지 않기.

PAM_DISALLOW_NULL_AUTHTOK

이 인증 메커니즘을 위한 인증 토큰 데이터베이스에 사용자 항목이 NULL이면 PAM_AUTH_ERR를 반환한다.

3.3.1.2. 반환 값

PAM_ACCT_EXPIRED

사용자 계정이 만료되었음.

PAM_AUTH_ERR

인증 실패.

PAM_NEW_AUTHTOK_REQD

사용자 인증 토큰이 만료되었음. 먼저 응용에서 새 인증 토큰을 준비한 다음 이 함수를 다시 호출하게 될 텐데, 그러기 위해 pam_sm_chauthtok()을 호출하게 될 것이다.

PAM_PERM_DENIED

권한 거부됨.

PAM_SUCCESS

인증 토큰이 성공적으로 갱신되었다.

PAM_USER_UNKNOWN

패스워드 서비스에서 알지 못하는 사용자다.