749169
From 2319336ac1f52e56d2549bd83ff40a3e7b2f281a Mon Sep 17 00:00:00 2001
749169
From: Robbie Harwood <rharwood@redhat.com>
749169
Date: Mon, 15 Oct 2018 13:20:30 -0400
749169
Subject: [PATCH] Modernize kerberos(7)
749169
749169
Update environment variable descriptions, using env_variables.rst as a
749169
guide.  Replace the content in env_variables.rst with a pointer to
749169
documentation at kerberos(7) so that we don't break external links and
749169
don't duplicate content.
749169
749169
Replace references to rlogin.  Clarify and modernize other language.
749169
749169
ticket: 8755
749169
(cherry picked from commit cdccdefa2d74d3abf5a8ae126e423af9d467d34f)
749169
---
749169
 doc/admin/env_variables.rst       |  44 +------------
749169
 doc/user/user_config/kerberos.rst | 106 ++++++++++++++++++------------
749169
 src/man/kerberos.man              | 104 +++++++++++++++++------------
749169
 3 files changed, 128 insertions(+), 126 deletions(-)
749169
749169
diff --git a/doc/admin/env_variables.rst b/doc/admin/env_variables.rst
749169
index 0c146d3e3..a2d15bea8 100644
749169
--- a/doc/admin/env_variables.rst
749169
+++ b/doc/admin/env_variables.rst
749169
@@ -1,46 +1,4 @@
749169
 Environment variables
749169
 =====================
749169
 
749169
-The following environment variables can be used during runtime:
749169
-
749169
-**KRB5_CONFIG**
749169
-    Main Kerberos configuration file.  Multiple filenames can be
749169
-    specified, separated by a colon; all files which are present will
749169
-    be read.  (See :ref:`mitK5defaults` for the default path.)
749169
-
749169
-**KRB5_KDC_PROFILE**
749169
-    KDC configuration file.  (See :ref:`mitK5defaults` for the default
749169
-    name.)
749169
-
749169
-**KRB5_KTNAME**
749169
-    Default keytab file name.  (See :ref:`mitK5defaults` for the
749169
-    default name.)
749169
-
749169
-**KRB5_CLIENT_KTNAME**
749169
-    Default client keytab file name.  (See :ref:`mitK5defaults` for
749169
-    the default name.)
749169
-
749169
-**KRB5CCNAME**
749169
-    Default name for the credentials cache file, in the form *type*\:\
749169
-    *residual*.  The type of the default cache may determine the
749169
-    availability of a cache collection.  For instance, a default cache
749169
-    of type ``DIR`` causes caches within the directory to be present
749169
-    in the global cache collection.
749169
-
749169
-**KRB5RCACHETYPE**
749169
-    Default replay cache type.  Defaults to ``dfl``.  A value of
749169
-    ``none`` disables the replay cache.
749169
-
749169
-**KRB5RCACHEDIR**
749169
-    Default replay cache directory.  (See :ref:`mitK5defaults` for the
749169
-    default location.)
749169
-
749169
-**KPROP_PORT**
749169
-    :ref:`kprop(8)` port to use.  Defaults to 754.
749169
-
749169
-**KRB5_TRACE**
749169
-    Filename for trace-logging output (introduced in release 1.9).
749169
-    For example, ``env KRB5_TRACE=/dev/stdout kinit`` would send
749169
-    tracing information for kinit to ``/dev/stdout``.  Some programs
749169
-    may ignore this variable (particularly setuid or login system
749169
-    programs).
749169
+This content has moved to :ref:`kerberos(7)`.
749169
diff --git a/doc/user/user_config/kerberos.rst b/doc/user/user_config/kerberos.rst
749169
index 6c4453b3b..56412f099 100644
749169
--- a/doc/user/user_config/kerberos.rst
749169
+++ b/doc/user/user_config/kerberos.rst
749169
@@ -8,12 +8,12 @@ DESCRIPTION
749169
 
749169
 The Kerberos system authenticates individual users in a network
749169
 environment.  After authenticating yourself to Kerberos, you can use
749169
-Kerberos-enabled programs without having to present passwords.
749169
+Kerberos-enabled programs without having to present passwords or
749169
+certificates to those programs.
749169
 
749169
-If you enter your username and :ref:`kinit(1)` responds with this
749169
-message:
749169
+If you receive the following response from :ref:`kinit(1)`:
749169
 
749169
-kinit(v5): Client not found in Kerberos database while getting initial
749169
+kinit: Client not found in Kerberos database while getting initial
749169
 credentials
749169
 
749169
 you haven't been registered as a Kerberos user.  See your system
749169
@@ -25,10 +25,13 @@ is the **instance**, which in the case of a user is usually null.
749169
 Some users may have privileged instances, however, such as ``root`` or
749169
 ``admin``.  In the case of a service, the instance is the fully
749169
 qualified name of the machine on which it runs; i.e. there can be an
749169
-rlogin service running on the machine ABC, which is different from the
749169
-rlogin service running on the machine XYZ.  The third part of a
749169
-Kerberos name is the **realm**.  The realm corresponds to the Kerberos
749169
-service providing authentication for the principal.
749169
+ssh service running on the machine ABC (ssh/ABC@REALM), which is
749169
+different from the ssh service running on the machine XYZ
749169
+(ssh/XYZ@REALM).  The third part of a Kerberos name is the **realm**.
749169
+The realm corresponds to the Kerberos service providing authentication
749169
+for the principal.  Realms are conventionally all-uppercase, and often
749169
+match the end of hostnames in the realm (for instance, host01.example.com
749169
+might be in realm EXAMPLE.COM).
749169
 
749169
 When writing a Kerberos name, the principal name is separated from the
749169
 instance (if not null) by a slash, and the realm (if not the local
749169
@@ -43,64 +46,72 @@ of valid Kerberos names::
749169
 When you authenticate yourself with Kerberos you get an initial
749169
 Kerberos **ticket**.  (A Kerberos ticket is an encrypted protocol
749169
 message that provides authentication.)  Kerberos uses this ticket for
749169
-network utilities such as rlogin and rcp.  The ticket transactions are
749169
-done transparently, so you don't have to worry about their management.
749169
+network utilities such as ssh.  The ticket transactions are done
749169
+transparently, so you don't have to worry about their management.
749169
 
749169
-Note, however, that tickets expire.  Privileged tickets, such as those
749169
-with the instance ``root``, expire in a few minutes, while tickets
749169
-that carry more ordinary privileges may be good for several hours or a
749169
-day, depending on the installation's policy.  If your login session
749169
-extends beyond the time limit, you will have to re-authenticate
749169
-yourself to Kerberos to get new tickets.  Use the :ref:`kinit(1)`
749169
-command to re-authenticate yourself.
749169
+Note, however, that tickets expire.  Administrators may configure more
749169
+privileged tickets, such as those with service or instance of ``root``
749169
+or ``admin``, to expire in a few minutes, while tickets that carry
749169
+more ordinary privileges may be good for several hours or a day.  If
749169
+your login session extends beyond the time limit, you will have to
749169
+re-authenticate yourself to Kerberos to get new tickets using the
749169
+:ref:`kinit(1)` command.
749169
 
749169
-If you use the kinit command to get your tickets, make sure you use
749169
-the kdestroy command to destroy your tickets before you end your login
749169
-session.  You should put the kdestroy command in your ``.logout`` file
749169
-so that your tickets will be destroyed automatically when you logout.
749169
-For more information about the kinit and kdestroy commands, see the
749169
-:ref:`kinit(1)` and :ref:`kdestroy(1)` manual pages.
749169
+Some tickets are **renewable** beyond their initial lifetime.  This
749169
+means that ``kinit -R`` can extend their lifetime without requiring
749169
+you to re-authenticate.
749169
+
749169
+If you wish to delete your local tickets, use the :ref:`kdestroy(1)`
749169
+command.
749169
 
749169
 Kerberos tickets can be forwarded.  In order to forward tickets, you
749169
 must request **forwardable** tickets when you kinit.  Once you have
749169
 forwardable tickets, most Kerberos programs have a command line option
749169
-to forward them to the remote host.
749169
+to forward them to the remote host.  This can be useful for, e.g.,
749169
+running kinit on your local machine and then sshing into another to do
749169
+work.  Note that this should not be done on untrusted machines since
749169
+they will then have your tickets.
749169
 
749169
 ENVIRONMENT VARIABLES
749169
 ---------------------
749169
 
749169
 Several environment variables affect the operation of Kerberos-enabled
749169
-programs.  These inclide:
749169
+programs.  These include:
749169
 
749169
 **KRB5CCNAME**
749169
-    Specifies the location of the credential cache, in the form
749169
-    *TYPE*:*residual*.  If no *type* prefix is present, the **FILE**
749169
-    type is assumed and *residual* is the pathname of the cache file.
749169
-    A collection of multiple caches may be used by specifying the
749169
-    **dir** type and the pathname of a private directory (which must
749169
-    already exist).  The default cache file is /tmp/krb5cc_*uid*,
749169
-    where *uid* is the decimal user ID of the user.
749169
+    Default name for the credentials cache file, in the form
749169
+    *TYPE*:*residual*.  The type of the default cache may determine
749169
+    the availability of a cache collection.  ``FILE`` is not a
749169
+    collection type; ``KEYRING``, ``DIR``, and ``KCM`` are.
749169
+
749169
+    If not set, the value of **default_ccache_name** from
749169
+    configuration files (see **KRB5_CONFIG**) will be used.  If that
749169
+    is also not set, the default *type* is ``FILE``, and the
749169
+    *residual* is the path /tmp/krb5cc_*uid*, where *uid* is the
749169
+    decimal user ID of the user.
749169
 
749169
 **KRB5_KTNAME**
749169
-    Specifies the location of the keytab file, in the form
749169
+    Specifies the location of the default keytab file, in the form
749169
     *TYPE*:*residual*.  If no *type* is present, the **FILE** type is
749169
-    assumed and *residual* is the pathname of the keytab file.  The
749169
-    default keytab file is ``/etc/krb5.keytab``.
749169
+    assumed and *residual* is the pathname of the keytab file.  If
749169
+    unset, |keytab| will be used.
749169
 
749169
 **KRB5_CONFIG**
749169
     Specifies the location of the Kerberos configuration file.  The
749169
-    default is ``/etc/krb5.conf``.
749169
+    default is |sysconfdir|\ ``/krb5.conf``.  Multiple filenames can
749169
+    be specified, separated by a colon; all files which are present
749169
+    will be read.
749169
 
749169
 **KRB5_KDC_PROFILE**
749169
     Specifies the location of the KDC configuration file, which
749169
     contains additional configuration directives for the Key
749169
     Distribution Center daemon and associated programs.  The default
749169
-    is ``/usr/local/var/krb5kdc/kdc.conf``.
749169
+    is |kdcdir|\ ``/kdc.conf``.
749169
 
749169
 **KRB5RCACHETYPE**
749169
     Specifies the default type of replay cache to use for servers.
749169
-    Valid types include **dfl** for the normal file type and **none**
749169
-    for no replay cache.
749169
+    Valid types include ``dfl`` for the normal file type and ``none``
749169
+    for no replay cache.  The default is ``dfl``.
749169
 
749169
 **KRB5RCACHEDIR**
749169
     Specifies the default directory for replay caches used by servers.
749169
@@ -110,7 +121,17 @@ programs.  These inclide:
749169
 **KRB5_TRACE**
749169
     Specifies a filename to write trace log output to.  Trace logs can
749169
     help illuminate decisions made internally by the Kerberos
749169
-    libraries.  The default is not to write trace log output anywhere.
749169
+    libraries.  For example, ``env KRB5_TRACE=/dev/stderr kinit``
749169
+    would send tracing information for :ref:`kinit(1)` to
749169
+    ``/dev/stderr``.  The default is not to write trace log output
749169
+    anywhere.
749169
+
749169
+**KRB5_CLIENT_KTNAME**
749169
+    Default client keytab file name.  If unset, |ckeytab| will be
749169
+    used).
749169
+
749169
+**KPROP_PORT**
749169
+    :ref:`kprop(8)` port to use.  Defaults to 754.
749169
 
749169
 Most environment variables are disabled for certain programs, such as
749169
 login system programs and setuid programs, which are designed to be
749169
@@ -133,6 +154,7 @@ AUTHORS
749169
 | Steve Miller, MIT Project Athena/Digital Equipment Corporation
749169
 | Clifford Neuman, MIT Project Athena
749169
 | Greg Hudson, MIT Kerberos Consortium
749169
+| Robbie Harwood, Red Hat, Inc.
749169
 
749169
 HISTORY
749169
 -------
749169
@@ -144,5 +166,5 @@ by the MIT Kerberos Consortium.
749169
 RESTRICTIONS
749169
 ------------
749169
 
749169
-Copyright 1985, 1986, 1989-1996, 2002, 2011 Masachusetts Institute of
749169
-Technology
749169
+Copyright 1985, 1986, 1989-1996, 2002, 2011, 2018 Masachusetts
749169
+Institute of Technology
749169
diff --git a/src/man/kerberos.man b/src/man/kerberos.man
749169
index 7b2b5d932..026f4604a 100644
749169
--- a/src/man/kerberos.man
749169
+++ b/src/man/kerberos.man
749169
@@ -34,12 +34,12 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
749169
 .sp
749169
 The Kerberos system authenticates individual users in a network
749169
 environment.  After authenticating yourself to Kerberos, you can use
749169
-Kerberos\-enabled programs without having to present passwords.
749169
+Kerberos\-enabled programs without having to present passwords or
749169
+certificates to those programs.
749169
 .sp
749169
-If you enter your username and kinit(1) responds with this
749169
-message:
749169
+If you receive the following response from kinit(1):
749169
 .sp
749169
-kinit(v5): Client not found in Kerberos database while getting initial
749169
+kinit: Client not found in Kerberos database while getting initial
749169
 credentials
749169
 .sp
749169
 you haven\(aqt been registered as a Kerberos user.  See your system
749169
@@ -51,10 +51,13 @@ is the \fBinstance\fP, which in the case of a user is usually null.
749169
 Some users may have privileged instances, however, such as \fBroot\fP or
749169
 \fBadmin\fP\&.  In the case of a service, the instance is the fully
749169
 qualified name of the machine on which it runs; i.e. there can be an
749169
-rlogin service running on the machine ABC, which is different from the
749169
-rlogin service running on the machine XYZ.  The third part of a
749169
-Kerberos name is the \fBrealm\fP\&.  The realm corresponds to the Kerberos
749169
-service providing authentication for the principal.
749169
+ssh service running on the machine ABC (\fI\%ssh/ABC@REALM\fP), which is
749169
+different from the ssh service running on the machine XYZ
749169
+(\fI\%ssh/XYZ@REALM\fP).  The third part of a Kerberos name is the \fBrealm\fP\&.
749169
+The realm corresponds to the Kerberos service providing authentication
749169
+for the principal.  Realms are conventionally all\-uppercase, and often
749169
+match the end of hostnames in the realm (for instance, host01.example.com
749169
+might be in realm EXAMPLE.COM).
749169
 .sp
749169
 When writing a Kerberos name, the principal name is separated from the
749169
 instance (if not null) by a slash, and the realm (if not the local
749169
@@ -77,63 +80,71 @@ cbrown/root@FUBAR.ORG
749169
 When you authenticate yourself with Kerberos you get an initial
749169
 Kerberos \fBticket\fP\&.  (A Kerberos ticket is an encrypted protocol
749169
 message that provides authentication.)  Kerberos uses this ticket for
749169
-network utilities such as rlogin and rcp.  The ticket transactions are
749169
-done transparently, so you don\(aqt have to worry about their management.
749169
+network utilities such as ssh.  The ticket transactions are done
749169
+transparently, so you don\(aqt have to worry about their management.
749169
 .sp
749169
-Note, however, that tickets expire.  Privileged tickets, such as those
749169
-with the instance \fBroot\fP, expire in a few minutes, while tickets
749169
-that carry more ordinary privileges may be good for several hours or a
749169
-day, depending on the installation\(aqs policy.  If your login session
749169
-extends beyond the time limit, you will have to re\-authenticate
749169
-yourself to Kerberos to get new tickets.  Use the kinit(1)
749169
-command to re\-authenticate yourself.
749169
+Note, however, that tickets expire.  Administrators may configure more
749169
+privileged tickets, such as those with service or instance of \fBroot\fP
749169
+or \fBadmin\fP, to expire in a few minutes, while tickets that carry
749169
+more ordinary privileges may be good for several hours or a day.  If
749169
+your login session extends beyond the time limit, you will have to
749169
+re\-authenticate yourself to Kerberos to get new tickets using the
749169
+kinit(1) command.
749169
 .sp
749169
-If you use the kinit command to get your tickets, make sure you use
749169
-the kdestroy command to destroy your tickets before you end your login
749169
-session.  You should put the kdestroy command in your \fB\&.logout\fP file
749169
-so that your tickets will be destroyed automatically when you logout.
749169
-For more information about the kinit and kdestroy commands, see the
749169
-kinit(1) and kdestroy(1) manual pages.
749169
+Some tickets are \fBrenewable\fP beyond their initial lifetime.  This
749169
+means that \fBkinit \-R\fP can extend their lifetime without requiring
749169
+you to re\-authenticate.
749169
+.sp
749169
+If you wish to delete your local tickets, use the kdestroy(1)
749169
+command.
749169
 .sp
749169
 Kerberos tickets can be forwarded.  In order to forward tickets, you
749169
 must request \fBforwardable\fP tickets when you kinit.  Once you have
749169
 forwardable tickets, most Kerberos programs have a command line option
749169
-to forward them to the remote host.
749169
+to forward them to the remote host.  This can be useful for, e.g.,
749169
+running kinit on your local machine and then sshing into another to do
749169
+work.  Note that this should not be done on untrusted machines since
749169
+they will then have your tickets.
749169
 .SH ENVIRONMENT VARIABLES
749169
 .sp
749169
 Several environment variables affect the operation of Kerberos\-enabled
749169
-programs.  These inclide:
749169
+programs.  These include:
749169
 .INDENT 0.0
749169
 .TP
749169
 \fBKRB5CCNAME\fP
749169
-Specifies the location of the credential cache, in the form
749169
-\fITYPE\fP:\fIresidual\fP\&.  If no \fItype\fP prefix is present, the \fBFILE\fP
749169
-type is assumed and \fIresidual\fP is the pathname of the cache file.
749169
-A collection of multiple caches may be used by specifying the
749169
-\fBdir\fP type and the pathname of a private directory (which must
749169
-already exist).  The default cache file is /tmp/krb5cc_*uid*,
749169
-where \fIuid\fP is the decimal user ID of the user.
749169
+Default name for the credentials cache file, in the form
749169
+\fITYPE\fP:\fIresidual\fP\&.  The type of the default cache may determine
749169
+the availability of a cache collection.  \fBFILE\fP is not a
749169
+collection type; \fBKEYRING\fP, \fBDIR\fP, and \fBKCM\fP are.
749169
+.sp
749169
+If not set, the value of \fBdefault_ccache_name\fP from
749169
+configuration files (see \fBKRB5_CONFIG\fP) will be used.  If that
749169
+is also not set, the default \fItype\fP is \fBFILE\fP, and the
749169
+\fIresidual\fP is the path /tmp/krb5cc_*uid*, where \fIuid\fP is the
749169
+decimal user ID of the user.
749169
 .TP
749169
 \fBKRB5_KTNAME\fP
749169
-Specifies the location of the keytab file, in the form
749169
+Specifies the location of the default keytab file, in the form
749169
 \fITYPE\fP:\fIresidual\fP\&.  If no \fItype\fP is present, the \fBFILE\fP type is
749169
-assumed and \fIresidual\fP is the pathname of the keytab file.  The
749169
-default keytab file is \fB/etc/krb5.keytab\fP\&.
749169
+assumed and \fIresidual\fP is the pathname of the keytab file.  If
749169
+unset, \fB@KTNAME@\fP will be used.
749169
 .TP
749169
 \fBKRB5_CONFIG\fP
749169
 Specifies the location of the Kerberos configuration file.  The
749169
-default is \fB/etc/krb5.conf\fP\&.
749169
+default is \fB@SYSCONFDIR@\fP\fB/krb5.conf\fP\&.  Multiple filenames can
749169
+be specified, separated by a colon; all files which are present
749169
+will be read.
749169
 .TP
749169
 \fBKRB5_KDC_PROFILE\fP
749169
 Specifies the location of the KDC configuration file, which
749169
 contains additional configuration directives for the Key
749169
 Distribution Center daemon and associated programs.  The default
749169
-is \fB/usr/local/var/krb5kdc/kdc.conf\fP\&.
749169
+is \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/kdc.conf\fP\&.
749169
 .TP
749169
 \fBKRB5RCACHETYPE\fP
749169
 Specifies the default type of replay cache to use for servers.
749169
 Valid types include \fBdfl\fP for the normal file type and \fBnone\fP
749169
-for no replay cache.
749169
+for no replay cache.  The default is \fBdfl\fP\&.
749169
 .TP
749169
 \fBKRB5RCACHEDIR\fP
749169
 Specifies the default directory for replay caches used by servers.
749169
@@ -143,7 +154,17 @@ or \fB/var/tmp\fP if \fBTMPDIR\fP is not set.
749169
 \fBKRB5_TRACE\fP
749169
 Specifies a filename to write trace log output to.  Trace logs can
749169
 help illuminate decisions made internally by the Kerberos
749169
-libraries.  The default is not to write trace log output anywhere.
749169
+libraries.  For example, \fBenv KRB5_TRACE=/dev/stderr kinit\fP
749169
+would send tracing information for kinit(1) to
749169
+\fB/dev/stderr\fP\&.  The default is not to write trace log output
749169
+anywhere.
749169
+.TP
749169
+\fBKRB5_CLIENT_KTNAME\fP
749169
+Default client keytab file name.  If unset, \fB@CKTNAME@\fP will be
749169
+used).
749169
+.TP
749169
+\fBKPROP_PORT\fP
749169
+kprop(8) port to use.  Defaults to 754.
749169
 .UNINDENT
749169
 .sp
749169
 Most environment variables are disabled for certain programs, such as
749169
@@ -161,6 +182,7 @@ kadmind(8), kdb5_util(8), krb5kdc(8)
749169
 Steve Miller, MIT Project Athena/Digital Equipment Corporation
749169
 Clifford Neuman, MIT Project Athena
749169
 Greg Hudson, MIT Kerberos Consortium
749169
+Robbie Harwood, Red Hat, Inc.
749169
 .fi
749169
 .sp
749169
 .SH HISTORY
749169
@@ -170,8 +192,8 @@ contributions from many outside parties.  It is currently maintained
749169
 by the MIT Kerberos Consortium.
749169
 .SH RESTRICTIONS
749169
 .sp
749169
-Copyright 1985, 1986, 1989\-1996, 2002, 2011 Masachusetts Institute of
749169
-Technology
749169
+Copyright 1985, 1986, 1989\-1996, 2002, 2011, 2018 Masachusetts
749169
+Institute of Technology
749169
 .SH AUTHOR
749169
 MIT
749169
 .SH COPYRIGHT