NAME
pam_unix − authentication, account, session, and password management PAM modules for UNIX
SYNOPSIS
/usr/lib/security/pam_unix.so.1
DESCRIPTION
The UNIX service module for PAM, /usr/lib/security/pam_unix.so.1, provides functionality for all four PAM modules: authentication, account management, session management and password management. The pam_unix.so.1 module is a shared object that can be dynamically loaded to provide the necessary functionality upon demand. Its path is specified in the PAM configuration file.
UNIX
Authentication Module
The UNIX authentication component provides functions to
verify the identity of a user,
(pam_sm_authenticate()) and to set user specific
credentials (pam_sm_setcred()).
pam_sm_authenticate() compares the user entered
password with the password from the UNIX password database.
If the passwords match, the user is authenticated. If the
user also has secure RPC credentials and the secure
RPC password is the same as the UNIX password, then
the secure RPC credentials are also obtained.
The following options may be passed to the UNIX service module:
debug |
syslog(3C) debugging information at LOG_DEBUG level. |
nowarn
Turn off warning messages.
use_first_pass
It compares the password in the password database with the user’s initial password (entered when the user authenticated to the first authentication module in the stack). If the passwords do not match, or if no password has been entered, it quits and does not prompt the user for a password. This option should only be used if the authentication service is designated as optional in the pam.conf configuration file.
try_first_pass
It compares the password in the password database with the user’s initial password (entered when the user authenticated to the first authentication module in the stack). If the passwords do not match, or if no password has been entered, prompt the user for a password. When prompting for the current password, the UNIX authentication module will use the prompt, "password:" unless one of the following scenarios occur:
1. |
The option try_first_pass is specified and the password entered for the first module in the stack fails for the UNIX module. | ||
2. |
The option try_first_pass is not specified, and the earlier authentication modules listed in the pam.conf file have prompted the user for the password. |
In these two cases, the UNIX authentication module will use the prompt "SYSTEM password:". The pam_sm_setcred() function sets user specific credentials. If the user had secure RPC credentials, but the secure RPC password was not the same as the UNIX password, then a warning message is printed. If the user wants to get secure RPC credentials, then keylogin(1) needs to be run.
UNIX Account
Management Module
The UNIX account management component provides a function to
perform account management, pam_sm_acct_mgmt(). The
function retrieves the user’s password entry from the
UNIX password database and verifies that the user’s
account and password have not expired. The following options
may be passed in to the UNIX service module:
debug |
syslog(3C) debugging information at LOG_DEBUG level. |
nowarn
Turn off warning messages.
UNIX Session
Management Module
The UNIX session management component provides functions to
initiate pam_sm_open_session() and terminate
pam_sm_close_session() UNIX sessions. For UNIX,
pam_open_session updates the /var/adm/lastlog
file. The account management module reads this file to
determine the previous time the user logged in. The
following options may be passed in to the UNIX service
module:
debug |
syslog(3C) debugging information at LOG_DEBUG level. |
nowarn
Turn off warning messages. pam_close_session is a null function.
UNIX
Password Management Module
The UNIX password management component provides a function
to change passwords pam_sm_chauthtok() in the UNIX
password database. This module must be required in
pam.conf. It cannot be optional or
sufficient. The following options may be passed in to
the UNIX service module:
debug |
syslog(3C) Debugging information at LOG_DEBUG level. |
nowarn
Turn off warning messages.
use_first_pass
It compares the password in the password database with the user’s old password (entered to the first password module in the stack). If the passwords do not match, or if no password has been entered, it quits and does not prompt the user for the old password. It also attempts to use the new password (entered to the first password module in the stack) as the new password for this module. If the new password fails, it quits and does not prompt the user for a new password.
try_first_pass
It compares the password in the password database with the user’s old password (entered to the first password module in the stack). If the passwords do not match, or if no password has been entered, it prompts the user for the old password. It also attempts to use the new password (entered to the first password module in the stack) as the new password for this module. If the new password fails, it prompts the user for a new password. If the user’s password has expired, the UNIX account module saves this information in the authentication handle using pam_set_data(), with a unique name, SUNW_UNIX_AUTHOK_DATA. The UNIX password module retrieves this information from the authentication handle using pam_get_data() to determine whether or not to force the user to update the user’s password.
ATTRIBUTES
See attributes(5) for description of the following attributes:
SEE ALSO
keylogin(1), pam(3PAM), pam_authenticate(3PAM), pam_setcred(3PAM), syslog(3C), libpam(3LIB), pam.conf(4), attributes(5), pam_authtok_check(5), pam_authtok_get(5), pam_authtok_store(5), pam_dhkeys(5), pam_passwd_auth(5), pam_unix_account(5), pam_unix_auth(5), pam_unix_session(5)
NOTES
The interfaces in libpam(3LIB) are MT-Safe only if each thread within the multi-threaded application uses its own PAM handle.
The pam_unix(5) module might not be supported in a future release. Similar functionality is provided by pam_authtok_check(5), pam_authtok_get(5), pam_authtok_store(5), pam_dhkeys(5), pam_passwd_auth(5), pam_unix_account(5), pam_unix_auth(5), and pam_unix_session(5).