%!PS-Adobe-3.0 %%BoundingBox: 75 0 595 747 %%Title: Enscript Output %%For: Magnus Thoang %%Creator: GNU enscript 1.6.1 %%CreationDate: Wed Nov 12 12:26:07 2003 %%Orientation: Portrait %%Pages: 15 0 %%DocumentMedia: A4 595 842 0 () () %%DocumentNeededResources: (atend) %%EndComments %%BeginProlog %%BeginProcSet: PStoPS 1 15 userdict begin [/showpage/erasepage/copypage]{dup where{pop dup load type/operatortype eq{1 array cvx dup 0 3 index cvx put bind def}{pop}ifelse}{pop}ifelse}forall [/letter/legal/executivepage/a4/a4small/b5/com10envelope /monarchenvelope/c5envelope/dlenvelope/lettersmall/note /folio/quarto/a5]{dup where{dup wcheck{exch{}put} {pop{}def}ifelse}{pop}ifelse}forall /setpagedevice {pop}bind 1 index where{dup wcheck{3 1 roll put} {pop def}ifelse}{def}ifelse /PStoPSmatrix matrix currentmatrix def /PStoPSxform matrix def/PStoPSclip{clippath}def /defaultmatrix{PStoPSmatrix exch PStoPSxform exch concatmatrix}bind def /initmatrix{matrix defaultmatrix setmatrix}bind def /initclip[{matrix currentmatrix PStoPSmatrix setmatrix [{currentpoint}stopped{$error/newerror false put{newpath}} {/newpath cvx 3 1 roll/moveto cvx 4 array astore cvx}ifelse] {[/newpath cvx{/moveto cvx}{/lineto cvx} {/curveto cvx}{/closepath cvx}pathforall]cvx exch pop} stopped{$error/errorname get/invalidaccess eq{cleartomark $error/newerror false put cvx exec}{stop}ifelse}if}bind aload pop /initclip dup load dup type dup/operatortype eq{pop exch pop} {dup/arraytype eq exch/packedarraytype eq or {dup xcheck{exch pop aload pop}{pop cvx}ifelse} {pop cvx}ifelse}ifelse {newpath PStoPSclip clip newpath exec setmatrix} bind aload pop]cvx def /initgraphics{initmatrix newpath initclip 1 setlinewidth 0 setlinecap 0 setlinejoin []0 setdash 0 setgray 10 setmiterlimit}bind def end %%EndProcSet %%BeginResource: procset Enscript-Prolog 1.6 1 % % Procedures. % /_S { % save current state /_s save def } def /_R { % restore from saved state _s restore } def /S { % showpage protecting gstate gsave showpage grestore } bind def /MF { % fontname newfontname -> - make a new encoded font /newfontname exch def /fontname exch def /fontdict fontname findfont def /newfont fontdict maxlength dict def fontdict { exch dup /FID eq { % skip FID pair pop pop } { % copy to the new font dictionary exch newfont 3 1 roll put } ifelse } forall newfont /FontName newfontname put % insert only valid encoding vectors encoding_vector length 256 eq { newfont /Encoding encoding_vector put } if newfontname newfont definefont pop } def /SF { % fontname width height -> - set a new font /height exch def /width exch def findfont [width 0 0 height 0 0] makefont setfont } def /SUF { % fontname width height -> - set a new user font /height exch def /width exch def /F-gs-user-font MF /F-gs-user-font width height SF } def /M {moveto} bind def /s {show} bind def /Box { % x y w h -> - define box path /d_h exch def /d_w exch def /d_y exch def /d_x exch def d_x d_y moveto d_w 0 rlineto 0 d_h rlineto d_w neg 0 rlineto closepath } def /bgs { % x y height blskip gray str -> - show string with bg color /str exch def /gray exch def /blskip exch def /height exch def /y exch def /x exch def gsave x y blskip sub str stringwidth pop height Box gray setgray fill grestore x y M str s } def % Highlight bars. /highlight_bars { % nlines lineheight output_y_margin gray -> - gsave setgray /ymarg exch def /lineheight exch def /nlines exch def % This 2 is just a magic number to sync highlight lines to text. 0 d_header_y ymarg sub 2 sub translate /cw d_output_w cols div def /nrows d_output_h ymarg 2 mul sub lineheight div cvi def % for each column 0 1 cols 1 sub { cw mul /xp exch def % for each rows 0 1 nrows 1 sub { /rn exch def rn lineheight mul neg /yp exch def rn nlines idiv 2 mod 0 eq { % Draw highlight bar. 4 is just a magic indentation. xp 4 add yp cw 8 sub lineheight neg Box fill } if } for } for grestore } def % Line highlight bar. /line_highlight { % x y width height gray -> - gsave /gray exch def Box gray setgray fill grestore } def % Column separator lines. /column_lines { gsave .1 setlinewidth 0 d_footer_h translate /cw d_output_w cols div def 1 1 cols 1 sub { cw mul 0 moveto 0 d_output_h rlineto stroke } for grestore } def % Column borders. /column_borders { gsave .1 setlinewidth 0 d_footer_h moveto 0 d_output_h rlineto d_output_w 0 rlineto 0 d_output_h neg rlineto closepath stroke grestore } def % Do the actual underlay drawing /draw_underlay { ul_style 0 eq { ul_str true charpath stroke } { ul_str show } ifelse } def % Underlay /underlay { % - -> - gsave 0 d_page_h translate d_page_h neg d_page_w atan rotate ul_gray setgray ul_font setfont /dw d_page_h dup mul d_page_w dup mul add sqrt def ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto draw_underlay grestore } def /user_underlay { % - -> - gsave ul_x ul_y translate ul_angle rotate ul_gray setgray ul_font setfont 0 0 ul_h_ptsize 2 div sub moveto draw_underlay grestore } def % Page prefeed /page_prefeed { % bool -> - statusdict /prefeed known { statusdict exch /prefeed exch put } { pop } ifelse } def % Wrapped line markers /wrapped_line_mark { % x y charwith charheight type -> - /type exch def /h exch def /w exch def /y exch def /x exch def type 2 eq { % Black boxes (like TeX does) gsave 0 setlinewidth x w 4 div add y M 0 h rlineto w 2 div 0 rlineto 0 h neg rlineto closepath fill grestore } { type 3 eq { % Small arrows gsave .2 setlinewidth x w 2 div add y h 2 div add M w 4 div 0 rlineto x w 4 div add y lineto stroke x w 4 div add w 8 div add y h 4 div add M x w 4 div add y lineto w 4 div h 8 div rlineto stroke grestore } { % do nothing } ifelse } ifelse } def % EPSF import. /BeginEPSF { /b4_Inc_state save def % Save state for cleanup /dict_count countdictstack def % Count objects on dict stack /op_count count 1 sub def % Count objects on operand stack userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bind def /EndEPSF { count op_count sub { pos } repeat % Clean up stacks countdictstack dict_count sub { end } repeat b4_Inc_state restore } bind def % Check PostScript language level. /languagelevel where { pop /gs_languagelevel languagelevel def } { /gs_languagelevel 1 def } ifelse %%EndResource %%BeginResource: procset Enscript-Encoding-88591 1.6 1 /encoding_vector [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Courier-Bold %%IncludeResource: font Courier /HFpt_w 10 def /HFpt_h 10 def /Courier-Bold /HF-gs-font MF /HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def /Courier /F-gs-font MF /F-gs-font 10 10 SF /#copies 1 def /d_page_w 520 def /d_page_h 747 def /d_header_x 0 def /d_header_y 747 def /d_header_w 520 def /d_header_h 0 def /d_footer_x 0 def /d_footer_y 0 def /d_footer_w 520 def /d_footer_h 0 def /d_output_w 520 def /d_output_h 747 def /cols 1 def userdict/PStoPSxform PStoPSmatrix matrix currentmatrix matrix invertmatrix matrix concatmatrix matrix invertmatrix put %%EndSetup %%Page: (0,1) 1 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 1 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 701 M (Network Working Group T. Ylonen) s 5 690 M (Internet-Draft S. Lehtinen) s 5 679 M (Expires: April 1, 2002 SSH Communications Security Corp) s 5 668 M ( October 2001) s 5 635 M ( SSH File Transfer Protocol) s 5 624 M ( draft-ietf-secsh-filexfer-02.txt) s 5 602 M (Status of this Memo) s 5 580 M ( This document is an Internet-Draft and is in full conformance with) s 5 569 M ( all provisions of Section 10 of RFC2026.) s 5 547 M ( Internet-Drafts are working documents of the Internet Engineering) s 5 536 M ( Task Force \(IETF\), its areas, and its working groups. Note that) s 5 525 M ( other groups may also distribute working documents as Internet-) s 5 514 M ( Drafts.) s 5 492 M ( Internet-Drafts are draft documents valid for a maximum of six months) s 5 481 M ( and may be updated, replaced, or obsoleted by other documents at any) s 5 470 M ( time. It is inappropriate to use Internet-Drafts as reference) s 5 459 M ( material or to cite them other than as "work in progress.") s 5 437 M ( The list of current Internet-Drafts can be accessed at http://) s 5 426 M ( www.ietf.org/ietf/1id-abstracts.txt.) s 5 404 M ( The list of Internet-Draft Shadow Directories can be accessed at) s 5 393 M ( http://www.ietf.org/shadow.html.) s 5 371 M ( This Internet-Draft will expire on April 1, 2002.) s 5 349 M (Copyright Notice) s 5 327 M ( Copyright \(C\) The Internet Society \(2001\). All Rights Reserved.) s 5 305 M (Abstract) s 5 283 M ( The SSH File Transfer Protocol provides secure file transfer) s 5 272 M ( functionality over any reliable data stream. It is the standard file) s 5 261 M ( transfer protocol for use with the SSH2 protocol. This document) s 5 250 M ( describes the file transfer protocol and its interface to the SSH2) s 5 239 M ( protocol suite.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 1]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 2 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (Table of Contents) s 5 668 M ( 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3) s 5 657 M ( 2. Use with the SSH Connection Protocol . . . . . . . . . . . . 4) s 5 646 M ( 3. General Packet Format . . . . . . . . . . . . . . . . . . . 5) s 5 635 M ( 4. Protocol Initialization . . . . . . . . . . . . . . . . . . 7) s 5 624 M ( 5. File Attributes . . . . . . . . . . . . . . . . . . . . . . 8) s 5 613 M ( 6. Requests From the Client to the Server . . . . . . . . . . . 10) s 5 602 M ( 6.1 Request Synchronization and Reordering . . . . . . . . . . . 10) s 5 591 M ( 6.2 File Names . . . . . . . . . . . . . . . . . . . . . . . . . 11) s 5 580 M ( 6.3 Opening, Creating, and Closing Files . . . . . . . . . . . . 11) s 5 569 M ( 6.4 Reading and Writing . . . . . . . . . . . . . . . . . . . . 13) s 5 558 M ( 6.5 Removing and Renaming Files . . . . . . . . . . . . . . . . 14) s 5 547 M ( 6.6 Creating and Deleting Directories . . . . . . . . . . . . . 15) s 5 536 M ( 6.7 Scanning Directories . . . . . . . . . . . . . . . . . . . . 15) s 5 525 M ( 6.8 Retrieving File Attributes . . . . . . . . . . . . . . . . . 16) s 5 514 M ( 6.9 Setting File Attributes . . . . . . . . . . . . . . . . . . 17) s 5 503 M ( 6.10 Dealing with Symbolic links . . . . . . . . . . . . . . . . 18) s 5 492 M ( 6.11 Canonicalizing the Server-Side Path Name . . . . . . . . . . 18) s 5 481 M ( 7. Responses from the Server to the Client . . . . . . . . . . 20) s 5 470 M ( 8. Vendor-Specific Extensions . . . . . . . . . . . . . . . . . 24) s 5 459 M ( 9. Security Considerations . . . . . . . . . . . . . . . . . . 25) s 5 448 M ( 10. Changes from previous protocol versions . . . . . . . . . . 26) s 5 437 M ( 10.1 Changes between versions 3 and 2 . . . . . . . . . . . . . . 26) s 5 426 M ( 10.2 Changes between versions 2 and 1 . . . . . . . . . . . . . . 26) s 5 415 M ( 10.3 Changes between versions 1 and 0 . . . . . . . . . . . . . . 26) s 5 404 M ( 11. Trademark Issues . . . . . . . . . . . . . . . . . . . . . . 27) s 5 393 M ( References . . . . . . . . . . . . . . . . . . . . . . . . . 28) s 5 382 M ( Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 28) s 5 371 M ( Full Copyright Statement . . . . . . . . . . . . . . . . . . 29) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 2]) s _R S PStoPSsaved restore %%Page: (2,3) 2 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 3 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (1. Introduction) s 5 668 M ( This protocol provides secure file transfer \(and more generally file) s 5 657 M ( system access\) functionality over a reliable data stream, such as a) s 5 646 M ( channel in the SSH2 protocol [3].) s 5 624 M ( This protocol is designed so that it could be used to implement a) s 5 613 M ( secure remote file system service, as well as a secure file transfer) s 5 602 M ( service.) s 5 580 M ( This protocol assumes that it runs over a secure channel, and that) s 5 569 M ( the server has already authenticated the user at the client end, and) s 5 558 M ( that the identity of the client user is externally available to the) s 5 547 M ( server implementation.) s 5 525 M ( In general, this protocol follows a simple request-response model.) s 5 514 M ( Each request and response contains a sequence number and multiple) s 5 503 M ( requests may be pending simultaneously. There are a relatively large) s 5 492 M ( number of different request messages, but a small number of possible) s 5 481 M ( response messages. Each request has one or more response messages) s 5 470 M ( that may be returned in result \(e.g., a read either returns data or) s 5 459 M ( reports error status\).) s 5 437 M ( The packet format descriptions in this specification follow the) s 5 426 M ( notation presented in the secsh architecture draft.[3].) s 5 404 M ( Even though this protocol is described in the context of the SSH2) s 5 393 M ( protocol, this protocol is general and independent of the rest of the) s 5 382 M ( SSH2 protocol suite. It could be used in a number of different) s 5 371 M ( applications, such as secure file transfer over TLS RFC 2246 [1] and) s 5 360 M ( transfer of management information in VPN applications.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 3]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 4 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (2. Use with the SSH Connection Protocol) s 5 668 M ( When used with the SSH2 Protocol suite, this protocol is intended to) s 5 657 M ( be used from the SSH Connection Protocol [5] as a subsystem, as) s 5 646 M ( described in section ``Starting a Shell or a Command''. The) s 5 635 M ( subsystem name used with this protocol is "sftp".) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 4]) s _R S PStoPSsaved restore %%Page: (4,5) 3 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 5 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (3. General Packet Format) s 5 668 M ( All packets transmitted over the secure connection are of the) s 5 657 M ( following format:) s 5 635 M ( uint32 length) s 5 624 M ( byte type) s 5 613 M ( byte[length - 1] data payload) s 5 591 M ( That is, they are just data preceded by 32-bit length and 8-bit type) s 5 580 M ( fields. The `length' is the length of the data area, and does not) s 5 569 M ( include the `length' field itself. The format and interpretation of) s 5 558 M ( the data area depends on the packet type.) s 5 536 M ( All packet descriptions below only specify the packet type and the) s 5 525 M ( data that goes into the data field. Thus, they should be prefixed by) s 5 514 M ( the `length' and `type' fields.) s 5 492 M ( The maximum size of a packet is in practice determined by the client) s 5 481 M ( \(the maximum size of read or write requests that it sends, plus a few) s 5 470 M ( bytes of packet overhead\). All servers SHOULD support packets of at) s 5 459 M ( least 34000 bytes \(where the packet size refers to the full length,) s 5 448 M ( including the header above\). This should allow for reads and writes) s 5 437 M ( of at most 32768 bytes.) s 5 415 M ( There is no limit on the number of outstanding \(non-acknowledged\)) s 5 404 M ( requests that the client may send to the server. In practice this is) s 5 393 M ( limited by the buffering available on the data stream and the queuing) s 5 382 M ( performed by the server. If the server's queues are full, it should) s 5 371 M ( not read any more data from the stream, and flow control will prevent) s 5 360 M ( the client from sending more requests. Note, however, that while) s 5 349 M ( there is no restriction on the protocol level, the client's API may) s 5 338 M ( provide a limit in order to prevent infinite queuing of outgoing) s 5 327 M ( requests at the client.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 5]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 6 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( The following values are defined for packet types.) s 5 668 M ( #define SSH_FXP_INIT 1) s 5 657 M ( #define SSH_FXP_VERSION 2) s 5 646 M ( #define SSH_FXP_OPEN 3) s 5 635 M ( #define SSH_FXP_CLOSE 4) s 5 624 M ( #define SSH_FXP_READ 5) s 5 613 M ( #define SSH_FXP_WRITE 6) s 5 602 M ( #define SSH_FXP_LSTAT 7) s 5 591 M ( #define SSH_FXP_FSTAT 8) s 5 580 M ( #define SSH_FXP_SETSTAT 9) s 5 569 M ( #define SSH_FXP_FSETSTAT 10) s 5 558 M ( #define SSH_FXP_OPENDIR 11) s 5 547 M ( #define SSH_FXP_READDIR 12) s 5 536 M ( #define SSH_FXP_REMOVE 13) s 5 525 M ( #define SSH_FXP_MKDIR 14) s 5 514 M ( #define SSH_FXP_RMDIR 15) s 5 503 M ( #define SSH_FXP_REALPATH 16) s 5 492 M ( #define SSH_FXP_STAT 17) s 5 481 M ( #define SSH_FXP_RENAME 18) s 5 470 M ( #define SSH_FXP_READLINK 19) s 5 459 M ( #define SSH_FXP_SYMLINK 20) s 5 448 M ( #define SSH_FXP_STATUS 101) s 5 437 M ( #define SSH_FXP_HANDLE 102) s 5 426 M ( #define SSH_FXP_DATA 103) s 5 415 M ( #define SSH_FXP_NAME 104) s 5 404 M ( #define SSH_FXP_ATTRS 105) s 5 393 M ( #define SSH_FXP_EXTENDED 200) s 5 382 M ( #define SSH_FXP_EXTENDED_REPLY 201) s 5 360 M ( Additional packet types should only be defined if the protocol) s 5 349 M ( version number \(see Section ``Protocol Initialization''\) is) s 5 338 M ( incremented, and their use MUST be negotiated using the version) s 5 327 M ( number. However, the SSH_FXP_EXTENDED and SSH_FXP_EXTENDED_REPLY) s 5 316 M ( packets can be used to implement vendor-specific extensions. See) s 5 305 M ( Section ``Vendor-Specific-Extensions'' for more details.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 6]) s _R S PStoPSsaved restore %%Page: (6,7) 4 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 7 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (4. Protocol Initialization) s 5 668 M ( When the file transfer protocol starts, it first sends a SSH_FXP_INIT) s 5 657 M ( \(including its version number\) packet to the server. The server) s 5 646 M ( responds with a SSH_FXP_VERSION packet, supplying the lowest of its) s 5 635 M ( own and the client's version number. Both parties should from then) s 5 624 M ( on adhere to particular version of the protocol.) s 5 602 M ( The SSH_FXP_INIT packet \(from client to server\) has the following) s 5 591 M ( data:) s 5 569 M ( uint32 version) s 5 558 M ( ) s 5 536 M ( The SSH_FXP_VERSION packet \(from server to client\) has the following) s 5 525 M ( data:) s 5 503 M ( uint32 version) s 5 492 M ( ) s 5 470 M ( The version number of the protocol specified in this document is 3.) s 5 459 M ( The version number should be incremented for each incompatible) s 5 448 M ( revision of this protocol.) s 5 426 M ( The extension data in the above packets may be empty, or may be a) s 5 415 M ( sequence of) s 5 393 M ( string extension_name) s 5 382 M ( string extension_data) s 5 360 M ( pairs \(both strings MUST always be present if one is, but the) s 5 349 M ( `extension_data' string may be of zero length\). If present, these) s 5 338 M ( strings indicate extensions to the baseline protocol. The) s 5 327 M ( `extension_name' field\(s\) identify the name of the extension. The) s 5 316 M ( name should be of the form "name@domain", where the domain is the DNS) s 5 305 M ( domain name of the organization defining the extension. Additional) s 5 294 M ( names that are not of this format may be defined later by the IETF.) s 5 283 M ( Implementations MUST silently ignore any extensions whose name they) s 5 272 M ( do not recognize.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 7]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 8 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (5. File Attributes) s 5 668 M ( A new compound data type is defined for encoding file attributes. It) s 5 657 M ( is basically just a combination of elementary types, but is defined) s 5 646 M ( once because of the non-trivial description of the fields and to) s 5 635 M ( ensure maintainability.) s 5 613 M ( The same encoding is used both when returning file attributes from) s 5 602 M ( the server and when sending file attributes to the server. When) s 5 591 M ( sending it to the server, the flags field specifies which attributes) s 5 580 M ( are included, and the server will use default values for the) s 5 569 M ( remaining attributes \(or will not modify the values of remaining) s 5 558 M ( attributes\). When receiving attributes from the server, the flags) s 5 547 M ( specify which attributes are included in the returned data. The) s 5 536 M ( server normally returns all attributes it knows about.) s 5 514 M ( uint32 flags) s 5 503 M ( uint64 size present only if flag SSH_FILEXFER_ATTR_SIZE) s 5 492 M ( uint32 uid present only if flag SSH_FILEXFER_ATTR_UIDGID) s 5 481 M ( uint32 gid present only if flag SSH_FILEXFER_ATTR_UIDGID) s 5 470 M ( uint32 permissions present only if flag SSH_FILEXFER_ATTR_PERMISSIONS) s 5 459 M ( uint32 atime present only if flag SSH_FILEXFER_ACMODTIME) s 5 448 M ( uint32 mtime present only if flag SSH_FILEXFER_ACMODTIME) s 5 437 M ( uint32 extended_count present only if flag SSH_FILEXFER_ATTR_EXTENDED) s 5 426 M ( string extended_type) s 5 415 M ( string extended_data) s 5 404 M ( ... more extended data \(extended_type - extended_data pairs\),) s 5 393 M ( so that number of pairs equals extended_count) s 5 371 M ( The `flags' specify which of the fields are present. Those fields) s 5 360 M ( for which the corresponding flag is not set are not present \(not) s 5 349 M ( included in the packet\). New flags can only be added by incrementing) s 5 338 M ( the protocol version number \(or by using the extension mechanism) s 5 327 M ( described below\).) s 5 305 M ( The `size' field specifies the size of the file in bytes.) s 5 283 M ( The `uid' and `gid' fields contain numeric Unix-like user and group) s 5 272 M ( identifiers, respectively.) s 5 250 M ( The `permissions' field contains a bit mask of file permissions as) s 5 239 M ( defined by posix [1].) s 5 217 M ( The `atime' and `mtime' contain the access and modification times of) s 5 206 M ( the files, respectively. They are represented as seconds from Jan 1,) s 5 195 M ( 1970 in UTC.) s 5 173 M ( The SSH_FILEXFER_ATTR_EXTENDED flag provides a general extension) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 8]) s _R S PStoPSsaved restore %%Page: (8,9) 5 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 9 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( mechanism for vendor-specific extensions. If the flag is specified,) s 5 679 M ( then the `extended_count' field is present. It specifies the number) s 5 668 M ( of extended_type-extended_data pairs that follow. Each of these) s 5 657 M ( pairs specifies an extended attribute. For each of the attributes,) s 5 646 M ( the extended_type field should be a string of the format) s 5 635 M ( "name@domain", where "domain" is a valid, registered domain name and) s 5 624 M ( "name" identifies the method. The IETF may later standardize certain) s 5 613 M ( names that deviate from this format \(e.g., that do not contain the) s 5 602 M ( "@" sign\). The interpretation of `extended_data' depends on the) s 5 591 M ( type. Implementations SHOULD ignore extended data fields that they) s 5 580 M ( do not understand.) s 5 558 M ( Additional fields can be added to the attributes by either defining) s 5 547 M ( additional bits to the flags field to indicate their presence, or by) s 5 536 M ( defining extended attributes for them. The extended attributes) s 5 525 M ( mechanism is recommended for most purposes; additional flags bits) s 5 514 M ( should only be defined by an IETF standards action that also) s 5 503 M ( increments the protocol version number. The use of such new fields) s 5 492 M ( MUST be negotiated by the version number in the protocol exchange.) s 5 481 M ( It is a protocol error if a packet with unsupported protocol bits is) s 5 470 M ( received.) s 5 448 M ( The flags bits are defined to have the following values:) s 5 426 M ( #define SSH_FILEXFER_ATTR_SIZE 0x00000001) s 5 415 M ( #define SSH_FILEXFER_ATTR_UIDGID 0x00000002) s 5 404 M ( #define SSH_FILEXFER_ATTR_PERMISSIONS 0x00000004) s 5 393 M ( #define SSH_FILEXFER_ATTR_ACMODTIME 0x00000008) s 5 382 M ( #define SSH_FILEXFER_ATTR_EXTENDED 0x80000000) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 9]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 10 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (6. Requests From the Client to the Server) s 5 668 M ( Requests from the client to the server represent the various file) s 5 657 M ( system operations. Each request begins with an `id' field, which is) s 5 646 M ( a 32-bit identifier identifying the request \(selected by the client\).) s 5 635 M ( The same identifier will be returned in the response to the request.) s 5 624 M ( One possible implementation of it is a monotonically increasing) s 5 613 M ( request sequence number \(modulo 2^32\).) s 5 591 M ( Many operations in the protocol operate on open files. The) s 5 580 M ( SSH_FXP_OPEN request can return a file handle \(which is an opaque) s 5 569 M ( variable-length string\) which may be used to access the file later) s 5 558 M ( \(e.g. in a read operation\). The client MUST NOT send requests the) s 5 547 M ( server with bogus or closed handles. However, the server MUST) s 5 536 M ( perform adequate checks on the handle in order to avoid security) s 5 525 M ( risks due to fabricated handles.) s 5 503 M ( This design allows either stateful and stateless server) s 5 492 M ( implementation, as well as an implementation which caches state) s 5 481 M ( between requests but may also flush it. The contents of the file) s 5 470 M ( handle string are entirely up to the server and its design. The) s 5 459 M ( client should not modify or attempt to interpret the file handle) s 5 448 M ( strings.) s 5 426 M ( The file handle strings MUST NOT be longer than 256 bytes.) s 5 404 M (6.1 Request Synchronization and Reordering) s 5 382 M ( The protocol and implementations MUST process requests relating to) s 5 371 M ( the same file in the order in which they are received. In other) s 5 360 M ( words, if an application submits multiple requests to the server, the) s 5 349 M ( results in the responses will be the same as if it had sent the) s 5 338 M ( requests one at a time and waited for the response in each case. For) s 5 327 M ( example, the server may process non-overlapping read/write requests) s 5 316 M ( to the same file in parallel, but overlapping reads and writes cannot) s 5 305 M ( be reordered or parallelized. However, there are no ordering) s 5 294 M ( restrictions on the server for processing requests from two different) s 5 283 M ( file transfer connections. The server may interleave and parallelize) s 5 272 M ( them at will.) s 5 250 M ( There are no restrictions on the order in which responses to) s 5 239 M ( outstanding requests are delivered to the client, except that the) s 5 228 M ( server must ensure fairness in the sense that processing of no) s 5 217 M ( request will be indefinitely delayed even if the client is sending) s 5 206 M ( other requests so that there are multiple outstanding requests all) s 5 195 M ( the time.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 10]) s _R S PStoPSsaved restore %%Page: (10,11) 6 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 11 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (6.2 File Names) s 5 668 M ( This protocol represents file names as strings. File names are) s 5 657 M ( assumed to use the slash \('/'\) character as a directory separator.) s 5 635 M ( File names starting with a slash are "absolute", and are relative to) s 5 624 M ( the root of the file system. Names starting with any other character) s 5 613 M ( are relative to the user's default directory \(home directory\). Note) s 5 602 M ( that identifying the user is assumed to take place outside of this) s 5 591 M ( protocol.) s 5 569 M ( Servers SHOULD interpret a path name component ".." as referring to) s 5 558 M ( the parent directory, and "." as referring to the current directory.) s 5 547 M ( If the server implementation limits access to certain parts of the) s 5 536 M ( file system, it must be extra careful in parsing file names when) s 5 525 M ( enforcing such restrictions. There have been numerous reported) s 5 514 M ( security bugs where a ".." in a path name has allowed access outside) s 5 503 M ( the intended area.) s 5 481 M ( An empty path name is valid, and it refers to the user's default) s 5 470 M ( directory \(usually the user's home directory\).) s 5 448 M ( Otherwise, no syntax is defined for file names by this specification.) s 5 437 M ( Clients should not make any other assumptions; however, they can) s 5 426 M ( splice path name components returned by SSH_FXP_READDIR together) s 5 415 M ( using a slash \('/'\) as the separator, and that will work as expected.) s 5 393 M ( It is understood that the lack of well-defined semantics for file) s 5 382 M ( names may cause interoperability problems between clients and servers) s 5 371 M ( using radically different operating systems. However, this approach) s 5 360 M ( is known to work acceptably with most systems, and alternative) s 5 349 M ( approaches that e.g. treat file names as sequences of structured) s 5 338 M ( components are quite complicated.) s 5 316 M (6.3 Opening, Creating, and Closing Files) s 5 294 M ( Files are opened and created using the SSH_FXP_OPEN message, whose) s 5 283 M ( data part is as follows:) s 5 261 M ( uint32 id) s 5 250 M ( string filename) s 5 239 M ( uint32 pflags) s 5 228 M ( ATTRS attrs) s 5 206 M ( The `id' field is the request identifier as for all requests.) s 5 184 M ( The `filename' field specifies the file name. See Section ``File) s 5 173 M ( Names'' for more information.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 11]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 12 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( The `pflags' field is a bitmask. The following bits have been) s 5 679 M ( defined.) s 5 657 M ( #define SSH_FXF_READ 0x00000001) s 5 646 M ( #define SSH_FXF_WRITE 0x00000002) s 5 635 M ( #define SSH_FXF_APPEND 0x00000004) s 5 624 M ( #define SSH_FXF_CREAT 0x00000008) s 5 613 M ( #define SSH_FXF_TRUNC 0x00000010) s 5 602 M ( #define SSH_FXF_EXCL 0x00000020) s 5 580 M ( These have the following meanings:) s 5 558 M ( SSH_FXF_READ) s 5 547 M ( Open the file for reading.) s 5 525 M ( SSH_FXF_WRITE) s 5 514 M ( Open the file for writing. If both this and SSH_FXF_READ are) s 5 503 M ( specified, the file is opened for both reading and writing.) s 5 481 M ( SSH_FXF_APPEND) s 5 470 M ( Force all writes to append data at the end of the file.) s 5 448 M ( SSH_FXF_CREAT) s 5 437 M ( If this flag is specified, then a new file will be created if one) s 5 426 M ( does not already exist \(if O_TRUNC is specified, the new file will) s 5 415 M ( be truncated to zero length if it previously exists\).) s 5 393 M ( SSH_FXF_TRUNC) s 5 382 M ( Forces an existing file with the same name to be truncated to zero) s 5 371 M ( length when creating a file by specifying SSH_FXF_CREAT.) s 5 360 M ( SSH_FXF_CREAT MUST also be specified if this flag is used.) s 5 338 M ( SSH_FXF_EXCL) s 5 327 M ( Causes the request to fail if the named file already exists.) s 5 316 M ( SSH_FXF_CREAT MUST also be specified if this flag is used.) s 5 294 M ( The `attrs' field specifies the initial attributes for the file.) s 5 283 M ( Default values will be used for those attributes that are not) s 5 272 M ( specified. See Section ``File Attributes'' for more information.) s 5 250 M ( Regardless the server operating system, the file will always be) s 5 239 M ( opened in "binary" mode \(i.e., no translations between different) s 5 228 M ( character sets and newline encodings\).) s 5 206 M ( The response to this message will be either SSH_FXP_HANDLE \(if the) s 5 195 M ( operation is successful\) or SSH_FXP_STATUS \(if the operation fails\).) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 12]) s _R S PStoPSsaved restore %%Page: (12,13) 7 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 13 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( A file is closed by using the SSH_FXP_CLOSE request. Its data field) s 5 679 M ( has the following format:) s 5 657 M ( uint32 id) s 5 646 M ( string handle) s 5 624 M ( where `id' is the request identifier, and `handle' is a handle) s 5 613 M ( previously returned in the response to SSH_FXP_OPEN or) s 5 602 M ( SSH_FXP_OPENDIR. The handle becomes invalid immediately after this) s 5 591 M ( request has been sent.) s 5 569 M ( The response to this request will be a SSH_FXP_STATUS message. One) s 5 558 M ( should note that on some server platforms even a close can fail.) s 5 547 M ( This can happen e.g. if the server operating system caches writes,) s 5 536 M ( and an error occurs while flushing cached writes during the close.) s 5 514 M (6.4 Reading and Writing) s 5 492 M ( Once a file has been opened, it can be read using the SSH_FXP_READ) s 5 481 M ( message, which has the following format:) s 5 459 M ( uint32 id) s 5 448 M ( string handle) s 5 437 M ( uint64 offset) s 5 426 M ( uint32 len) s 5 404 M ( where `id' is the request identifier, `handle' is an open file handle) s 5 393 M ( returned by SSH_FXP_OPEN, `offset' is the offset \(in bytes\) relative) s 5 382 M ( to the beginning of the file from where to start reading, and `len') s 5 371 M ( is the maximum number of bytes to read.) s 5 349 M ( In response to this request, the server will read as many bytes as it) s 5 338 M ( can from the file \(up to `len'\), and return them in a SSH_FXP_DATA) s 5 327 M ( message. If an error occurs or EOF is encountered before reading any) s 5 316 M ( data, the server will respond with SSH_FXP_STATUS. For normal disk) s 5 305 M ( files, it is guaranteed that this will read the specified number of) s 5 294 M ( bytes, or up to end of file. For e.g. device files this may return) s 5 283 M ( fewer bytes than requested.) s 5 261 M ( Writing to a file is achieved using the SSH_FXP_WRITE message, which) s 5 250 M ( has the following format:) s 5 228 M ( uint32 id) s 5 217 M ( string handle) s 5 206 M ( uint64 offset) s 5 195 M ( string data) s 5 173 M ( where `id' is a request identifier, `handle' is a file handle) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 13]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 14 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( returned by SSH_FXP_OPEN, `offset' is the offset \(in bytes\) from the) s 5 679 M ( beginning of the file where to start writing, and `data' is the data) s 5 668 M ( to be written.) s 5 646 M ( The write will extend the file if writing beyond the end of the file.) s 5 635 M ( It is legal to write way beyond the end of the file; the semantics) s 5 624 M ( are to write zeroes from the end of the file to the specified offset) s 5 613 M ( and then the data. On most operating systems, such writes do not) s 5 602 M ( allocate disk space but instead leave "holes" in the file.) s 5 580 M ( The server responds to a write request with a SSH_FXP_STATUS message.) s 5 558 M (6.5 Removing and Renaming Files) s 5 536 M ( Files can be removed using the SSH_FXP_REMOVE message. It has the) s 5 525 M ( following format:) s 5 503 M ( uint32 id) s 5 492 M ( string filename) s 5 470 M ( where `id' is the request identifier and `filename' is the name of) s 5 459 M ( the file to be removed. See Section ``File Names'' for more) s 5 448 M ( information. This request cannot be used to remove directories.) s 5 426 M ( The server will respond to this request with a SSH_FXP_STATUS) s 5 415 M ( message.) s 5 393 M ( Files \(and directories\) can be renamed using the SSH_FXP_RENAME) s 5 382 M ( message. Its data is as follows:) s 5 360 M ( uint32 id) s 5 349 M ( string oldpath) s 5 338 M ( string newpath) s 5 316 M ( where `id' is the request identifier, `oldpath' is the name of an) s 5 305 M ( existing file or directory, and `newpath' is the new name for the) s 5 294 M ( file or directory. It is an error if there already exists a file) s 5 283 M ( with the name specified by newpath. The server may also fail rename) s 5 272 M ( requests in other situations, for example if `oldpath' and `newpath') s 5 261 M ( point to different file systems on the server.) s 5 239 M ( The server will respond to this request with a SSH_FXP_STATUS) s 5 228 M ( message.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 14]) s _R S PStoPSsaved restore %%Page: (14,15) 8 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 15 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (6.6 Creating and Deleting Directories) s 5 668 M ( New directories can be created using the SSH_FXP_MKDIR request. It) s 5 657 M ( has the following format:) s 5 635 M ( uint32 id) s 5 624 M ( string path) s 5 613 M ( ATTRS attrs) s 5 591 M ( where `id' is the request identifier, `path' and `attrs' specifies) s 5 580 M ( the modifications to be made to its attributes. See Section ``File) s 5 569 M ( Names'' for more information on file names. Attributes are discussed) s 5 558 M ( in more detail in Section ``File Attributes''. specifies the) s 5 547 M ( directory to be created. An error will be returned if a file or) s 5 536 M ( directory with the specified path already exists. The server will) s 5 525 M ( respond to this request with a SSH_FXP_STATUS message.) s 5 503 M ( Directories can be removed using the SSH_FXP_RMDIR request, which) s 5 492 M ( has the following format:) s 5 470 M ( uint32 id) s 5 459 M ( string path) s 5 437 M ( where `id' is the request identifier, and `path' specifies the) s 5 426 M ( directory to be removed. See Section ``File Names'' for more) s 5 415 M ( information on file names. An error will be returned if no directory) s 5 404 M ( with the specified path exists, or if the specified directory is not) s 5 393 M ( empty, or if the path specified a file system object other than a) s 5 382 M ( directory. The server responds to this request with a SSH_FXP_STATUS) s 5 371 M ( message.) s 5 349 M (6.7 Scanning Directories) s 5 327 M ( The files in a directory can be listed using the SSH_FXP_OPENDIR and) s 5 316 M ( SSH_FXP_READDIR requests. Each SSH_FXP_READDIR request returns one) s 5 305 M ( or more file names with full file attributes for each file. The) s 5 294 M ( client should call SSH_FXP_READDIR repeatedly until it has found the) s 5 283 M ( file it is looking for or until the server responds with a) s 5 272 M ( SSH_FXP_STATUS message indicating an error \(normally SSH_FX_EOF if) s 5 261 M ( there are no more files in the directory\). The client should then) s 5 250 M ( close the handle using the SSH_FXP_CLOSE request.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 15]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 16 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( The SSH_FXP_OPENDIR opens a directory for reading. It has the) s 5 679 M ( following format:) s 5 657 M ( uint32 id) s 5 646 M ( string path) s 5 624 M ( where `id' is the request identifier and `path' is the path name of) s 5 613 M ( the directory to be listed \(without any trailing slash\). See Section) s 5 602 M ( ``File Names'' for more information on file names. This will return) s 5 591 M ( an error if the path does not specify a directory or if the directory) s 5 580 M ( is not readable. The server will respond to this request with either) s 5 569 M ( a SSH_FXP_HANDLE or a SSH_FXP_STATUS message.) s 5 547 M ( Once the directory has been successfully opened, files \(and) s 5 536 M ( directories\) contained in it can be listed using SSH_FXP_READDIR) s 5 525 M ( requests. These are of the format) s 5 503 M ( uint32 id) s 5 492 M ( string handle) s 5 470 M ( where `id' is the request identifier, and `handle' is a handle) s 5 459 M ( returned by SSH_FXP_OPENDIR. \(It is a protocol error to attempt to) s 5 448 M ( use an ordinary file handle returned by SSH_FXP_OPEN.\)) s 5 426 M ( The server responds to this request with either a SSH_FXP_NAME or a) s 5 415 M ( SSH_FXP_STATUS message. One or more names may be returned at a time.) s 5 404 M ( Full status information is returned for each name in order to speed) s 5 393 M ( up typical directory listings.) s 5 371 M ( When the client no longer wishes to read more names from the) s 5 360 M ( directory, it SHOULD call SSH_FXP_CLOSE for the handle. The handle) s 5 349 M ( should be closed regardless of whether an error has occurred or not.) s 5 327 M (6.8 Retrieving File Attributes) s 5 305 M ( Very often, file attributes are automatically returned by) s 5 294 M ( SSH_FXP_READDIR. However, sometimes there is need to specifically) s 5 283 M ( retrieve the attributes for a named file. This can be done using the) s 5 272 M ( SSH_FXP_STAT, SSH_FXP_LSTAT and SSH_FXP_FSTAT requests.) s 5 250 M ( SSH_FXP_STAT and SSH_FXP_LSTAT only differ in that SSH_FXP_STAT) s 5 239 M ( follows symbolic links on the server, whereas SSH_FXP_LSTAT does not) s 5 228 M ( follow symbolic links. Both have the same format:) s 5 206 M ( uint32 id) s 5 195 M ( string path) s 5 173 M ( where `id' is the request identifier, and `path' specifies the file) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 16]) s _R S PStoPSsaved restore %%Page: (16,17) 9 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 17 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( system object for which status is to be returned. The server) s 5 679 M ( responds to this request with either SSH_FXP_ATTRS or SSH_FXP_STATUS.) s 5 657 M ( SSH_FXP_FSTAT differs from the others in that it returns status) s 5 646 M ( information for an open file \(identified by the file handle\). Its) s 5 635 M ( format is as follows:) s 5 613 M ( uint32 id) s 5 602 M ( string handle) s 5 580 M ( where `id' is the request identifier and `handle' is a file handle) s 5 569 M ( returned by SSH_FXP_OPEN. The server responds to this request with) s 5 558 M ( SSH_FXP_ATTRS or SSH_FXP_STATUS.) s 5 536 M (6.9 Setting File Attributes) s 5 514 M ( File attributes may be modified using the SSH_FXP_SETSTAT and) s 5 503 M ( SSH_FXP_FSETSTAT requests. These requests are used for operations) s 5 492 M ( such as changing the ownership, permissions or access times, as well) s 5 481 M ( as for truncating a file.) s 5 459 M ( The SSH_FXP_SETSTAT request is of the following format:) s 5 437 M ( uint32 id) s 5 426 M ( string path) s 5 415 M ( ATTRS attrs) s 5 393 M ( where `id' is the request identifier, `path' specifies the file) s 5 382 M ( system object \(e.g. file or directory\) whose attributes are to be) s 5 371 M ( modified, and `attrs' specifies the modifications to be made to its) s 5 360 M ( attributes. Attributes are discussed in more detail in Section) s 5 349 M ( ``File Attributes''.) s 5 327 M ( An error will be returned if the specified file system object does) s 5 316 M ( not exist or the user does not have sufficient rights to modify the) s 5 305 M ( specified attributes. The server responds to this request with a) s 5 294 M ( SSH_FXP_STATUS message.) s 5 272 M ( The SSH_FXP_FSETSTAT request modifies the attributes of a file which) s 5 261 M ( is already open. It has the following format:) s 5 239 M ( uint32 id) s 5 228 M ( string handle) s 5 217 M ( ATTRS attrs) s 5 195 M ( where `id' is the request identifier, `handle' \(MUST be returned by) s 5 184 M ( SSH_FXP_OPEN\) identifies the file whose attributes are to be) s 5 173 M ( modified, and `attrs' specifies the modifications to be made to its) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 17]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 18 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( attributes. Attributes are discussed in more detail in Section) s 5 679 M ( ``File Attributes''. The server will respond to this request with) s 5 668 M ( SSH_FXP_STATUS.) s 5 646 M (6.10 Dealing with Symbolic links) s 5 624 M ( The SSH_FXP_READLINK request may be used to read the target of a) s 5 613 M ( symbolic link. It would have a data part as follows:) s 5 591 M ( uint32 id) s 5 580 M ( string path) s 5 558 M ( where `id' is the request identifier and `path' specifies the path) s 5 547 M ( name of the symlink to be read.) s 5 525 M ( The server will respond with a SSH_FXP_NAME packet containing only) s 5 514 M ( one name and a dummy attributes value. The name in the returned) s 5 503 M ( packet contains the target of the link. If an error occurs, the) s 5 492 M ( server may respond with SSH_FXP_STATUS.) s 5 470 M ( The SSH_FXP_SYMLINK request will create a symbolic link on the) s 5 459 M ( server. It is of the following format) s 5 437 M ( uint32 id) s 5 426 M ( string linkpath) s 5 415 M ( string targetpath) s 5 393 M ( where `id' is the request identifier, `linkpath' specifies the path) s 5 382 M ( name of the symlink to be created and `targetpath' specifies the) s 5 371 M ( target of the symlink. The server shall respond with a) s 5 360 M ( SSH_FXP_STATUS indicating either success \(SSH_FX_OK\) or an error) s 5 349 M ( condition.) s 5 327 M (6.11 Canonicalizing the Server-Side Path Name) s 5 305 M ( The SSH_FXP_REALPATH request can be used to have the server) s 5 294 M ( canonicalize any given path name to an absolute path. This is useful) s 5 283 M ( for converting path names containing ".." components or relative) s 5 272 M ( pathnames without a leading slash into absolute paths. The format of) s 5 261 M ( the request is as follows:) s 5 239 M ( uint32 id) s 5 228 M ( string path) s 5 206 M ( where `id' is the request identifier and `path' specifies the path) s 5 195 M ( name to be canonicalized. The server will respond with a) s 5 184 M ( SSH_FXP_NAME packet containing only one name and a dummy attributes) s 5 173 M ( value. The name is the returned packet will be in canonical form.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 18]) s _R S PStoPSsaved restore %%Page: (18,19) 10 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 19 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( If an error occurs, the server may also respond with SSH_FXP_STATUS.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 19]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 20 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (7. Responses from the Server to the Client) s 5 668 M ( The server responds to the client using one of a few response) s 5 657 M ( packets. All requests can return a SSH_FXP_STATUS response upon) s 5 646 M ( failure. When the operation is successful, any of the responses may) s 5 635 M ( be returned \(depending on the operation\). If no data needs to be) s 5 624 M ( returned to the client, the SSH_FXP_STATUS response with SSH_FX_OK) s 5 613 M ( status is appropriate. Otherwise, the SSH_FXP_HANDLE message is used) s 5 602 M ( to return a file handle \(for SSH_FXP_OPEN and SSH_FXP_OPENDIR) s 5 591 M ( requests\), SSH_FXP_DATA is used to return data from SSH_FXP_READ,) s 5 580 M ( SSH_FXP_NAME is used to return one or more file names from a) s 5 569 M ( SSH_FXP_READDIR or SSH_FXP_REALPATH request, and SSH_FXP_ATTRS is) s 5 558 M ( used to return file attributes from SSH_FXP_STAT, SSH_FXP_LSTAT, and) s 5 547 M ( SSH_FXP_FSTAT requests.) s 5 525 M ( Exactly one response will be returned for each request. Each) s 5 514 M ( response packet contains a request identifier which can be used to) s 5 503 M ( match each response with the corresponding request. Note that it is) s 5 492 M ( legal to have several requests outstanding simultaneously, and the) s 5 481 M ( server is allowed to send responses to them in a different order from) s 5 470 M ( the order in which the requests were sent \(the result of their) s 5 459 M ( execution, however, is guaranteed to be as if they had been processed) s 5 448 M ( one at a time in the order in which the requests were sent\).) s 5 426 M ( Response packets are of the same general format as request packets.) s 5 415 M ( Each response packet begins with the request identifier.) s 5 393 M ( The format of the data portion of the SSH_FXP_STATUS response is as) s 5 382 M ( follows:) s 5 360 M ( uint32 id) s 5 349 M ( uint32 error/status code) s 5 338 M ( string error message \(ISO-10646 UTF-8 [RFC-2279]\)) s 5 327 M ( string language tag \(as defined in [RFC-1766]\)) s 5 305 M ( where `id' is the request identifier, and `error/status code') s 5 294 M ( indicates the result of the requested operation. The value SSH_FX_OK) s 5 283 M ( indicates success, and all other values indicate failure.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 20]) s _R S PStoPSsaved restore %%Page: (20,21) 11 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 21 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( Currently, the following values are defined \(other values may be) s 5 679 M ( defined by future versions of this protocol\):) s 5 657 M ( #define SSH_FX_OK 0) s 5 646 M ( #define SSH_FX_EOF 1) s 5 635 M ( #define SSH_FX_NO_SUCH_FILE 2) s 5 624 M ( #define SSH_FX_PERMISSION_DENIED 3) s 5 613 M ( #define SSH_FX_FAILURE 4) s 5 602 M ( #define SSH_FX_BAD_MESSAGE 5) s 5 591 M ( #define SSH_FX_NO_CONNECTION 6) s 5 580 M ( #define SSH_FX_CONNECTION_LOST 7) s 5 569 M ( #define SSH_FX_OP_UNSUPPORTED 8) s 5 547 M ( SSH_FX_OK) s 5 536 M ( Indicates successful completion of the operation.) s 5 514 M ( SSH_FX_EOF) s 5 503 M ( indicates end-of-file condition; for SSH_FX_READ it means that no) s 5 492 M ( more data is available in the file, and for SSH_FX_READDIR it) s 5 481 M ( indicates that no more files are contained in the directory.) s 5 459 M ( SSH_FX_NO_SUCH_FILE) s 5 448 M ( is returned when a reference is made to a file which should exist) s 5 437 M ( but doesn't.) s 5 415 M ( SSH_FX_PERMISSION_DENIED) s 5 404 M ( is returned when the authenticated user does not have sufficient) s 5 393 M ( permissions to perform the operation.) s 5 371 M ( SSH_FX_FAILURE) s 5 360 M ( is a generic catch-all error message; it should be returned if an) s 5 349 M ( error occurs for which there is no more specific error code) s 5 338 M ( defined.) s 5 316 M ( SSH_FX_BAD_MESSAGE) s 5 305 M ( may be returned if a badly formatted packet or protocol) s 5 294 M ( incompatibility is detected.) s 5 272 M ( SSH_FX_NO_CONNECTION) s 5 261 M ( is a pseudo-error which indicates that the client has no) s 5 250 M ( connection to the server \(it can only be generated locally by the) s 5 239 M ( client, and MUST NOT be returned by servers\).) s 5 217 M ( SSH_FX_CONNECTION_LOST) s 5 206 M ( is a pseudo-error which indicates that the connection to the) s 5 195 M ( server has been lost \(it can only be generated locally by the) s 5 184 M ( client, and MUST NOT be returned by servers\).) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 21]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 22 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( SSH_FX_OP_UNSUPPORTED) s 5 679 M ( indicates that an attempt was made to perform an operation which) s 5 668 M ( is not supported for the server \(it may be generated locally by) s 5 657 M ( the client if e.g. the version number exchange indicates that a) s 5 646 M ( required feature is not supported by the server, or it may be) s 5 635 M ( returned by the server if the server does not implement an) s 5 624 M ( operation\).) s 5 602 M ( The SSH_FXP_HANDLE response has the following format:) s 5 580 M ( uint32 id) s 5 569 M ( string handle) s 5 547 M ( where `id' is the request identifier, and `handle' is an arbitrary) s 5 536 M ( string that identifies an open file or directory on the server. The) s 5 525 M ( handle is opaque to the client; the client MUST NOT attempt to) s 5 514 M ( interpret or modify it in any way. The length of the handle string) s 5 503 M ( MUST NOT exceed 256 data bytes.) s 5 481 M ( The SSH_FXP_DATA response has the following format:) s 5 459 M ( uint32 id) s 5 448 M ( string data) s 5 426 M ( where `id' is the request identifier, and `data' is an arbitrary byte) s 5 415 M ( string containing the requested data. The data string may be at most) s 5 404 M ( the number of bytes requested in a SSH_FXP_READ request, but may also) s 5 393 M ( be shorter if end of file is reached or if the read is from something) s 5 382 M ( other than a regular file.) s 5 360 M ( The SSH_FXP_NAME response has the following format:) s 5 338 M ( uint32 id) s 5 327 M ( uint32 count) s 5 316 M ( repeats count times:) s 5 305 M ( string filename) s 5 294 M ( string longname) s 5 283 M ( ATTRS attrs) s 5 261 M ( where `id' is the request identifier, `count' is the number of names) s 5 250 M ( returned in this response, and the remaining fields repeat `count') s 5 239 M ( times \(so that all three fields are first included for the first) s 5 228 M ( file, then for the second file, etc\). In the repeated part,) s 5 217 M ( `filename' is a file name being returned \(for SSH_FXP_READDIR, it) s 5 206 M ( will be a relative name within the directory, without any path) s 5 195 M ( components; for SSH_FXP_REALPATH it will be an absolute path name\),) s 5 184 M ( `longname' is an expanded format for the file name, similar to what) s 5 173 M ( is returned by "ls -l" on Unix systems, and `attrs' is the attributes) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 22]) s _R S PStoPSsaved restore %%Page: (22,23) 12 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 23 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M ( of the file as described in Section ``File Attributes''.) s 5 668 M ( The format of the `longname' field is unspecified by this protocol.) s 5 657 M ( It MUST be suitable for use in the output of a directory listing) s 5 646 M ( command \(in fact, the recommended operation for a directory listing) s 5 635 M ( command is to simply display this data\). However, clients SHOULD NOT) s 5 624 M ( attempt to parse the longname field for file attributes; they SHOULD) s 5 613 M ( use the attrs field instead.) s 5 591 M ( The recommended format for the longname field is as follows:) s 5 569 M ( -rwxr-xr-x 1 mjos staff 348911 Mar 25 14:29 t-filexfer) s 5 558 M ( 1234567890 123 12345678 12345678 12345678 123456789012) s 5 536 M ( Here, the first line is sample output, and the second field indicates) s 5 525 M ( widths of the various fields. Fields are separated by spaces. The) s 5 514 M ( first field lists file permissions for user, group, and others; the) s 5 503 M ( second field is link count; the third field is the name of the user) s 5 492 M ( who owns the file; the fourth field is the name of the group that) s 5 481 M ( owns the file; the fifth field is the size of the file in bytes; the) s 5 470 M ( sixth field \(which actually may contain spaces, but is fixed to 12) s 5 459 M ( characters\) is the file modification time, and the seventh field is) s 5 448 M ( the file name. Each field is specified to be a minimum of certain) s 5 437 M ( number of character positions \(indicated by the second line above\),) s 5 426 M ( but may also be longer if the data does not fit in the specified) s 5 415 M ( length.) s 5 393 M ( The SSH_FXP_ATTRS response has the following format:) s 5 371 M ( uint32 id) s 5 360 M ( ATTRS attrs) s 5 338 M ( where `id' is the request identifier, and `attrs' is the returned) s 5 327 M ( file attributes as described in Section ``File Attributes''.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 23]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 24 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (8. Vendor-Specific Extensions) s 5 668 M ( The SSH_FXP_EXTENDED request provides a generic extension mechanism) s 5 657 M ( for adding vendor-specific commands. The request has the following) s 5 646 M ( format:) s 5 624 M ( uint32 id) s 5 613 M ( string extended-request) s 5 602 M ( ... any request-specific data ...) s 5 580 M ( where `id' is the request identifier, and `extended-request' is a) s 5 569 M ( string of the format "name@domain", where domain is an internet) s 5 558 M ( domain name of the vendor defining the request. The rest of the) s 5 547 M ( request is completely vendor-specific, and servers should only) s 5 536 M ( attempt to interpret it if they recognize the `extended-request') s 5 525 M ( name.) s 5 503 M ( The server may respond to such requests using any of the response) s 5 492 M ( packets defined in Section ``Responses from the Server to the) s 5 481 M ( Client''. Additionally, the server may also respond with a) s 5 470 M ( SSH_FXP_EXTENDED_REPLY packet, as defined below. If the server does) s 5 459 M ( not recognize the `extended-request' name, then the server MUST) s 5 448 M ( respond with SSH_FXP_STATUS with error/status set to) s 5 437 M ( SSH_FX_OP_UNSUPPORTED.) s 5 415 M ( The SSH_FXP_EXTENDED_REPLY packet can be used to carry arbitrary) s 5 404 M ( extension-specific data from the server to the client. It is of the) s 5 393 M ( following format:) s 5 371 M ( uint32 id) s 5 360 M ( ... any request-specific data ...) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 24]) s _R S PStoPSsaved restore %%Page: (24,25) 13 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 25 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (9. Security Considerations) s 5 668 M ( This protocol assumes that it is run over a secure channel and that) s 5 657 M ( the endpoints of the channel have been authenticated. Thus, this) s 5 646 M ( protocol assumes that it is externally protected from network-level) s 5 635 M ( attacks.) s 5 613 M ( This protocol provides file system access to arbitrary files on the) s 5 602 M ( server \(only constrained by the server implementation\). It is the) s 5 591 M ( responsibility of the server implementation to enforce any access) s 5 580 M ( controls that may be required to limit the access allowed for any) s 5 569 M ( particular user \(the user being authenticated externally to this) s 5 558 M ( protocol, typically using the SSH User Authentication Protocol [6].) s 5 536 M ( Care must be taken in the server implementation to check the validity) s 5 525 M ( of received file handle strings. The server should not rely on them) s 5 514 M ( directly; it MUST check the validity of each handle before relying on) s 5 503 M ( it.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 25]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 26 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (10. Changes from previous protocol versions) s 5 668 M ( The SSH File Transfer Protocol has changed over time, before it's) s 5 657 M ( standardization. The following is a description of the incompatible) s 5 646 M ( changes between different versions.) s 5 624 M (10.1 Changes between versions 3 and 2) s 5 602 M ( o The SSH_FXP_READLINK and SSH_FXP_SYMLINK messages were added.) s 5 580 M ( o The SSH_FXP_EXTENDED and SSH_FXP_EXTENDED_REPLY messages were) s 5 569 M ( added.) s 5 547 M ( o The SSH_FXP_STATUS message was changed to include fields `error) s 5 536 M ( message' and `language tag'.) s 5 503 M (10.2 Changes between versions 2 and 1) s 5 481 M ( o The SSH_FXP_RENAME message was added.) s 5 448 M (10.3 Changes between versions 1 and 0) s 5 426 M ( o Implementation changes, no actual protocol changes.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 26]) s _R S PStoPSsaved restore %%Page: (26,27) 14 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 27 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (11. Trademark Issues) s 5 668 M ( "ssh" is a registered trademark of SSH Communications Security Corp) s 5 657 M ( in the United States and/or other countries.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 27]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 28 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (References) s 5 668 M ( [1] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A. and) s 5 657 M ( P. Kocher, "The TLS Protocol Version 1.0", RFC 2246, January) s 5 646 M ( 1999.) s 5 624 M ( [2] Institute of Electrical and Electronics Engineers, "Information) s 5 613 M ( Technology - Portable Operating System Interface \(POSIX\) - Part) s 5 602 M ( 1: System Application Program Interface \(API\) [C Language]",) s 5 591 M ( IEEE Standard 1003.2, 1996.) s 5 569 M ( [3] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S.) s 5 558 M ( Lehtinen, "SSH Protocol Architecture", draft-ietf-secsh-) s 5 547 M ( architecture-09 \(work in progress\), July 2001.) s 5 525 M ( [4] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S.) s 5 514 M ( Lehtinen, "SSH Protocol Transport Protocol", draft-ietf-secsh-) s 5 503 M ( architecture-09 \(work in progress\), July 2001.) s 5 481 M ( [5] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S.) s 5 470 M ( Lehtinen, "SSH Connection Protocol", draft-ietf-secsh-connect-11) s 5 459 M ( \(work in progress\), July 2001.) s 5 437 M ( [6] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S.) s 5 426 M ( Lehtinen, "SSH Authentication Protocol", draft-ietf-secsh-) s 5 415 M ( userauth-11 \(work in progress\), July 2001.) s 5 382 M (Authors' Addresses) s 5 360 M ( Tatu Ylonen) s 5 349 M ( SSH Communications Security Corp) s 5 338 M ( Fredrikinkatu 42) s 5 327 M ( HELSINKI FIN-00100) s 5 316 M ( Finland) s 5 294 M ( EMail: ylo@ssh.com) s 5 261 M ( Sami Lehtinen) s 5 250 M ( SSH Communications Security Corp) s 5 239 M ( Fredrikinkatu 42) s 5 228 M ( HELSINKI FIN-00100) s 5 217 M ( Finland) s 5 195 M ( EMail: sjl@ssh.com) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 28]) s _R S PStoPSsaved restore %%Page: (28,29) 15 userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 0.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip /showpage{}def/copypage{}def/erasepage{}def PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 29 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup 5 723 M (Internet-Draft SSH File Transfer Protocol October 2001) s 5 690 M (Full Copyright Statement) s 5 668 M ( Copyright \(C\) The Internet Society \(2001\). All Rights Reserved.) s 5 646 M ( This document and translations of it may be copied and furnished to) s 5 635 M ( others, and derivative works that comment on or otherwise explain it) s 5 624 M ( or assist in its implementation may be prepared, copied, published) s 5 613 M ( and distributed, in whole or in part, without restriction of any) s 5 602 M ( kind, provided that the above copyright notice and this paragraph are) s 5 591 M ( included on all such copies and derivative works. However, this) s 5 580 M ( document itself may not be modified in any way, such as by removing) s 5 569 M ( the copyright notice or references to the Internet Society or other) s 5 558 M ( Internet organizations, except as needed for the purpose of) s 5 547 M ( developing Internet standards in which case the procedures for) s 5 536 M ( copyrights defined in the Internet Standards process must be) s 5 525 M ( followed, or as required to translate it into languages other than) s 5 514 M ( English.) s 5 492 M ( The limited permissions granted above are perpetual and will not be) s 5 481 M ( revoked by the Internet Society or its successors or assigns.) s 5 459 M ( This document and the information contained herein is provided on an) s 5 448 M ( "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING) s 5 437 M ( TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING) s 5 426 M ( BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION) s 5 415 M ( HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF) s 5 404 M ( MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.) s 5 382 M (Acknowledgement) s 5 360 M ( Funding for the RFC Editor function is currently provided by the) s 5 349 M ( Internet Society.) s 5 129 M (Ylonen & Lehtinen Expires April 1, 2002 [Page 29]) s _R S PStoPSsaved restore userdict/PStoPSsaved save put PStoPSmatrix setmatrix 595.000000 421.271378 translate 90 rotate 0.706651 dup scale userdict/PStoPSmatrix matrix currentmatrix put userdict/PStoPSclip{0 0 moveto 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto closepath}put initclip PStoPSxform concat %%BeginPageSetup _S 75 0 translate /pagenum 30 def /fname () def /fdir () def /ftail () def /user_header_p false def %%EndPageSetup _R S PStoPSsaved restore %%Trailer %%Pages: 30 %%DocumentNeededResources: font Courier-Bold Courier %%EOF