7.1.1.3. PAM Usage Example

#include <security/pam_appl.h>
#include <security/pam_misc.h>

static struct pam_conv conv = { misc_conv, NULL };

int main(int argc, char *argv[])
{
  pam_handle_t *pamh = NULL;
  char *user;
  int retval;

  // ...

  retval = pam_start ("check_user", user, &conv, &pamh);
  if (retval == PAM_SUCCESS)
    retval = pam_authenticate (pamh, 0);	// Is user really himself ?
  if (retval == PAM_SUCCESS)
    retval = pam_acct_mgmt (pamh, 0);		// Is user account valid ?
  if (retval == PAM_SUCCESS)

  // ...

  pam_end (pamh, retval);
}