转: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. 着色方案(bzoj 1079)

    Description 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块.所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个木 ...

  2. HDU1863 畅通工程---(最小生成树)

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. poj1379 Run Away

    传送门:http://poj.org/problem?id=1379 [题解] 题目大意:求(0,0)->(X,Y)内的一个点,使得这个点到给定的n个点的最小距离最大. 模拟退火 一开始可以先把 ...

  4. VC++/MFC中调用CHM帮助文档的方法

    转载:http://blog.csdn.net/hediping9811/article/details/23341387 (1)用Word编辑好帮助文档,并保存为网页格式,如mhtml格式. (2) ...

  5. 【转】cve2014-3153 漏洞之详细分析与利用

    背景学习: Linux Futex的设计与实现 使用者角度看bionic pthread_mutex和linux futex实现 By kernux TopSec α-lab 一 漏洞概述 这个漏洞是 ...

  6. [ Python - 6 ] 正则表达式实现计算器功能

    要求:禁止使用eval函数.参考网上代码如下: #!_*_coding:utf-8_*_ """用户输入计算表达式,显示计算结果""" im ...

  7. 【 浅谈Linux路由机制 】

    以下均为个人实验验证结果,如有问题,恳请指正. 现在服务器一般都有四张网卡,给了我们更多网络模型的选择.为了业务的需求,有时我们需要如下网络架构 系统:centos 7.2 x64 两张网卡不在同一个 ...

  8. [BZOJ1492] [NOI2007]货币兑换Cash 斜率优化+cdq/平衡树维护凸包

    1492: [NOI2007]货币兑换Cash Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 5907  Solved: 2377[Submit][Sta ...

  9. linux+win7双系统重装win7修复grub的办法

    本人是debian+win7的双系统, 下面介绍下重装win7的整个过程以及遇到的一些小问题,在查阅相关博客和朋友的帮助下成功修复, 记录下以便以后有不时之需, 也希望能帮助到遇到同样问题的朋友! 首 ...

  10. BZOJ 3223: Tyvj 1729 文艺平衡树-Splay树(区间翻转)模板题

    3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 6881  Solved: 4213[Submit][Sta ...