1.命令名和代碼
ENVIRON36
IS0
SEND1
INFO2
VAR0
VALUE1
ESC2
USERVAR3
2.命令含義
IACWILLENVIRON
這個(gè)命令的發(fā)送者將發(fā)送環(huán)境變量。
IACWONTENVIRON
這個(gè)命令的發(fā)送者拒絕發(fā)送環(huán)境變量。
IACDOENVIRON
這個(gè)命令的發(fā)送者將接收環(huán)境變量。
IACDONTENVIRON
這個(gè)命令的發(fā)送者拒絕接收環(huán)境變量。
IACSBENVIRONSEND[type...[type...[...]]]IACSE
這個(gè)命令的發(fā)送者請(qǐng)求遠(yuǎn)端發(fā)送它的環(huán)境變量。“type”既可以是VAR,也可以是
USERVAR,既用來(lái)指定周知變量名又用于指定用戶變量名。只有DOENVIRON端可以發(fā)
起一個(gè)SEND命令。假如指定了一個(gè)變量列表,那么只能發(fā)送這些變量。假如沒(méi)有指定列
表,那么就應(yīng)該發(fā)送對(duì)所有的周知變量和用戶自定義變量都是缺省的環(huán)境變量。假如有一個(gè)
變量沒(méi)有命名,那么應(yīng)該發(fā)送在缺省環(huán)境中的所有類型的變量(周知或者用戶自定義的)。
IACSBENVIRONIStype...[VALUE...][type...[VALUE...][
這個(gè)命令的發(fā)送者正在發(fā)送環(huán)境變量。發(fā)送這個(gè)命令來(lái)響應(yīng)某個(gè)SEND請(qǐng)求。只有處
于WILLENVIRON狀態(tài)的一端可以發(fā)送一個(gè)IS命令。“type”/VALUE對(duì)必須按照和SEND
請(qǐng)求指定的順序相同的次序來(lái)返回,而且必須對(duì)每一個(gè)明確的“type...”請(qǐng)求都得響應(yīng)。
“type”會(huì)是VAR或者USERVAR。可能發(fā)送多重環(huán)境變量。在一個(gè)“type”后一直到下
一個(gè)“type”或VALUE的特征指定了變量名稱。Thecharactersfollowinga在一個(gè)VALUE
后一直到下一個(gè)“type”的特征指定了變量的數(shù)值。假如一個(gè)“type”后面沒(méi)有跟一個(gè)
VALUE(例如,跟著其他的VAR、USERVAR或者IACSE),那么對(duì)這個(gè)變量就沒(méi)有定義。
假如VALUE后面緊跟著一個(gè)“type”或者IAC,那么這個(gè)變量已經(jīng)定義了,但是沒(méi)有數(shù)值。
假如某個(gè)IAC包含在IS和IACSE中,那么它必須當(dāng)作IACIA來(lái)發(fā)送。假如某個(gè)變量或者
數(shù)值包含了一個(gè)VAR,那么它必須當(dāng)作ESCVAR來(lái)發(fā)送。
假如某個(gè)變量或者數(shù)值包含了一個(gè)USERVAR,那么它必須當(dāng)作ESCUSERVAR來(lái)發(fā)
送。假如一個(gè)變量或者數(shù)值包含了一個(gè)VALUE,那么它必須當(dāng)作ESCVALUE來(lái)發(fā)送。如
果某個(gè)變量或者數(shù)值包含了一個(gè)ESC,那么它必須當(dāng)作ESCESC來(lái)發(fā)送。
IACSBENVIRONINFOtype...[VALUE...][type...[VALUE...][
這個(gè)命令的發(fā)送者正在發(fā)送有關(guān)已經(jīng)變化了的環(huán)境變量的信息。除了在命令中以INFO
替代了IS以外,和IS命令相同。只有處于WILLENVIRON狀態(tài)的一端可以發(fā)送一個(gè)INFO
命令。INFO命令不會(huì)用于發(fā)送初始化信息;SEND/IS序列正是用在這種情況下。INFO命
令用于廣播環(huán)境變量的變化,而且可以很自然的就產(chǎn)生了。
3.缺省規(guī)范
這個(gè)選項(xiàng)的缺省規(guī)范是
WONTENVIRON
DONTENVIRON
意思是沒(méi)有任何環(huán)境信息的交換。
4.動(dòng)機(jī)
一些操作系統(tǒng)具有包含著當(dāng)Telnet連接建立時(shí)廣播給遠(yuǎn)端機(jī)器的信息的啟動(dòng)信息和環(huán)
境變量。提出一些新的需要通過(guò)一個(gè)Telnet會(huì)話來(lái)廣播的信息比每次創(chuàng)建一個(gè)新的Telnet
選項(xiàng)更可取,但是Telnet會(huì)話自身并不真正需要知道,就可以采用這種普通的信息選項(xiàng)了。
5.周知變量
USER這個(gè)變量用于傳送客戶端想要登錄的遠(yuǎn)程系統(tǒng)上的用戶或者帳戶名。USER變
量的數(shù)值格式由系統(tǒng)決定,由遠(yuǎn)程系統(tǒng)確定。
JOB這個(gè)變量用于傳送當(dāng)?shù)卿涍M(jìn)入遠(yuǎn)程系統(tǒng)時(shí)客戶端想要使用的業(yè)務(wù)ID號(hào)。JOB
變量的數(shù)值格式由系統(tǒng)決定,由遠(yuǎn)程系統(tǒng)確定。
ACCT這個(gè)變量用于傳送當(dāng)?shù)卿涍M(jìn)入遠(yuǎn)程系統(tǒng)時(shí)客戶端想要使用的帳戶ID號(hào)。ACCT
變量的數(shù)值格式由系統(tǒng)決定,由遠(yuǎn)程系統(tǒng)確定。
PRINTER這個(gè)變量用于確定打印機(jī)輸出的缺省位置。因?yàn)楝F(xiàn)在在網(wǎng)絡(luò)上沒(méi)有一種標(biāo)
準(zhǔn)的命名方法,所以目前這個(gè)變量的格式不明確。
SYSTEMTYPE這個(gè)是用于傳輸這個(gè)變量所用的操作系統(tǒng)的類型。它的數(shù)值和FTP[2]
中的SYSTEM(SYST)的取值相同。這個(gè)值的格式應(yīng)該和在AssignedNumbers文檔[3]的當(dāng)
前版本中列出的一個(gè)系統(tǒng)名稱的第一個(gè)詞一樣。
DISPLAY這個(gè)變量用于傳輸客戶端的X顯示位置。DISPLAY變量的數(shù)值格式如下:
<host>:<dispnum>[.<screennum>]
這個(gè)消息和通過(guò)利用TelnetX-DISPLAY-LOCATION選項(xiàng)得到的信息是相同。假如
DISPLAY環(huán)境變量收到的X-DISPLAY-LOCATION選項(xiàng)[4]以及它們包含的不一致信息,應(yīng)
該使用最近收到的信息。
因?yàn)椴豢赡茴A(yù)計(jì)到所有用戶想要交換的變量,提供了USERVAR類型來(lái)支持用戶傳輸
任意的變量/數(shù)值對(duì)。采用附加類型使得應(yīng)用可以區(qū)分由遠(yuǎn)端主機(jī)軟件得到的數(shù)值和由用戶
提供的數(shù)值。偏執(zhí)些的實(shí)現(xiàn)很可能用同級(jí)的不信任度對(duì)待這兩種類型。周知變量和用戶變量
之間命名空間沖突的結(jié)果是規(guī)范應(yīng)用。
6.應(yīng)用規(guī)則
WILL和DO僅僅用在連接開(kāi)始時(shí)捕捉和承認(rèn)將來(lái)協(xié)商的結(jié)果。
一旦兩個(gè)主機(jī)已經(jīng)交換了一個(gè)WILL命令和DO命令,DOENVIRON的發(fā)送者就可以
自由的請(qǐng)求發(fā)送環(huán)境變量。一旦DO的發(fā)送者可以發(fā)送請(qǐng)求(IACSBENVIRONSENDIAC
SE),那么WILL的發(fā)送者就可以傳輸現(xiàn)行的環(huán)境變量信息(通過(guò)IACSBENVIRONIS...IAC
SE命令)。雖然有時(shí)這個(gè)選項(xiàng)在整個(gè)TELNET連接的過(guò)程中都可以使用,但是環(huán)境信息交
換還是經(jīng)常出現(xiàn)在連接啟動(dòng)時(shí)。這是因?yàn)樵S多操作系統(tǒng)只具有在過(guò)程創(chuàng)建時(shí)才傳輸環(huán)境信息
的機(jī)制,所以在用戶登錄前這些信息是必須的。在這一節(jié)中,任何引用的事情都是以速記方
式對(duì)ASCII數(shù)值字符串的進(jìn)行記錄的。例如,“joe”意思是三個(gè)八位十進(jìn)制序列106111101。
接收主機(jī)不需要把它從環(huán)境中接收到的所有的變量都上傳。例如,假如客戶機(jī)將要通過(guò)
發(fā)送USERVAR“TERM”VALUE“xterm”這個(gè)環(huán)境變量來(lái)發(fā)送時(shí),TERMINAL-TYPE
[1]選項(xiàng)已經(jīng)用于確定終端類型,服務(wù)器就可以忽略TERM變量。同樣,一些啟動(dòng)信息也可
以用于其他方面;例如,“USER”、“ACCT”和“PROJ”變量的數(shù)值可以用來(lái)判定哪一個(gè)
帳戶已經(jīng)登錄,而且可能從未被上傳給用戶環(huán)境。通常,假如服務(wù)器通過(guò)一些更精確的方法
已經(jīng)檢測(cè)到某個(gè)環(huán)境變量的數(shù)值,或者假如它不能理解某個(gè)變量名稱,它將忽略在
ENVIRON選項(xiàng)中發(fā)送的數(shù)值。服務(wù)器可能也更喜歡僅僅把所有未知信息上傳到用戶的環(huán)境
中。這是應(yīng)用中建議的方法,因?yàn)樗褂脩羰褂闷饋?lái)更加靈活。
以下是一個(gè)這個(gè)選項(xiàng)的使用范例:
Host1Host2
IACDOENVIRON
IACWILLENVIRON
[現(xiàn)在主機(jī)1可以自由的請(qǐng)求環(huán)境變量了]
IACSBENVIRONSENDVAR"USER"
VAR"ACCT"VARUSERVARIACSE
[現(xiàn)在,服務(wù)器明確請(qǐng)求得到USER和ACCT變量、周知環(huán)境變量的缺省設(shè)置和用戶
自定義變量的缺省設(shè)置。注重:客戶端兩次引用了USER信息;一次是因?yàn)樗鞔_請(qǐng)求的,
另一次是因?yàn)樗侨笔…h(huán)境的一部分。]
IACSBENVIRONISVAR"USER"
VALUE"joe"VAR"ACCT"VALUE
"kernel"VAR"USER"VALUE"joe"
VAR"DISPLAY"VALUE"foo:0.0"
USERVAR"SHELL"VALUE"/bin/csh"
IACSE
當(dāng)現(xiàn)在定義了用戶變量或者不明確的變量時(shí),對(duì)于響應(yīng)空環(huán)境(在IACSB和IACSE中
都沒(méi)有數(shù)據(jù))的客戶端,那是合法的。例如:
IACSBENVIRONISIACSE
對(duì)下列任何都是有效響應(yīng):
IACSBENVIRONSENDIACSE
IACSBENVIRONSENDVARIACSE
IACSBENVIRONSENDUSERVARIACSE
IACSBENVIRONSENDVARUSERVARIACSE
(最后的范例和第一個(gè)相同...)
預(yù)計(jì),支持TelnetENVIRON選項(xiàng)的任何應(yīng)用都將完全支持這個(gè)規(guī)范。
7.涉及的安全問(wèn)題
對(duì)ENVIRON選項(xiàng)的實(shí)施者重要的是理解設(shè)置選項(xiàng)的交互性和邏輯/證實(shí)過(guò)程。應(yīng)該非
常仔細(xì)的分析哪個(gè)變量在設(shè)置客戶登錄時(shí)是“安全的”。一個(gè)錯(cuò)誤選項(xiàng)的例子將會(huì)改一個(gè)參
數(shù),答應(yīng)入侵者廢止或損害登錄/證實(shí)程序本身。
8.參考文獻(xiàn)
[1]VanBokkelen,J.,"TelnetTerminal-TypeOption",RFC1091,F(xiàn)TPSoftware,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
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注