To be correctly initialized, PAM_SM_ACCOUNT
must be
#define
'd prior to including <security/pam_modules.h>
.
This will ensure that the prototype for a static module is properly
declared.
PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int
argc, const char **argv);
This function performs the task of establishing whether the user is permitted to gain access at this time. It should be understood that the user has previously been validated by an authentication module. This function checks for other things. Such things might be: the time of day or the date, the terminal line, remote hostname, etc. .
This function may also determine things like the expiration on passwords, and respond that the user change it before continuing.
Valid flags, which may be logically OR'd with PAM_SILENT
, are the
same as those applicable to the flags
argument of
pam_sm_authenticate
.
This function may return one of the following errors,
PAM_ACCT_EXPIRED
The user is no longer permitted access to the system.
PAM_AUTH_ERR
There was an authentication error.
PAM_AUTHTOKEN_REQD
The user's authentication token has expired. Before calling
this function again the application will arrange for a new one to be
given. This will likely result in a call to pam_sm_chauthtok()
.
PAM_USER_UNKNOWN
The user is not known to the module's account management component.