Telnet环境变量
转:http://www.cnpaf.net/Class/Telnet/200408/2.html
Telnet环境变量
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环境变量的更多相关文章
- UNIX下的LD_PRELOAD环境变量
UNIX下的LD_PRELOAD环境变量 也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久.不过,在这里,我还是想讨论一下这个环境变量.因为这个环境变量所带来的安全问题非常严重,值得 ...
- UNIX下的环境变量--转载
所有环境变量名都是大写小写,系统会当作shell script自定义变量,而不会当作环境变量 [root@mac-home macg]# echo $path ...
- linux下的环境变量
环境变量有时候要查找,但是经常忘记有哪些文件,现在做一个总结: /etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/e ...
- Linux Shell基础 环境变量配置文件
source命令:使环境变量配置文件强制生效 source 命令会强制执行脚本中的全部命令,而忽略脚本文件的权限.该命令主要用于让重新配置的环境变量配置文件强制生效.source 命令格式如下: [r ...
- [forward]警惕UNIX下的LD_PRELOAD环境变量
From: https://blog.csdn.net/haoel/article/details/1602108 警惕UNIX下的LD_PRELOAD环境变量 前言 也许这个话题并不新鲜,因为LD_ ...
- 整理wmic使用,不重启变环境变量 .
整理wmic使用,不重启变环境变量 . 利用wmic修改是直接生效的:(e:\tools 是新添加的目录) wmic ENVIRONMENT where "name='path' and u ...
- 0、驱动及应用小技巧、uboot指令及环境变量配置、linux常用命令
(内核make menuconfig之后,通过insmod安装的驱动都应该重新make,可能会出现一些莫名的问题) (nor flash/SDRAM/DM9000都受内存控制器控制,需要配置内存控制器 ...
- 『忘了再学』Shell基础 — 23、其他环境变量配置文件
目录 1.注销时生效的环境变量配置文件 2.其他配置文件 3.Shell登录信息相关文件 (1)/etc/issue文件说明 (2)/etc/issue.net文件说明 (3)/etc/motd文件说 ...
- linux centos中添加删除修改环境变量,设置java环境变量
前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...
随机推荐
- Flex UI刷新后保持DataGrid中的ScrollBar的位置不变
这是之前我发的一个贴子问题描述:http://q.cnblogs.com/q/53469/
- 汕头市队赛 yyl杯1 T2
B SRM 05 - YYL 杯 R1 背景&&描述 有一个拥有n个城市的国家.这个国家由n-1条边连接起来.有一天国家发生叛乱.叛军已占领了一些城市.如果叛军占领的城市中,存在两个城 ...
- bzoj 2064 DP
这道题可以抽象成两个数列,将一个数列变换为另一个 数列的代价最小 首先我们可以处理出所有的状态代表,对于每个状态 用二进制来表示,代表的是两个数列中的每一项选还是不选 那么答案最多为n1+n2-2,也 ...
- js中typeof 与instanceof的区别
1.typeof 用来检测给定变量的数据类型,其返回的值是下列某个字符串: "undefined":变量未定义 "boolean":变量为布尔类型 " ...
- Python小程序之购物车
需求: 用户入口: 1.商品信息放在文件中,从文件中读取 2.已购商品,余额记录,第一要输入起始金额,以后不需要二次输入 商家入口: 2.可以添加商品,修改商品价格 # Author:Lee Siri ...
- 【Linux驱动学习】SD卡规范学习
摘要: 学习SD卡的相关规范,包括定义,硬件特性,数据传输,命令系统等.不涉及代码. 文章针对Linux驱动开发而写,以助于理解SD卡驱动,不会涉及过多硬件内容. 纲要: 1. SD卡介绍 2. SD ...
- vi错误terminal too wide解决方法
vi错误terminal too wide解决方法 http://blog.sina.com.cn/s/blog_3f68daa00100vcsh.html
- EF选择Mysql数据源
EF添加ADO.NET实体模型处直接选择Mysql数据源 最近想到EF是连接多数据库的orm框架,于是就想测试下.查了一堆网上资料后,测试连接mysql成功.步骤如下: 1.在你项目Model层中nu ...
- [ python ] 使用sys模块实现进度条
在写网络IO传输的时候, 有时候需要进度条来显示当前传输进度,使用 sys 模块就可以实现: sys.stdout.write() 这个函数在在控制台输出字符串不会带任何结尾,这就意味着这个输出还没有 ...
- redis.clients.jedis.HostAndPort - cant resolve localhost address
阿里云ECS部署spring-boot访问redis出现redis.clients.jedis.HostAndPort - cant resolve localhost address 摘要: 阿里云 ...