freebsd-dev/lib/libpam/modules/pam_krb5/pam_krb5.8

218 lines
6.4 KiB
Groff
Raw Normal View History

.\"
.\" $Id: pam_krb5.5,v 1.5 2000/01/05 00:59:56 fcusack Exp $
.\" $FreeBSD$
2001-06-13 21:52:07 +00:00
.Dd January 15, 1999
2001-07-06 07:29:59 +00:00
.Dt PAM_KRB5 8
.Os
2001-06-13 21:52:07 +00:00
.Sh NAME
.Nm pam_krb5
.Nd Kerberos 5 PAM module
.Sh SYNOPSIS
.Pa /usr/lib/pam_krb5.so
.Sh DESCRIPTION
The Kerberos 5 service module for PAM, typically
2001-06-13 21:52:07 +00:00
.Pa /usr/lib/pam_krb5.so ,
provides functionality for three PAM categories:
authentication,
account management,
and password management.
It also provides null functions for session management.
The
2001-06-13 21:52:07 +00:00
.Pa pam_krb5.so
module is a shared object
that can be dynamically loaded to provide
the necessary functionality upon demand.
Its path is specified in the
2001-06-13 21:52:07 +00:00
PAM configuration file.
.Ss Kerberos 5 Authentication Module
The Kerberos 5 authentication component
2001-06-13 21:52:07 +00:00
provides functions to verify the identity of a user
.Pq Fn pam_sm_authenticate
and to set user specific credentials
2001-06-13 21:52:07 +00:00
.Pq Fn pam_sm_setcred .
.Fn pam_sm_authenticate
converts the supplied username into a Kerberos principal,
by appending the default local realm name.
It also supports usernames with explicit realm names.
If a realm name is supplied, then upon a successful return, it
changes the username by mapping the principal name into a local username
2001-06-13 21:52:07 +00:00
(calling
2001-07-06 07:29:59 +00:00
.Fn krb5_aname_to_localname ) .
2001-06-13 21:52:07 +00:00
This typically just means
the realm name is stripped.
2001-06-13 21:52:07 +00:00
.Pp
It prompts the user for a password and obtains a new Kerberos TGT for
2001-07-06 07:29:59 +00:00
the principal.
The TGT is verified by obtaining a service
ticket for the local host.
2001-06-13 21:52:07 +00:00
.Pp
When prompting for the current password, the authentication
2001-07-06 07:29:59 +00:00
module will use the prompt
.Dq Li "Password for <principal>:" .
2001-06-13 21:52:07 +00:00
.Pp
The
2001-06-13 21:52:07 +00:00
.Fn pam_sm_setcred
function stores the newly acquired credentials in a credentials cache,
and sets the environment variable
2001-06-13 21:52:07 +00:00
.Ev KRB5CCNAME
appropriately.
The credentials cache should be destroyed by the user at logout with
2001-06-13 21:52:07 +00:00
.Xr kdestroy 1 .
.Pp
The following options may be passed to the authentication module:
.Bl -tag -width ".Cm use_first_pass"
2001-07-06 07:29:59 +00:00
.It Cm debug
2001-06-13 21:52:07 +00:00
.Xr syslog 3
debugging information at
2001-06-13 21:52:07 +00:00
.Dv LOG_DEBUG
level.
2001-08-15 20:05:33 +00:00
.It Cm no_warn
suppress warning messages to the user.
These messages include
reasons why the user's
authentication attempt was declined.
2001-07-06 07:29:59 +00:00
.It Cm use_first_pass
If the authentication module is not the first in the stack,
and a previous module obtained the user's password, that password is
2001-07-06 07:29:59 +00:00
used to authenticate the user.
If this fails, the authentication
module returns failure without prompting the user for a password.
This option has no effect if the authentication module is
the first in the stack, or if no previous modules obtained the
user's password.
2001-07-06 07:29:59 +00:00
.It Cm try_first_pass
This option is similar to the
2001-07-06 07:29:59 +00:00
.Cm use_first_pass
option, except that if the previously obtained password fails, the
user is prompted for another password.
2001-07-06 07:29:59 +00:00
.It Cm forwardable
Obtain forwardable Kerberos credentials for the user.
2001-07-06 07:29:59 +00:00
.It Cm no_ccache
Do not save the obtained credentials in a credentials cache.
This is a
useful option if the authentication module is used for services such
2001-07-06 07:29:59 +00:00
as ftp or pop, where the user would not be able to destroy them.
[This
is not a recommendation to use the module for those services.]
2001-07-06 07:29:59 +00:00
.It Cm ccache Ns = Ns Ar name
Use
.Ar name
as the credentials cache.
.Ar name
must be in the form
.Ar type : Ns Ar residual .
The special tokens
2001-07-06 07:29:59 +00:00
.Ql %u ,
to designate the decimal UID of the user;
and
2001-07-06 07:29:59 +00:00
.Ql %p ,
to designate the current process ID; can be used in
.Ar name .
2001-06-13 21:52:07 +00:00
.El
.Ss Kerberos 5 Account Management Module
The Kerberos 5 account management component
provides a function to perform account management,
2001-06-13 21:52:07 +00:00
.Fn pam_sm_acct_mgmt .
The function verifies that the authenticated principal is allowed
to login to the local user account by calling
2001-06-13 21:52:07 +00:00
.Fn krb5_kuserok
2001-07-06 07:29:59 +00:00
(which checks the user's
.Pa .k5login
file).
2001-06-13 21:52:07 +00:00
.Ss Kerberos 5 Password Management Module
The Kerberos 5 password management component
provides a function to change passwords
2001-06-13 21:52:07 +00:00
.Pq Fn pam_sm_chauthtok .
The username supplied (the
user running the
2001-06-13 21:52:07 +00:00
.Xr passwd 1
command, or the username given as an argument) is mapped into
a Kerberos principal name, using the same technique as in
2001-07-06 07:29:59 +00:00
the authentication module.
Note that if a realm name was
explicitly supplied during authentication, but not during
a password change, the mapping
done by the password management module may not result in the
same principal as was used for authentication.
2001-06-13 21:52:07 +00:00
.Pp
Unlike when
2001-07-06 07:29:59 +00:00
changing a
.Ux
password, the password management module will
allow any user to change any principal's password (if the user knows
2001-07-06 07:29:59 +00:00
the principal's old password, of course).
Also unlike
.Ux ,
root
is always prompted for the principal's old password.
2001-06-13 21:52:07 +00:00
.Pp
The password management module uses the same heuristics as
2001-06-13 21:52:07 +00:00
.Xr kpasswd 1
to determine how to contact the Kerberos password server.
2001-06-13 21:52:07 +00:00
.Pp
The following options may be passed to the password management
module:
.Bl -tag -width ".Cm use_first_pass"
2001-07-06 07:29:59 +00:00
.It Cm debug
.Xr syslog 3
debugging information at
2001-06-13 21:52:07 +00:00
.Dv LOG_DEBUG
level.
2001-07-06 07:29:59 +00:00
.It Cm use_first_pass
If the password management module is not the first in the stack,
and a previous module obtained the user's old password, that password is
2001-07-06 07:29:59 +00:00
used to authenticate the user.
If this fails, the password
management
module returns failure without prompting the user for the old password.
If successful, the new password entered to the previous module is also
2001-07-06 07:29:59 +00:00
used as the new Kerberos password.
If the new password fails,
the password management module returns failure without
prompting the user for a new password.
2001-07-06 07:29:59 +00:00
.It Cm try_first_pass
This option is similar to the
2001-07-06 07:29:59 +00:00
.Cm use_first_pass
option, except that if the previously obtained old or new passwords fail,
the user is prompted for them.
2001-06-13 21:52:07 +00:00
.El
.Ss Kerberos 5 Session Management Module
The Kerberos 5 session management component
provides functions to initiate
2001-06-13 21:52:07 +00:00
.Pq Fn pam_sm_open_session
and terminate
2001-06-13 21:52:07 +00:00
.Pq Fn pam_sm_close_session
2001-07-06 07:29:59 +00:00
sessions.
Since session management is not defined under Kerberos 5,
both of these functions simply return success.
They are provided
only because of the naming conventions for PAM modules.
2001-06-13 21:52:07 +00:00
.Sh ENVIRONMENT
.Bl -tag -width "KRB5CCNAME"
.It Ev KRB5CCNAME
Location of the credentials cache.
2001-06-13 21:52:07 +00:00
.El
.Sh FILES
.Bl -tag -width ".Pa /tmp/krb5cc_ Ns Ar uid" -compact
2001-07-06 07:29:59 +00:00
.It Pa /tmp/krb5cc_ Ns Ar uid
default credentials cache
.Ar ( uid
is the decimal UID of the user).
2001-06-13 21:52:07 +00:00
.It Pa $HOME/.k5login
file containing Kerberos principals that are allowed access.
2001-06-13 21:52:07 +00:00
.El
.Sh SEE ALSO
.Xr kdestroy 1 ,
.Xr passwd 1 ,
.Xr syslog 3 ,
.Xr pam.conf 5 ,
2001-07-06 07:29:59 +00:00
.Xr pam 8
2001-06-13 21:52:07 +00:00
.Sh NOTES
Applications should not call
2001-06-13 21:52:07 +00:00
.Fn pam_authenticate
more than once between calls to
2001-06-13 21:52:07 +00:00
.Fn pam_start
and
2001-06-13 21:52:07 +00:00
.Fn pam_end
when using the Kerberos 5 PAM module.