summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc1572.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc1572.txt')
-rw-r--r--doc/rfc/rfc1572.txt395
1 files changed, 395 insertions, 0 deletions
diff --git a/doc/rfc/rfc1572.txt b/doc/rfc/rfc1572.txt
new file mode 100644
index 0000000..f6442eb
--- /dev/null
+++ b/doc/rfc/rfc1572.txt
@@ -0,0 +1,395 @@
+
+
+
+
+
+
+Network Working Group S. Alexander, Editor
+Request for Comments: 1572 Lachman Technology, Inc.
+Category: Standards Track January 1994
+
+
+ Telnet Environment Option
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Abstract
+
+ This document specifies a mechanism for passing environment
+ information between a telnet client and server. Use of this
+ mechanism enables a telnet user to propagate configuration
+ information to a remote host when connecting.
+
+ This document corrects some errors in [1].
+
+1. Command Names and Codes
+
+ NEW-ENVIRON 39
+ IS 0
+ SEND 1
+ INFO 2
+
+ VAR 0
+ VALUE 1
+ ESC 2
+ USERVAR 3
+
+2. Command Meanings
+
+ IAC WILL NEW-ENVIRON
+
+ The sender of this command is willing to send environment
+ variables.
+
+ IAC WONT NEW-ENVIRON
+
+ The sender of this command refuses to send environment variables.
+
+
+
+
+
+Telnet Working Group [Page 1]
+
+RFC 1572 Telnet Environment Option January 1994
+
+
+ IAC DO NEW-ENVIRON
+
+ The sender of this command is willing to receive environment
+ variables.
+
+ IAC DONT NEW-ENVIRON
+
+ The sender of this command refuses to accept environment
+ variables.
+
+ IAC SB NEW-ENVIRON SEND [ type ... [ type ... [ ... ] ] ] IAC SE
+
+ The sender of this command requests that the remote side send its
+ environment variables. The "type" may be either VAR or USERVAR,
+ to indicate either well known or user variable names. Only the
+ side that is DO NEW-ENVIRON may initiate a SEND command. If a
+ list of variables is specified, then only those variables should
+ be sent. If no list is specified, then the default environment,
+ of both well known and user defined variables, should be sent. If
+ one of the variables has no name, then all the variables of that
+ type (well known or user defined) in the default environment
+ should be sent.
+
+ IAC SB NEW-ENVIRON IS type ... [ VALUE ... ] [ type ... [ VALUE ... ]
+ [ ... ] ] IAC SE
+
+ The sender of this command is sending environment variables. This
+ command is sent in response to a SEND request. Only the side that
+ is WILL NEW-ENVIRON may send an IS command. The "type"/VALUE
+ pairs must be returned in the same order as the SEND request
+ specified them, and there must be a response for each "type ..."
+ explicitly requested. The "type" will be VAR or USERVAR.
+ Multiple environment variables may be sent. The characters
+ following a "type" up to the next "type" or VALUE specify the
+ variable name. The characters following a VALUE up to the next
+ "type" specify the value of the variable. If a "type" is not
+ followed by a VALUE (e.g., by another VAR, USERVAR, or IAC SE)
+ then that variable is undefined. If a VALUE is immediately
+ followed by a "type" or IAC, then the variable is defined, but has
+ no value. If an IAC is contained between the IS and the IAC SE,
+ it must be sent as IAC IAC. If a variable or a value contains a
+ VAR, it must be sent as ESC VAR. If a variable or a value
+ contains a USERVAR, it must be sent as ESC USERVAR. If a variable
+ or a value contains a VALUE, it must be sent as ESC VALUE. If a
+ variable or a value contains an ESC, it must be sent as ESC ESC.
+
+
+
+
+
+
+Telnet Working Group [Page 2]
+
+RFC 1572 Telnet Environment Option January 1994
+
+
+ IAC SB NEW-ENVIRON INFO type ... [ VALUE ... ] [ type ... [ VALUE ...
+ ] [ ... ] ] IAC SE
+
+ The sender of this command is sending information about
+ environment variables that have changed. It is identical to the
+ IS command, except that the command is INFO instead of IS. Only
+ the side that is WILL NEW-ENVIRON may send an INFO command. The
+ INFO command is not to be used to send initial information; the
+ SEND/IS sequence is to be used for that. The INFO command is to
+ be used to propagate changes in environment variables, and may be
+ spontaneously generated.
+
+3. Default Specification
+
+ The default specification for this option is
+
+ WONT NEW-ENVIRON
+ DONT NEW-ENVIRON
+
+ meaning there will not be any exchange of environment information.
+
+4. Motivation
+
+ Many operating systems have startup information and environment
+ variables that contain information that should be propagated to
+ remote machines when Telnet connections are established. Rather than
+ create a new Telnet option each time someone comes up with some new
+ information that they need propagated through a Telnet session, but
+ that the Telnet session itself doesn't really need to know about,
+ this generic information option can be used.
+
+5. Well Known Variables
+
+ USER This variable is used to transmit the user or account
+ name that the client wishes to log into on the remote
+ system. The format of the value the USER variable is
+ system dependent, as determined by the remote system.
+
+ JOB This variable is used to transmit the job ID that the
+ client wishes to use when logging into the remote system.
+ The format of the value the JOB variable is system
+ dependent, as determined by the remote system.
+
+ ACCT This variable is used to transmit the account ID that the
+ client wishes to use when logging into the remote system.
+ The format of the value the ACCT variable is system
+ dependent, as determined by the remote system.
+
+
+
+
+Telnet Working Group [Page 3]
+
+RFC 1572 Telnet Environment Option January 1994
+
+
+ PRINTER This variable is used to identify the default location
+ for printer output. Because there does not currently
+ exist a standard way of naming a printer on a network,
+ the format of this variable is currently undefined.
+
+ SYSTEMTYPE This is used to transmit the type of operating system on
+ the system that sends this variable. It value is
+ identical to the value of the SYSTEM (SYST) command in
+ FTP [4]. The format of the value shall have as its first
+ word one of the system names listed in the current
+ version of the Assigned Numbers document [5].
+
+ DISPLAY This variable is used to transmit the X display location
+ of the client. The format for the value of the DISPLAY
+ variable is:
+
+ <host>:<dispnum>[.<screennum>]
+
+ This information is identical to the information passed
+ using the Telnet X-DISPLAY-LOCATION option. If both the
+ DISPLAY environment variable, and the X-DISPLAY-LOCATION
+ option [6] are received, and they contain conflicting
+ information, the most recently received information
+ received should be used.
+
+ Because it is impossible to anticipate all variables that users may
+ wish to exchange, the USERVAR type is provided to allow users to
+ transmit arbitrary variable/value pairs. The use of an additional
+ type allows implementations to distinguish between values derived by
+ the remote host software and values supplied by the user. Paranoid
+ implementations will most likely treat both types with an equal level
+ of distrust. The results of a name-space collision between a well-
+ known and a user variable are implementation specific.
+
+6. Implementation Rules
+
+ WILL and DO are used only at the beginning of the connection to
+ obtain and grant permission for future negotiations.
+
+ Once the two hosts have exchanged a WILL and a DO, the sender of the
+ DO NEW-ENVIRON is free to request that environment variables be sent.
+ Only the sender of the DO may send requests (IAC SB NEW-ENVIRON SEND
+ IAC SE) and only the sender of the WILL may transmit actual
+ environment information (via the IAC SB NEW-ENVIRON IS ... IAC SE
+ command). Though this option may be used at any time throughout the
+ life of the telnet connection, the exchange of environment
+ information will usually happen at the startup of the connection.
+ This is because many operating systems only have mechanisms for
+
+
+
+Telnet Working Group [Page 4]
+
+RFC 1572 Telnet Environment Option January 1994
+
+
+ propagating environment information at process creation, so the
+ information is needed before the user logs in.
+
+ The receiving host is not required to put all variables that it
+ receives into the environment. For example, if the client should
+ send across USERVAR "TERM" VALUE "xterm" as an environment variable,
+ and the TERMINAL-TYPE [3] option has already been used to determine
+ the terminal type, the server may safely ignore the TERM variable.
+ Also, some startup information may be used in other ways; for
+ example, the values for "USER", "ACCT" and "PROJ" values might be
+ used to decide which account to log into, and might never be put into
+ the users environment. In general, if the server has already
+ determined the value of an environment variable by some more accurate
+ means, or if it does not understand a variable name, it may ignore
+ the value sent in the NEW-ENVIRON option. The server may also prefer
+ to just put all unknown information into the users environment. This
+ is the suggested method of implementation, because it allows the user
+ the most flexibility.
+
+ The following is an example of use of the option:
+
+ Host1 Host2
+ IAC DO NEW-ENVIRON
+ IAC WILL NEW-ENVIRON
+ [ Host1 is now free to request environment information ]
+ IAC SB NEW-ENVIRON SEND VAR
+ "USER" VAR "ACCT" VAR USERVAR
+ IAC SE
+ [ The server has now explicitly asked for the USER and ACCT
+ variables, the default set of well known environment variables,
+ and the default set of user defined variables. Note that the
+ client includes the USER information twice; once because it was
+ explicitly asked for, and once because it is part of the
+ default environment. ]
+ IAC SB NEW-ENVIRON IS VAR "USER"
+ VALUE "joe" VAR "ACCT" VALUE
+ "kernel" VAR "USER" VALUE "joe"
+ VAR "DISPLAY" VALUE "foo:0.0"
+ USERVAR "SHELL" VALUE "/bin/csh"
+ IAC SE
+
+ It is legal for a client to respond with an empty environment (no
+ data between the IAC SB and IAC SE) when no well-defined or user
+ variables are currently defined. For example:
+
+ IAC SB NEW-ENVIRON IS IAC SE
+
+ is a valid response to any of the following:
+
+
+
+Telnet Working Group [Page 5]
+
+RFC 1572 Telnet Environment Option January 1994
+
+
+ IAC SB NEW-ENVIRON SEND IAC SE
+ IAC SB NEW-ENVIRON SEND VAR IAC SE
+ IAC SB NEW-ENVIRON SEND USERVAR IAC SE
+ IAC SB NEW-ENVIRON SEND VAR USERVAR IAC SE
+
+ (The last example is equivalent to the first...)
+
+ The earlier version of this specification [1] incorrectly reversed
+ the values for VAR and VALUE, which put the specification at odds
+ with existing implementations. In order to resolve that problem, as
+ well as other minor problems, a new option number has been assigned
+ to the NEW-ENVIRON option. This allows implementations of this memo
+ to interoperate with no ambiguity.
+
+ For a discussion on how to implement to interoperate with the various
+ implementations that pre-date this memo, see [2].
+
+ It is expected that any implementation that supports the Telnet NEW-
+ ENVIRON option will support all of this specification.
+
+7. Security Concerns
+
+ It is important for an implementor of the NEW-ENVIRON option to
+ understand the interaction of setting options and the
+ login/authentication process. Specifically careful analysis should be
+ done to determine which variables are "safe" to set prior to having
+ the client login. An example of a bad choice would be permitting a
+ variable to be changed that allows an intruder to circumvent or
+ compromise the login/authentication program itself.
+
+8. References
+
+ [1] Borman, D., Editor, "Telnet Environment Option", RFC 1408, Cray
+ Research, Inc., January 1993.
+
+ [2] Borman, D., "Telnet Environment Option Interoperability Issues",
+ RFC 1571, Cray Research, Inc., January 1994.
+
+ [3] VanBokkelen, J., "Telnet Terminal-Type Option", RFC 1091, FTP
+ Software, Inc., February 1989.
+
+ [4] Postel, J., and J. Reynolds, "File Transfer Protocol (FTP)", STD
+ 9, RFC 959, USC/Information Sciences Institute, October 1985.
+
+ [5] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340,
+ USC/Information Sciences Institute, July 1992.
+
+
+
+
+
+Telnet Working Group [Page 6]
+
+RFC 1572 Telnet Environment Option January 1994
+
+
+ [6] Marcy, G., "Telnet X Display Location Option", RFC 1096, Carnegie
+ Mellon University, March 1989.
+
+Acknowledgements
+
+ The original version of this document was written by Dave Borman of
+ Cray Research, Inc. In addition, the comments of the Telnet Working
+ Group of the IETF are gratefully acknowledged.
+
+Security Considerations
+
+ Security issues are discussed in Section 7.
+
+Editor's Address
+
+ Steve Alexander
+ Lachman Technology, Inc.
+ 1901 North Naper Boulevard
+ Naperville, IL 60563-8895
+
+ Phone: (708) 505-9555 x256
+ EMail: stevea@lachman.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Telnet Working Group [Page 7]
+ \ No newline at end of file