Lines Matching defs:pam
82 /* functions to read and store the pam.conf configuration file */
151 * pam_settrace - setup configuration for pam tracing
169 * PAM_DEBUG_CONF (0x0008), log pam.conf parsing.
1017 /* read initial entries from pam.conf */
1212 * Go back to not having read /etc/pam.conf
1856 /* add this fd to the pam handle */
1906 * Routines to read the pam.conf configuration file
1910 * open_pam_conf - open the pam.conf config file
1974 * close_pam_conf - close pam.conf
1986 * read_pam_conf - read in each entry in pam.conf and store info
1987 * under the pam handle.
2132 * get_pam_conf_entry - get a pam.conf entry
2136 get_pam_conf_entry(struct pam_fh *pam_fh, pam_handle_t *pamh, pamtab_t **pam)
2146 /* get the next line from pam.conf */
2148 /* no more lines in pam.conf ==> return */
2150 *pam = NULL;
2154 if ((*pam = calloc(1, sizeof (pamtab_t))) == NULL) {
2166 "pam.conf[%s] entry:\t%s", pam_trace_cname(pamh), current_line);
2171 "illegal pam.conf[%s] entry: %s: missing SERVICE NAME",
2175 if (((*pam)->pam_service = strdup(arg)) == 0) {
2183 "illegal pam.conf[%s] entry: %s: missing MODULE TYPE",
2185 (*pam)->pam_type = -1; /* 0 is a valid value */
2189 (*pam)->pam_type = PAM_AUTH_MODULE;
2191 (*pam)->pam_type = PAM_ACCOUNT_MODULE;
2193 (*pam)->pam_type = PAM_SESSION_MODULE;
2195 (*pam)->pam_type = PAM_PASSWORD_MODULE;
2199 "illegal pam.conf[%s] entry: %s: invalid module "
2201 (*pam)->pam_type = -1; /* 0 is a valid value */
2205 /* get pam flag (e.g., requisite, required, sufficient, optional) */
2208 "illegal pam.conf[%s] entry: %s: missing CONTROL FLAG",
2213 (*pam)->pam_flag = PAM_BINDING;
2215 (*pam)->pam_flag = PAM_INCLUDE;
2217 (*pam)->pam_flag = PAM_OPTIONAL;
2219 (*pam)->pam_flag = PAM_REQUIRED;
2221 (*pam)->pam_flag = PAM_REQUISITE;
2223 (*pam)->pam_flag = PAM_SUFFICIENT;
2227 "illegal pam.conf[%s] entry: %s",
2237 "illegal pam.conf[%s] entry: %s: missing MODULE PATH",
2250 if (((*pam)->module_path = malloc(len)) == NULL) {
2254 if ((*pam)->pam_flag & PAM_INCLUDE) {
2255 (void) snprintf((*pam)->module_path, len, "%s%s",
2258 (void) snprintf((*pam)->module_path, len, "%s%s%s",
2272 if (((*pam)->module_path = malloc(len)) == NULL) {
2279 (void) snprintf((*pam)->module_path, len, "%s%s%s",
2281 } else if (((*pam)->module_path = strdup(arg)) == 0) {
2300 if (((*pam)->module_argv =
2308 (*pam)->module_argv[i] = strdup(arg);
2309 if ((*pam)->module_argv[i] == NULL) {
2315 (*pam)->module_argv[argc] = NULL;
2317 (*pam)->module_argc = argc;
2320 (*pam)->pam_err = err; /* was the line truncated */
2327 if (*pam)
2328 free_pamconf(*pam);
2444 "nextline[%d:%s]: pam.conf line too long %.256s",
2457 "nextline[%d:%s]: pam.conf line too long %.256s",
2480 verify_pam_conf(pamtab_t *pam, char *service)
2482 return ((pam->pam_service == (char *)NULL) ||
2483 ((strcasecmp(pam->pam_service, service) == 0) &&
2484 ((pam->pam_type == -1) ||
2485 (pam->pam_flag == 0) ||
2486 (pam->pam_err != PAM_SUCCESS) ||
2487 (pam->module_path == (char *)NULL))));
2495 * clean_up - free allocated storage in the pam handle
2533 * free_pamconf - free memory used to store pam.conf entry
2560 * free_pam_conf_info - free memory used to store all pam.conf info
2561 * under the pam handle
2688 * The UNIX pam modules always calls __pam_get_authtok() and
2771 * retrieves a password of at most PASS_MAX length from the pam
2781 * PAM_AUTHTOK - password is taken from pam handle (PAM_AUTHTOK)
2782 * PAM_OLDAUTHTOK - password is taken from pam handle (PAM_OLDAUTHTOK)
2788 * to store it in the pam handle.
2789 * PAM_AUTHTOK: Prompt for new passwd, store in pam handle as
2791 * PAM_OLDAUTHTOK: Prompt for new passwd, store in pam handle as
2813 /* get password from pam handle item list */
2841 * Prompt for new password and save in pam handle item list