The pam_deny(8) module is one of the simplest modules
available; it responds to any request with
PAM_AUTH_ERR
. It is useful for quickly
disabling a service (add it to the top of every chain), or for
terminating chains of sufficient
modules.
The pam_echo(8) module simply passes its arguments to
the conversation function as a
PAM_TEXT_INFO
message. It is mostly useful
for debugging, but can also serve to display messages such as
“Unauthorized access will be prosecuted” before
starting the authentication procedure.
The pam_exec(8) module takes its first argument to be the name of a program to execute, and the remaining arguments are passed to that program as command-line arguments. One possible application is to use it to run a program at login time which mounts the user's home directory.
The pam_ftpusers(8) module
The pam_group(8) module accepts or rejects applicants
on the basis of their membership in a particular file group
(normally wheel
for su(1)). It is
primarily intended for maintaining the traditional behaviour
of BSD su(1), but has many other uses, such as excluding
certain groups of users from a particular service.
The pam_guest(8) module allows guest logins using fixed login names. Various requirements can be placed on the password, but the default behaviour is to allow any password as long as the login name is that of a guest account. The pam_guest(8) module can easily be used to implement anonymous FTP logins.
The pam_krb5(8) module
The pam_ksu(8) module
The pam_lastlog(8) module
The pam_login_access(8) module provides an implementation of the account management primitive which enforces the login restrictions specified in the login.access(5) table.
The pam_nologin(8) module refuses non-root logins
when /var/run/nologin
exists. This file
is normally created by shutdown(8) when less than five
minutes remain until the scheduled shutdown time.
The pam_opie(8) module implements the opie(4) authentication method. The opie(4) system is a challenge-response mechanism where the response to each challenge is a direct function of the challenge and a passphrase, so the response can be easily computed “just in time” by anyone possessing the passphrase, eliminating the need for password lists. Moreover, since opie(4) never reuses a challenge that has been correctly answered, it is not vulnerable to replay attacks.
The pam_opieaccess(8) module is a companion module to pam_opie(8). Its purpose is to enforce the restrictions codified in opieaccess(5), which regulate the conditions under which a user who would normally authenticate herself using opie(4) is allowed to use alternate methods. This is most often used to prohibit the use of password authentication from untrusted hosts.
In order to be effective, the pam_opieaccess(8)
module must be listed as requisite
immediately after a sufficient
entry for
pam_opie(8), and before any other modules, in the
auth
chain.
The pam_passwdqc(8) module
The pam_permit(8) module is one of the simplest
modules available; it responds to any request with
PAM_SUCCESS
. It is useful as a placeholder
for services where one or more chains would otherwise be
empty.
The pam_radius(8) module
The pam_rhosts(8) module
The pam_rootok(8) module reports success if and only
if the real user id of the process calling it (which is
assumed to be run by the applicant) is 0. This is useful for
non-networked services such as su(1) or passwd(1),
to which the root
should have automatic
access.
The pam_securetty(8) module
The pam_self(8) module reports success if and only if the names of the applicant matches that of the target account. It is most useful for non-networked services such as su(1), where the identity of the applicant can be easily verified.
The pam_ssh(8) module provides both authentication
and session services. The authentication service allows users
who have passphrase-protected SSH secret keys in their
~/.ssh
directory to authenticate
themselves by typing their passphrase. The session service
starts ssh-agent(1) and preloads it with the keys that
were decrypted in the authentication phase. This feature is
particularly useful for local logins, whether in X (using
xdm(1) or another PAM-aware X login manager) or at the
console.
The pam_tacplus(8) module
The pam_unix(8) module implements traditional UNIX® password authentication, using getpwnam(3) to obtain the target account's password and compare it with the one provided by the applicant. It also provides account management services (enforcing account and password expiration times) and password-changing services. This is probably the single most useful module, as the great majority of admins will want to maintain historical behaviour for at least some services.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <[email protected]>.
Send questions about this document to <[email protected]>.