The pam_krb5_keytab module attempts to obtain initial credentials through the system's Kerberos key table file. The initial credentials can subsequently be used to obtain credentials for itself on behalf of PAM_USER, through Services for User to Self (S4U2Self) by stacking pam_gss_s4u(5) after this module. In turn, these credentials can be used to obtain service tickets for other services on behalf of the user through Services for User to Proxy (S4U2Proxy).
The Kerberos key table set credential module provides the set credential function for pam_sm_setcred(). The credentials are set from an initial authentication using system's keys that were stored previously when the system had been previously provisioned for Kerberos.
The following options can be passed to the Kerberos set credential module:
Provides syslog(3C) debugging information at LOG_DEBUG level.
Turns off warning messages.
The Kerberos key table authentication module provides the authentication function for pam_sm_authenticate(). The function returns PAM_IGNORE.
The following error codes are returned for pam_sm_setcred ():
The system's key table file does not exist or the system's principal was not found in the key table file.
Successfully initialized credentials for the system's principal.
The system's principal was not found in the Kerberos database.
The following is an excerpt of a sample /etc/pam.d/cron file:
auth definitive pam_user_policy.so.1 auth required pam_dhkeys.so.1 auth required pam_unix_auth.so.1 auth required pam_unix_cred.so.1 auth requisite pam_krb5_keytab.so.1 auth optional pam_gss_s4u.so.1
Given that set credentials uses the same stack as authenticate, the above will provision Kerberos credentials through the successful authentication of the keys found in the system's key table file via pam_krb5_keytab (5) . Subsequently, these credentials will be used to obtain S4U credentials for PAM_USER.
See attributes(5) for a description of the following attribute:
kinit(1) , libpam (3LIB), pam (3PAM), pam_sm(3PAM), pam_sm_setcred(3PAM) , pam_sm_authenticate(3PAM), syslog(3C), krb5.conf(4), pam.conf(4), attributes(5), kerberos(5), krb5envvar(5), pam_krb5(5), pam_gss_s4u(5)