转:http://www.cnpaf.net/Class/Telnet/200408/2.html

Telnet环境变量

时间:2004-08-01 来源: 作者: 点击:1412次
收藏到:
1.命令名和代码 ENVIRON36 IS0 SEND1 INFO2 VAR0
VALUE1 ESC2 USERVAR3 2.命令含义 IACWILLENVIRON 这个命令的发送者将发送环境变量。
IACWONTENVIRON 这个命令的发送者拒绝发送环境变量。 IACDOENVIRON 这个命令的发送者将接收环境变量。
IACDONTENVIRON 这个命令的发

  

1.命令名和代码
ENVIRON36
IS0
SEND1
INFO2

VAR0
VALUE1
ESC2
USERVAR3

2.命令含义
IACWILLENVIRON
这个命令的发送者将发送环境变量。
IACWONTENVIRON
这个命令的发送者拒绝发送环境变量。
IACDOENVIRON
这个命令的发送者将接收环境变量。
IACDONTENVIRON
这个命令的发送者拒绝接收环境变量。
IACSBENVIRONSEND[type...[type...[...]]]IACSE
这个命令的发送者请求远端发送它的环境变量。“type”既可以是VAR,也可以是
USERVAR,既用来指定周知变量名又用于指定用户变量名。只有DOENVIRON端可以发
起一个SEND命令。如果指定了一个变量列表,那么只能发送这些变量。如果没有指定列
表,那么就应该发送对所有的周知变量和用户自定义变量都是缺省的环境变量。如果有一个
变量没有命名,那么应该发送在缺省环境中的所有类型的变量(周知或者用户自定义的)。
IACSBENVIRONIStype...[VALUE...][type...[VALUE...][
这个命令的发送者正在发送环境变量。发送这个命令来响应某个SEND请求。只有处
于WILLENVIRON状态的一端可以发送一个IS命令。“type”/VALUE对必须按照和SEND
请求指定的顺序相同的次序来返回,而且必须对每一个明确的“type...”请求都得响应。
“type”会是VAR或者USERVAR。可能发送多重环境变量。在一个“type”后一直到下
一个“type”或VALUE的特征指定了变量名称。Thecharactersfollowinga在一个VALUE
后一直到下一个“type”的特征指定了变量的数值。如果一个“type”后面没有跟一个
VALUE(例如,跟着其他的VAR、USERVAR或者IACSE),那么对这个变量就没有定义。
如果VALUE后面紧跟着一个“type”或者IAC,那么这个变量已经定义了,但是没有数值。
如果某个IAC包含在IS和IACSE中,那么它必须当作IACIA来发送。如果某个变量或者
数值包含了一个VAR,那么它必须当作ESCVAR来发送。
如果某个变量或者数值包含了一个USERVAR,那么它必须当作ESCUSERVAR来发
送。如果一个变量或者数值包含了一个VALUE,那么它必须当作ESCVALUE来发送。如
果某个变量或者数值包含了一个ESC,那么它必须当作ESCESC来发送。
IACSBENVIRONINFOtype...[VALUE...][type...[VALUE...][
这个命令的发送者正在发送有关已经变化了的环境变量的信息。除了在命令中以INFO
替代了IS以外,和IS命令相同。只有处于WILLENVIRON状态的一端可以发送一个INFO
命令。INFO命令不会用于发送初始化信息;SEND/IS序列正是用在这种情况下。INFO命
令用于广播环境变量的变化,而且可以很自然的就产生了。

3.缺省规范
这个选项的缺省规范是
WONTENVIRON
DONTENVIRON
意思是没有任何环境信息的交换。

4.动机
一些操作系统具有包含着当Telnet连接建立时广播给远端机器的信息的启动信息和环
境变量。提出一些新的需要通过一个Telnet会话来广播的信息比每次创建一个新的Telnet
选项更可取,但是Telnet会话自身并不真正需要知道,就可以采用这种普通的信息选项了。

5.周知变量
USER这个变量用于传送客户端想要登录的远程系统上的用户或者帐户名。USER变
量的数值格式由系统决定,由远程系统确定。
JOB这个变量用于传送当登录进入远程系统时客户端想要使用的业务ID号。JOB
变量的数值格式由系统决定,由远程系统确定。
ACCT这个变量用于传送当登录进入远程系统时客户端想要使用的帐户ID号。ACCT
变量的数值格式由系统决定,由远程系统确定。
PRINTER这个变量用于确定打印机输出的缺省位置。因为现在在网络上没有一种标
准的命名方法,所以目前这个变量的格式不明确。
SYSTEMTYPE这个是用于传输这个变量所用的操作系统的类型。它的数值和FTP[2]
中的SYSTEM(SYST)的取值相同。这个值的格式应该和在AssignedNumbers文档[3]的当
前版本中列出的一个系统名称的第一个词一样。
DISPLAY这个变量用于传输客户端的X显示位置。DISPLAY变量的数值格式如下:
<host>:<dispnum>[.<screennum>]
这个消息和通过利用TelnetX-DISPLAY-LOCATION选项得到的信息是相同。如果
DISPLAY环境变量收到的X-DISPLAY-LOCATION选项[4]以及它们包含的不一致信息,应
该使用最近收到的信息。
因为不可能预计到所有用户想要交换的变量,提供了USERVAR类型来支持用户传输
任意的变量/数值对。采用附加类型使得应用可以区分由远端主机软件得到的数值和由用户
提供的数值。偏执些的实现很可能用同级的不信任度对待这两种类型。周知变量和用户变量
之间命名空间冲突的结果是规范应用。

6.应用规则
WILL和DO仅仅用在连接开始时捕获和承认将来协商的结果。
一旦两个主机已经交换了一个WILL命令和DO命令,DOENVIRON的发送者就可以
自由的请求发送环境变量。一旦DO的发送者可以发送请求(IACSBENVIRONSENDIAC
SE),那么WILL的发送者就可以传输现行的环境变量信息(通过IACSBENVIRONIS...IAC
SE命令)。虽然有时这个选项在整个TELNET连接的过程中都可以使用,但是环境信息交
换还是常常出现在连接启动时。这是因为许多操作系统只具有在过程创建时才传输环境信息
的机制,所以在用户登录前这些信息是必须的。在这一节中,任何引用的事情都是以速记方
式对ASCII数值字符串的进行记录的。例如,“joe”意思是三个八位十进制序列106111101。
接收主机不需要把它从环境中接收到的所有的变量都上传。例如,如果客户机将要通过
发送USERVAR“TERM”VALUE“xterm”这个环境变量来发送时,TERMINAL-TYPE
[1]选项已经用于确定终端类型,服务器就可以忽略TERM变量。同样,一些启动信息也可
以用于其他方面;例如,“USER”、“ACCT”和“PROJ”变量的数值可以用来判断哪一个
帐户已经登录,而且可能从未被上传给用户环境。通常,如果服务器通过一些更精确的方法
已经检测到某个环境变量的数值,或者如果它不能理解某个变量名称,它将忽略在
ENVIRON选项中发送的数值。服务器可能也更喜欢仅仅把所有未知信息上传到用户的环境
中。这是应用中建议的方法,因为它使用户使用起来更加灵活。
以下是一个这个选项的使用范例:
Host1Host2
IACDOENVIRON
IACWILLENVIRON
[现在主机1可以自由的请求环境变量了]
IACSBENVIRONSENDVAR"USER"
VAR"ACCT"VARUSERVARIACSE
[现在,服务器明确请求得到USER和ACCT变量、周知环境变量的缺省设置和用户
自定义变量的缺省设置。注意:客户端两次引用了USER信息;一次是因为它明确请求的,
另一次是因为它是缺省环境的一部分。]
IACSBENVIRONISVAR"USER"
VALUE"joe"VAR"ACCT"VALUE
"kernel"VAR"USER"VALUE"joe"
VAR"DISPLAY"VALUE"foo:0.0"
USERVAR"SHELL"VALUE"/bin/csh"
IACSE
当现在定义了用户变量或者不明确的变量时,对于响应空环境(在IACSB和IACSE中
都没有数据)的客户端,那是合法的。例如:
IACSBENVIRONISIACSE
对下列任何都是有效响应:
IACSBENVIRONSENDIACSE
IACSBENVIRONSENDVARIACSE
IACSBENVIRONSENDUSERVARIACSE
IACSBENVIRONSENDVARUSERVARIACSE
(最后的范例和第一个相同...)
预计,支持TelnetENVIRON选项的任何应用都将完全支持这个规范。

7.涉及的安全问题
对ENVIRON选项的实施者重要的是理解设置选项的交互性和逻辑/证明过程。应该非
常仔细的分析哪个变量在设置客户登录时是“安全的”。一个错误选项的例子将会改一个参
数,允许入侵者废止或损害登录/证明程序本身。

8.参考文献
[1]VanBokkelen,J.,"TelnetTerminal-TypeOption",RFC1091,FTPSoftware,Inc.,
February1989.
[2]Postel,J.andJ.Reynolds,"FileTransferProtocol(FTP)",STD9,RFC959,
USC/InformationSciencesInstitute,October1985.
[3]Reynolds,J.andJ.Postel,"AssignedNumbers",STD2,RFC1340,
USC/InformationSciencesInstitute,July1992.
[4]Marcy,G.,"TelnetXDisplayLocationOption",RFC1096,CarnegieMellon

Telnet环境变量的更多相关文章

  1. UNIX下的LD_PRELOAD环境变量

    UNIX下的LD_PRELOAD环境变量 也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久.不过,在这里,我还是想讨论一下这个环境变量.因为这个环境变量所带来的安全问题非常严重,值得 ...

  2. UNIX下的环境变量--转载

    所有环境变量名都是大写小写,系统会当作shell script自定义变量,而不会当作环境变量 [root@mac-home macg]# echo $path                      ...

  3. linux下的环境变量

    环境变量有时候要查找,但是经常忘记有哪些文件,现在做一个总结: /etc/profile                 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/e ...

  4. Linux Shell基础 环境变量配置文件

    source命令:使环境变量配置文件强制生效 source 命令会强制执行脚本中的全部命令,而忽略脚本文件的权限.该命令主要用于让重新配置的环境变量配置文件强制生效.source 命令格式如下: [r ...

  5. [forward]警惕UNIX下的LD_PRELOAD环境变量

    From: https://blog.csdn.net/haoel/article/details/1602108 警惕UNIX下的LD_PRELOAD环境变量 前言 也许这个话题并不新鲜,因为LD_ ...

  6. 整理wmic使用,不重启变环境变量 .

    整理wmic使用,不重启变环境变量 . 利用wmic修改是直接生效的:(e:\tools 是新添加的目录) wmic ENVIRONMENT where "name='path' and u ...

  7. 0、驱动及应用小技巧、uboot指令及环境变量配置、linux常用命令

    (内核make menuconfig之后,通过insmod安装的驱动都应该重新make,可能会出现一些莫名的问题) (nor flash/SDRAM/DM9000都受内存控制器控制,需要配置内存控制器 ...

  8. 『忘了再学』Shell基础 — 23、其他环境变量配置文件

    目录 1.注销时生效的环境变量配置文件 2.其他配置文件 3.Shell登录信息相关文件 (1)/etc/issue文件说明 (2)/etc/issue.net文件说明 (3)/etc/motd文件说 ...

  9. linux centos中添加删除修改环境变量,设置java环境变量

    前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...

随机推荐

  1. final 的作用

    1.修饰类 类不能被继承 2.修饰方法 目的有二: 1)禁止子类重写该方法 2)执行效率(JVM相关的东西,不用太关注) 3.修饰变量 final修饰原始类型的变量,该变量不能被修改 final修饰引 ...

  2. 洛谷 PT2 First Step (ファーストステップ)

    题目背景 知らないことばかりなにもかもが(どうしたらいいの?) 一切的一切 尽是充满了未知数(该如何是好) それでも期待で足が軽いよ(ジャンプだ!) 但我仍因满怀期待而步伐轻盈(起跳吧!) 温度差なん ...

  3. sphinx 分词搭建手册

    步奏1. yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expa ...

  4. Android USB Camera(1) : 调试记录【转】

    转自:http://blog.csdn.net/eternity9255/article/details/53069037 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 前言 ...

  5. easyui时间控件用js实时获取选定的时间的取法

    easyui时间控件用js实时获取选定的时间的取法var   datetime=$("#id").datetimebox("getValue");不能用 $(& ...

  6. WPF中添加一个文本输入框,按Enter回车,执行绑定的Command

    在WPF+WMMV模式中使用键盘和鼠标事件的绑定代码如下: <TextBox x:Name="SearchBox" Text="{Binding SearchTex ...

  7. 回车和换行有什么区别?我们平时按下的Enter键是回车还是换行?

    来源:http://www.52rd.com/blog/Detail_RD.Blog_imjacob_12317.html -------------------------------------- ...

  8. pandas基础学习

    1.导入两个数据分析重要的模块import numpy as npimport pandas as pd2.创建一个时间索引,所谓的索引(index)就是每一行数据的id,可以标识每一行的唯一值dat ...

  9. 抽象语法树简介(ZZ)

    转载自: http://www.cnblogs.com/cxihu/p/5836744.html (一)简介 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状 ...

  10. flask学习:如何从config里载入配置

    代码如下: 1.main.py from flask import Flask from config import DevConfig app=Flask(__name__) app.config. ...