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