From efdae28df6a61d333f8b5082b9fefe6aff793314 Mon Sep 17 00:00:00 2001 From: Jeff Bigler Date: Thu, 29 Aug 1996 20:33:35 +0000 Subject: [PATCH] man page rewrite from Cygnus. (Got rid of dependency on tmac.doc, which breaks under HP-UX) git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9004 dc483132-0cff-0310-8789-dd5450dbe970 --- src/appl/gssftp/ftp/ftp.M | 1781 ++++++++++++++++------------------- src/appl/gssftp/ftpd/ftpd.M | 660 +++++++------ 2 files changed, 1225 insertions(+), 1216 deletions(-) diff --git a/src/appl/gssftp/ftp/ftp.M b/src/appl/gssftp/ftp/ftp.M index 46291830e..429a97e96 100644 --- a/src/appl/gssftp/ftp/ftp.M +++ b/src/appl/gssftp/ftp/ftp.M @@ -30,1171 +30,1056 @@ .\" SUCH DAMAGE. .\" .\" @(#)ftp.1 6.18 (Berkeley) 7/30/91 -.\" -.so man1/tmac.doc -.Dd July 30, 1991 -.Dt FTP 1 -.Os BSD 4.2 -.Sh NAME -.Nm ftp -.Nd -.Tn ARPANET -file transfer program -.Sh SYNOPSIS -.Nm ftp -.Op Fl v -.Op Fl d -.Op Fl i -.Op Fl n -.Op Fl g -.Op Fl k Ar realm -.Op Ar host -.Sh DESCRIPTION -.Nm Ftp +.\" " +.so man1/header.doc +.TH FTP 1 \*h +.SH NAME +ftp \- ARPANET file transfer program +.SH SYNOPSIS +.B ftp +[\fB\-v\fP] [\fB\-d\fP] [\fB\-i\fP] [\fB\-n\fP] [\fB\-g\fP] [\fB\-k\fP +\fIrealm\fP] [\fIhost\fP] [\fB\-forward\fP] +.SH DESCRIPTION +.B FTP is the user interface to the -.Tn ARPANET -standard File Transfer Protocol. -The program allows a user to transfer files to and from a -remote network site. -.Pp -Options may be specified at the command line, or to the -command interpreter. -.Bl -tag -width flag -.It Fl v +.SM ARPANET +standard File Transfer Protocol. The program allows a user to transfer +files to and from a remote network site. +.SH OPTIONS +Options may be specified at the command line, or to the command +interpreter. +.TP +.B \-v Verbose option forces -.Nm ftp -to show all responses from the remote server, as well -as report on data transfer statistics. -.It Fl n +.B ftp +to show all responses from the remote server, as well as report on data +transfer statistics. +.TP +.B \-n Restrains -.Nm ftp -from attempting \*(Lqauto-login\*(Rq upon initial connection. -If auto-login is enabled, -.Nm ftp +.B ftp +from attempting ``auto-login'' upon initial connection. If +auto-login is enabled, +.B ftp attempts to authenticate to the -.Tn FTP +.SM FTP server by sending the -.Dv AUTH +.SM AUTH command, using whichever authentication types are locally supported. Once an authentication type is accepted, an authentication protocol will proceed by issuing -.Dv ADAT +.SM ADAT commands. -.Nm ftp -then -will check the -.Pa .netrc -(see below) file in the user's home directory for an entry describing -an account on the remote machine. -If no entry exists, -.Nm ftp +.B ftp +then will check the +.I .netrc +(see below) file in the user's home directory for an entry describing an +account on the remote machine. If no entry exists, +.B ftp will prompt for the remote machine login name (default is the user identity on the local machine), and, if necessary, prompt for a password and an account with which to login. -.It Fl i -Turns off interactive prompting during -multiple file transfers. -.It Fl d +.TP +.B \-i +Turns off interactive prompting during multiple file transfers. +.TP +.B \-d Enables debugging. -.It Fl g +.TP +.B \-g Disables file name globbing. -.It Fl k Ar realm -When using Kerberos V4 authentication, get tickets in -.Ar realm. -.El -.Pp +.TP +\fB\-k\fP \fIrealm\fP +When using Kerberos authentication, get tickets in +.IR realm . +.TP +.B \-forward +Cause tickets to be forwarded to the remote host. +.SH COMMANDS The client host with which -.Nm ftp -is to communicate may be specified on the command line. -If this is done, -.Nm ftp +.B ftp +is to communicate may be specified on the command line. If this is +done, +.B ftp will immediately attempt to establish a connection to an -.Tn FTP +.SM FTP server on that host; otherwise, -.Nm ftp -will enter its command interpreter and await instructions -from the user. +.B ftp +will enter its command interpreter and await instructions from the user. When -.Nm ftp +.B ftp is awaiting commands from the user the prompt -.Ql ftp> -is provided to the user. -The following commands are recognized -by -.Nm ftp : -.Bl -tag -width Fl -.It Ic \&! Op Ar command Op Ar args -Invoke an interactive shell on the local machine. -If there are arguments, the first is taken to be a command to execute -directly, with the rest of the arguments as its arguments. -.It Ic \&$ Ar macro-name Op Ar args +``ftp>'' +is provided to the user. The following commands are recognized by +.BR ftp : +.TP +\fB\&!\fP [\fIcommand\fP] [\fIargs\fP]] +Invoke an interactive shell on the local machine. If there are +arguments, the first is taken to be a command to execute directly, with +the rest of the arguments as its arguments. +.TP +\fB\&$\fP \fImacro-name\fP [\fIargs\fP] Execute the macro -.Ar macro-name +.I macro-name that was defined with the -.Ic macdef -command. -Arguments are passed to the macro unglobbed. -.It Ic account Op Ar passwd -Supply a supplemental password required by a remote system for access -to resources once a login has been successfully completed. -If no argument is included, the user will be prompted for an account -password in a non-echoing input mode. -.It Ic append Ar local-file Op Ar remote-file -Append a local file to a file on the remote machine. -If -.Ar remote-file -is left unspecified, the local file name is used in naming the -remote file after being altered by any -.Ic ntrans +.B macdef +command. Arguments are passed to the macro unglobbed. +.TP +\fBaccount\fP [\fIpasswd\fP] +Supply a supplemental password required by a remote system for access to +resources once a login has been successfully completed. If no argument +is included, the user will be prompted for an account password in a +non-echoing input mode. +.TP +\fBappend\fP \fIlocal-file\fP [\fIremote-file\fP] +Append a local file to a file on the remote machine. If +.I remote-file +is left unspecified, the local file name is used in naming the remote +file after being altered by any +.B ntrans or -.Ic nmap -setting. -File transfer uses the current settings for -.Ic type , -.Ic format , -.Ic mode , +.B nmap +setting. File transfer uses the current settings for +.BR type , +.BR format , +.BR mode , and -.Ic structure . -.It Ic ascii +.BR structure . +.TP +.B ascii Set the file transfer -.Ic type +.B type to network -.Tn ASCII . +.SM ASCII . This is the default type. -.It Ic bell -Arrange that a bell be sounded after each file transfer -command is completed. -.It Ic binary +.TP +.B bell +Arrange that a bell be sounded after each file transfer command is +completed. +.TP +.B binary Set the file transfer -.Ic type -to support binary image transfer. -.It Ic bye +.B type +to support binary file transfer. +.TP +.B bye Terminate the -.Tn FTP -session with the remote server -and exit -.Nm ftp . +.SM FTP +session with the remote server and exit +.BR ftp . An end of file will also terminate the session and exit. -.It Ic case +.TP +.B case Toggle remote computer file name case mapping during -.Ic mget -commands. -When -.Ic case +.B mget +commands. When +.B case is on (default is off), remote computer file names with all letters in -upper case are written in the local directory with the letters mapped -to lower case. -.It Ic \&cd Ar remote-directory -Change the working directory on the remote machine -to -.Ar remote-directory . -.It Ic cdup -Change the remote machine working directory to the parent of the -current remote machine working directory. -.It Ic chmod Ar mode file-name +upper case are written in the local directory with the letters mapped to +lower case. +.TP +\fBcd\fP \fIremote-directory\fP +Change the working directory on the remote machine to +.IR remote-directory . +.TP +.B cdup +Change the remote machine working directory to the parent of the current +remote machine working directory. +.TP +\fBchmod\fP \fImode\fP \fIfile-name\fP Change the permission modes of the file -.Ar file-name -on the remote -system to -.Ar mode . -.It Ic clear -Set the protection level on data transfers to \*(Lqclear\*(Rq. -If no -.Dv ADAT +.I file-name +on the remote system to +.IR mode . +.TP +.B clear +Set the protection level on data transfers to ``clear''. If no +.SM ADAT command succeeded, then this is the default protection level. -.It Ic close +.TP +.B close Terminate the -.Tn FTP -session with the remote server, and -return to the command interpreter. +.SM FTP +session with the remote server, and return to the command interpreter. Any defined macros are erased. -.It Ic \&cr -Toggle carriage return stripping during -ascii type file retrieval. -Records are denoted by a carriage return/linefeed sequence -during ascii type file transfer. -When -.Ic \&cr -is on (the default), carriage returns are stripped from this -sequence to conform with the -.Ux -single linefeed record -delimiter. -Records on -.Pf non\- Ns Ux -remote systems may contain single linefeeds; -when an ascii type transfer is made, these linefeeds may be -distinguished from a record delimiter only when -.Ic \&cr +.TP +.B cr +Toggle carriage return stripping during ascii type file retrieval. +Records are denoted by a carriage return/linefeed sequence during ascii +type file transfer. When +.B cr +is on (the default), carriage returns are stripped from this sequence to +conform with the +.SM UNIX +single linefeed record delimiter. Records on non-UNIX remote systems +may contain single linefeeds; when an ascii type transfer is made, these +linefeeds may be distinguished from a record delimiter only when +.B cr is off. -.It Ic delete Ar remote-file +.TP +\fBdelete\fP \fIremote-file\fP Delete the file -.Ar remote-file +.I remote-file on the remote machine. -.It Ic debug Op Ar debug-value -Toggle debugging mode. -If an optional -.Ar debug-value -is specified it is used to set the debugging level. -When debugging is on, -.Nm ftp -prints each command sent to the remote machine, preceded -by the string -.Ql \-\-> -.It Xo -.Ic dir -.Op Ar remote-directory -.Op Ar local-file -.Xc -Print a listing of the directory contents in the -directory, -.Ar remote-directory , +.TP +\fBdebug\fP [\fIdebug-value\fP] +Toggle debugging mode. If an optional +.I debug-value +is specified it is used to set the debugging level. When debugging is +on, +.B ftp +prints each command sent to the remote machine, preceded by the string +`\-\->' +.TP +\fBdir\fP [\fIremote-directory\fP] [\fIlocal-file\fP] +Print a listing of the directory contents in the directory, +.IR remote-directory , and, optionally, placing the output in -.Ar local-file . +.IR local-file . If interactive prompting is on, -.Nm ftp +.B ftp will prompt the user to verify that the last argument is indeed the target local file for receiving -.Ic dir -output. -If no directory is specified, the current working -directory on the remote machine is used. -If no local -file is specified, or -.Ar local-file +.B dir +output. If no directory is specified, the current working directory on +the remote machine is used. If no local file is specified, or +.I local-file is -.Fl , +`\fB\-\fP', output comes to the terminal. -.It Ic disconnect +.TP +.B disconnect A synonym for -.Ar close . -.It Ic form Ar format +.IR close . +.TP +\fBform\fP \fIformat\fP Set the file transfer -.Ic form +.B form to -.Ar format . -The default format is \*(Lqfile\*(Rq. -.It Ic get Ar remote-file Op Ar local-file -Retrieve the -.Ar remote-file -and store it on the local machine. -If the local -file name is not specified, it is given the same -name it has on the remote machine, subject to -alteration by the current -.Ic case , -.Ic ntrans , +.IR format . +The default format is ``file''. +.TP +\fBget\fP \fIremote-file\fP [\fIlocal-file\fP] +Retrieve the file +.I remote-file +and store it on the local machine. If the local file name is not +specified, it is given the same name it has on the remote machine, +subject to alteration by the current +.BR case , +.BR ntrans , and -.Ic nmap -settings. -The current settings for -.Ic type , -.Ic form , -.Ic mode , +.B nmap +settings. The current settings for +.BR type , +.BR form , +.BR mode , and -.Ic structure +.B structure are used while transferring the file. -.It Ic glob +.TP +.B glob Toggle filename expansion for -.Ic mdelete , -.Ic mget +.BR mdelete , +.BR mget , and -.Ic mput . +.BR mput . If globbing is turned off with -.Ic glob , -the file name arguments -are taken literally and not expanded. -Globbing for -.Ic mput +.BR glob , +the file name arguments are taken literally and not expanded. Globbing +for +.B mput is done as in -.Xr csh 1 . +.IR csh (1). For -.Ic mdelete +.B mdelete and -.Ic mget , -each remote file name is expanded -separately on the remote machine and the lists are not merged. -Expansion of a directory name is likely to be -different from expansion of the name of an ordinary file: -the exact result depends on the foreign operating system and ftp server, -and can be previewed by doing -.Ql mls remote-files \- +.BR mget , +each remote file name is expanded separately on the remote machine and +the lists are not merged. Expansion of a directory name is likely to be +different from expansion of the name of an ordinary file: the exact +result depends on the foreign operating system and ftp server, and can +be previewed by doing +`mls remote-files \-' Note: -.Ic mget +.B mget and -.Ic mput -are not meant to transfer -entire directory subtrees of files. -That can be done by -transferring a -.Xr tar 1 +.B mput +are not meant to transfer entire directory subtrees of files. That can +be done by transferring a +.IR tar (1) archive of the subtree (in binary mode). -.It Ic hash -Toggle hash-sign (``#'') printing for each data block -transferred. -The size of a data block is 1024 bytes. -.It Ic help Op Ar command +.TP +.B hash +Toggle hash-sign (``#'') printing for each data block transferred. The +size of a data block is 1024 bytes. +.TP +\fBhelp\fP [\fIcommand\fP] Print an informative message about the meaning of -.Ar command . +.IR command . If no argument is given, -.Nm ftp +.B ftp prints a list of the known commands. -.It Ic idle Op Ar seconds +.TP +\fBidle\fP [\fIseconds\fP] Set the inactivity timer on the remote server to -.Ar seconds -seconds. -If -.Ar seconds +.I seconds +seconds. If +.I seconds is omitted, the current inactivity timer is printed. -.It Ic lcd Op Ar directory -Change the working directory on the local machine. -If -no -.Ar directory +.TP +\fBlcd\fP [\fIdirectory\fP] +Change the working directory on the local machine. If no +.I directory is specified, the user's home directory is used. -.It Xo -.Ic \&ls -.Op Ar remote-directory -.Op Ar local-file -.Xc -Print a listing of the contents of a -directory on the remote machine. +.TP +\fBls\fP [\fIremote-directory\fP] [\fIlocal-file\fP] +Print a listing of the contents of a directory on the remote machine. The listing includes any system-dependent information that the server chooses to include; for example, most -.Ux -systems will produce -output from the command -.Ql ls \-l . -(See also -.Ic nlist . ) +.SM UNIX +systems will produce output from the command `ls \-l'. (See also +.BR nlist .) If -.Ar remote-directory -is left unspecified, the current working directory is used. -If interactive prompting is on, -.Nm ftp +.I remote-directory +is left unspecified, the current working directory is used. If +interactive prompting is on, +.B ftp will prompt the user to verify that the last argument is indeed the target local file for receiving -.Ic \&ls -output. -If no local file is specified, or if -.Ar local-file +.B ls +output. If no local file is specified, or if +.I local-file is -.Sq Fl , +`\fB\-\fP', the output is sent to the terminal. -.It Ic macdef Ns Ar macro-name -Define a macro. -Subsequent lines are stored as the macro -.Ar macro-name ; -a null line (consecutive newline characters -in a file or -carriage returns from the terminal) terminates macro input mode. -There is a limit of 16 macros and 4096 total characters in all -defined macros. +.TP +\fBmacdef\fP\fImacro-name\fP +Define a macro. Subsequent lines are stored as the macro +.IR macro-name ; +a null line (consecutive newline characters in a file or carriage +returns from the terminal) terminates macro input mode. There is a +limit of 16 macros and 4096 total characters in all defined macros. Macros remain defined until a -.Ic close -command is executed. -The macro processor interprets `$' and `\e' as special characters. -A `$' followed by a number (or numbers) is replaced by the -corresponding argument on the macro invocation command line. -A `$' followed by an `i' signals that macro processor that the -executing macro is to be looped. -On the first pass `$i' is -replaced by the first argument on the macro invocation command line, -on the second pass it is replaced by the second argument, and so on. -A `\e' followed by any character is replaced by that character. -Use the `\e' to prevent special treatment of the `$'. -.It Ic mdelete Op Ar remote-files -Delete the -.Ar remote-files +.B close +command is executed. The macro processor interprets `$' and `\e' as +special characters. A `$' followed by a number (or numbers) is replaced +by the corresponding argument on the macro invocation command line. A +`$' followed by an `i' signals that macro processor that the executing +macro is to be looped. On the first pass `$i' is replaced by the first +argument on the macro invocation command line, on the second pass it is +replaced by the second argument, and so on. A `\e' followed by any +character is replaced by that character. Use the `\e' to prevent +special treatment of the `$'. +.TP +\fBmdelete\fP [\fIremote-files\fP] +Delete +.I remote-files on the remote machine. -.It Ic mdir Ar remote-files local-file +.TP +\fBmdir\fP \fIremote-files\fP \fIlocal-file\fP Like -.Ic dir , -except multiple remote files may be specified. -If interactive prompting is on, -.Nm ftp +.BR dir , +except multiple remote files may be specified. If interactive prompting +is on, +.B ftp will prompt the user to verify that the last argument is indeed the target local file for receiving -.Ic mdir +.B mdir output. -.It Ic mget Ar remote-files +.TP +\fBmget\fP \fIremote-files\fP Expand the -.Ar remote-files -on the remote machine -and do a -.Ic get -for each file name thus produced. -See -.Ic glob -for details on the filename expansion. -Resulting file names will then be processed according to -.Ic case , -.Ic ntrans , +.I remote-files +on the remote machine and do a +.B get +for each file name thus produced. See +.B glob +for details on the filename expansion. Resulting file names will then +be processed according to +.BR case , +.BR ntrans , and -.Ic nmap -settings. -Files are transferred into the local working directory, -which can be changed with -.Ql lcd directory ; -new local directories can be created with -.Ql "\&! mkdir directory" . -.It Ic mkdir Ar directory-name +.B nmap +settings. Files are transferred into the local working directory, which +can be changed with `lcd directory'; new local directories can be +created with +`\&! mkdir directory'. +.TP +\fBmkdir\fP \fIdirectory-name\fP Make a directory on the remote machine. -.It Ic mls Ar remote-files local-file +.TP +\fBmls\fP \fIremote-files\fP \fIlocal-file\fP Like -.Ic nlist , -except multiple remote files may be specified, -and the -.Ar local-file -must be specified. -If interactive prompting is on, -.Nm ftp +.BR nlist , +except multiple remote files may be specified, and the +.I local-file +must be specified. If interactive prompting is on, +.B ftp will prompt the user to verify that the last argument is indeed the target local file for receiving -.Ic mls +.B mls output. -.It Ic mode Op Ar mode-name +.TP +\fBmode\fP [\fImode-name\fP] Set the file transfer -.Ic mode +.B mode to -.Ar mode-name . -The default mode is \*(Lqstream\*(Rq mode. -.It Ic modtime Ar file-name +.IR mode-name . +The default mode is ``stream'' mode. +.TP +\fBmodtime\fP \fIfile-name\fP Show the last modification time of the file on the remote machine. -.It Ic mput Ar local-files -Expand wild cards in the list of local files given as arguments -and do a -.Ic put -for each file in the resulting list. -See -.Ic glob -for details of filename expansion. -Resulting file names will then be processed according to -.Ic ntrans +.TP +\fBmput\fP \fIlocal-files\fP +Expand wild cards in the list of local files given as arguments and do a +.B put +for each file in the resulting list. See +.B glob +for details of filename expansion. Resulting file names will then be +processed according to +.B ntrans and -.Ic nmap +.B nmap settings. -.It Ic newer Ar file-name +.TP +\fBnewer\fP \fIfile-name\fP Get the file only if the modification time of the remote file is more -recent that the file on the current system. -If the file does not -exist on the current system, the remote file is considered -.Ic newer . +recent that the file on the current system. If the file does not exist +on the current system, the remote file is considered +.BR newer . Otherwise, this command is identical to -.Ar get . -.It Xo -.Ic nlist -.Op Ar remote-directory -.Op Ar local-file -.Xc -Print a list of the files in a -directory on the remote machine. -If -.Ar remote-directory -is left unspecified, the current working directory is used. -If interactive prompting is on, -.Nm ftp +.BR get . +.TP +\fBnlist\fP [\fIremote-directory\fP] [\fIlocal-file\fP] +Print a list of the files in a directory on the remote machine. If +.I remote-directory +is left unspecified, the current working directory is used. If +interactive prompting is on, +.B ftp will prompt the user to verify that the last argument is indeed the target local file for receiving -.Ic nlist -output. -If no local file is specified, or if -.Ar local-file -is -.Fl , -the output is sent to the terminal. -.It Ic nmap Op Ar inpattern outpattern -Set or unset the filename mapping mechanism. -If no arguments are specified, the filename mapping mechanism is unset. -If arguments are specified, remote filenames are mapped during -.Ic mput +.B nlist +output. If no local file is specified, or if +.I local-file +is `\fB\-\fP', the output is sent to the terminal. +.TP +\fBnmap\fP [\fIinpattern\fP \fIoutpattern\fP] +Set or unset the filename mapping mechanism. If no arguments are +specified, the filename mapping mechanism is unset. If arguments are +specified, remote filenames are mapped during +.B mput commands and -.Ic put +.B put commands issued without a specified remote target filename. If arguments are specified, local filenames are mapped during -.Ic mget +.B mget commands and -.Ic get -commands issued without a specified local target filename. -This command is useful when connecting to a -.No non\- Ns Ux -remote computer -with different file naming conventions or practices. -The mapping follows the pattern set by -.Ar inpattern +.B get +commands issued without a specified local target filename. This command +is useful when connecting to non\-UNIX remote computer with different +file naming conventions or practices. The mapping follows the pattern +set by +.I inpattern and -.Ar outpattern . -.Op Ar Inpattern -is a template for incoming filenames (which may have already been -processed according to the -.Ic ntrans +.IR outpattern . +[\fIInpattern\fP] is a template for incoming filenames (which may have +already been processed according to the +.B ntrans and -.Ic case -settings). -Variable templating is accomplished by including the +.B case +settings). Variable templating is accomplished by including the sequences `$1', `$2', ..., `$9' in -.Ar inpattern . -Use `\\' to prevent this special treatment of the `$' character. -All other characters are treated literally, and are used to determine the -.Ic nmap -.Op Ar inpattern -variable values. -For example, given -.Ar inpattern +.IR inpattern . +Use `\e' to prevent this special treatment of the `$' character. All +other characters are treated literally, and are used to determine the +.B nmap +[\fIinpattern\fP] variable values. For example, given +.I inpattern $1.$2 and the remote file name "mydata.data", $1 would have the value -"mydata", and $2 would have the value "data". -The -.Ar outpattern -determines the resulting mapped filename. -The sequences `$1', `$2', ...., `$9' are replaced by any value resulting -from the -.Ar inpattern -template. -The sequence `$0' is replace by the original filename. -Additionally, the sequence -.Ql Op Ar seq1 , Ar seq2 -is replaced by -.Op Ar seq1 -if -.Ar seq1 +"mydata", and $2 would have the value "data". The +.I outpattern +determines the resulting mapped filename. The sequences `$1', `$2', +...., `$9' are replaced by any value resulting from the +.I inpattern +template. The sequence `$0' is replace by the original filename. +Additionally, the sequence `[\fIseq1\fP, \fIseq2\fP]' is replaced by +[\fIseq1\fP] if +.I seq1 is not a null string; otherwise it is replaced by -.Ar seq2 . +.IR seq2 . For example, the command -.Pp -.Bd -literal -offset indent -compact -nmap $1.$2.$3 [$1,$2].[$2,file] -.Ed -.Pp -would yield -the output filename "myfile.data" for input filenames "myfile.data" and -"myfile.data.old", "myfile.file" for the input filename "myfile", and -"myfile.myfile" for the input filename ".myfile". +.sp +.nf + nmap $1.$2.$3 [$1,$2].[$2,file] +.fi +.sp +would yield the output filename "myfile.data" for input filenames +"myfile.data" and "myfile.data.old", "myfile.file" for the input +filename "myfile", and "myfile.myfile" for the input filename ".myfile". Spaces may be included in -.Ar outpattern , -as in the example: `nmap $1 sed "s/ *$//" > $1' . -Use the `\e' character to prevent special treatment -of the `$','[','[', and `,' characters. -.It Ic ntrans Op Ar inchars Op Ar outchars -Set or unset the filename character translation mechanism. -If no arguments are specified, the filename character -translation mechanism is unset. -If arguments are specified, characters in -remote filenames are translated during -.Ic mput +.IR outpattern , +as in the example: `nmap $1 sed "s/ *$//" > $1'. Use the `\e' character +to prevent special treatment of the `$','[',']', and `,' characters. +.TP +\fBntrans\fP [\fIinchars\fP [\fIoutchars\fP]] +Set or unset the filename character translation mechanism. If no +arguments are specified, the filename character translation mechanism is +unset. If arguments are specified, characters in remote filenames are +translated during +.B mput commands and -.Ic put -commands issued without a specified remote target filename. -If arguments are specified, characters in -local filenames are translated during -.Ic mget +.B put +commands issued without a specified remote target filename. If +arguments are specified, characters in local filenames are translated +during +.B mget commands and -.Ic get -commands issued without a specified local target filename. -This command is useful when connecting to a -.No non\- Ns Ux -remote computer -with different file naming conventions or practices. -Characters in a filename matching a character in -.Ar inchars +.B get +commands issued without a specified local target filename. This command +is useful when connecting to a non-UNIX remote computer with different +file naming conventions or practices. Characters in a filename matching +a character in +.I inchars are replaced with the corresponding character in -.Ar outchars . +.IR outchars . If the character's position in -.Ar inchars +.I inchars is longer than the length of -.Ar outchars , +.IR outchars , the character is deleted from the file name. -.It Ic open Ar host Op Ar port +.TP +\fBopen\fP \fIhost\fP [\fIport\fP] [\fB\-forward\fP] Establish a connection to the specified -.Ar host -.Tn FTP -server. -An optional port number may be supplied, -in which case, -.Nm ftp +.I host +.SM FTP +server. An optional port number may be supplied, in which case, +.B ftp will attempt to contact an -.Tn FTP -server at that port. -If the -.Ic auto-login +.SM FTP +server at that port. If the +.B auto-login option is on (default), -.Nm ftp +.B ftp will attempt to authenticate to the -.Tn FTP +.SM FTP server by sending the -.Dv AUTH -command, using whichever authentication types which are locally supported. -Once an authentication type is accepted, an authentication protocol -will proceed by issuing -.Dv ADAT +.SM AUTH +command, using whichever authentication types which are locally +supported. Once an authentication type is accepted, an authentication +protocol will proceed by issuing +.SM ADAT commands. -.Nm ftp -will also attempt to automatically log the user in to -the -.Tn FTP -server (see below). -.It Ic private -Set the protection level on data transfers to \*(Lqprivate\*(Rq. -Data transmissions will now be -confidentiality and integrity protected by encryption. +.B ftp +will also attempt to automatically log the user in to the +.SM FTP +server (see below). If the +.B \-forward +option is specified, +.B ftp +will forward a copy of the user's Kerberos tickets to the remote host. +.TP +.B private +Set the protection level on data transfers to ``private''. Data +transmissions are confidentiality and integrity protected by encryption. If no -.Dv ADAT -command succeeded, then the only possible level is \*(Lqclear\*(Rq. -.It Ic prompt -Toggle interactive prompting. -Interactive prompting -occurs during multiple file transfers to allow the -user to selectively retrieve or store files. -If prompting is turned off (default is on), any -.Ic mget +.SM ADAT +command succeeded, then the only possible level is ``clear''. +.TP +.B prompt +Toggle interactive prompting. Interactive prompting occurs during +multiple file transfers to allow the user to selectively retrieve or +store files. If prompting is turned off (default is on), any +.B mget or -.Ic mput +.B mput will transfer all files, and any -.Ic mdelete +.B mdelete will delete all files. -.It Ic protect Op Ar protection-level +.TP +\fBprotect\fP [\fIprotection-level\fP] Set the protection level on data transfers to -.Ar protection-level . -The valid protection levels are \*(Lqclear\*(Rq -for unprotected data transmissions, \*(Lqsafe\*(Rq -for data transmissions integrity -protected by cryptographic checksum, and \*(Lqprivate\*(Rq -for data transmissions confidentiality and integrity -protected by encryption. -If no -.Dv ADAT -command succeeded, then the only possible level is \*(Lqclear\*(Rq. -If no level is specified, the current level is printed. -The default protection level is \*(Lqclear\*(Rq. -.It Ic proxy Ar ftp-command -Execute an ftp command on a secondary control connection. -This command allows simultaneous connection to two remote ftp -servers for transferring files between the two servers. -The first -.Ic proxy +.IR protection-level . +The valid protection levels are ``clear'' for unprotected data +transmissions, ``safe'' for data transmissions integrity protected by +cryptographic checksum, and ``private'' for data transmissions +confidentiality and integrity protected by encryption. If no +.SM ADAT +command succeeded, then the only possible level is ``clear''. If no +level is specified, the current level is printed. The default +protection level is ``clear''. +.TP +\fBproxy\fP \fIftp-command\fP +Execute an ftp command on a secondary control connection. This command +allows simultaneous connection to two remote ftp servers for +transferring files between the two servers. The first +.B proxy command should be an -.Ic open , -to establish the secondary control connection. -Enter the command "proxy ?" to see other ftp commands executable on the -secondary connection. +.B open , +to establish the secondary control connection. Enter the command +"proxy ?" to see other ftp commands executable on the secondary connection. The following commands behave differently when prefaced by -.Ic proxy : -.Ic open +.BR proxy : +.B open will not define new macros during the auto-login process, -.Ic close +.B close will not erase existing macro definitions, -.Ic get +.B get and -.Ic mget -transfer files from the host on the primary control connection -to the host on the secondary control connection, and -.Ic put , -.Ic mput , +.B mget +transfer files from the host on the primary control connection to the +host on the secondary control connection, and +.BR put , +.BR mput , and -.Ic append -transfer files from the host on the secondary control connection -to the host on the primary control connection. -Third party file transfers depend upon support of the ftp protocol -.Dv PASV +.B append +transfer files from the host on the secondary control connection to the +host on the primary control connection. Third party file transfers +depend upon support of the ftp protocol +.SM PASV command by the server on the secondary control connection. -.It Ic put Ar local-file Op Ar remote-file -Store a local file on the remote machine. -If -.Ar remote-file -is left unspecified, the local file name is used -after processing according to any -.Ic ntrans +.TP +\fBput\fP \fIlocal-file\fP [\fIremote-file\fP] +Store a local file on the remote machine. If +.I remote-file +is left unspecified, the local file name is used after processing +according to any +.B ntrans or -.Ic nmap -settings -in naming the remote file. -File transfer uses the -current settings for -.Ic type , -.Ic format , -.Ic mode , +.B nmap +settings in naming the remote file. File transfer uses the current +settings for +.BR type , +.BR format , +.BR mode , and -.Ic structure . -.It Ic pwd -Print the name of the current working directory on the remote -machine. -.It Ic quit +.BR structure . +.TP +.B pwd +Print the name of the current working directory on the remote machine. +.TP +.B quit A synonym for -.Ic bye . -.It Ic quote Ar arg1 arg2 ... +.BR bye . +.TP +\fBquote\fP \fIarg1\fP [\fIarg2\fP] [\fI...\fP] The arguments specified are sent, verbatim, to the remote -.Tn FTP +.SM FTP server. -.It Ic recv Ar remote-file Op Ar local-file +.TP +\fBrecv\fP \fIremote-file\fP [\fIlocal-file\fP] A synonym for get. -.It Ic reget Ar remote-file Op Ar local-file +.TP +\fBreget\fP \fIremote-file\fP [\fIlocal-file\fP] Reget acts like get, except that if -.Ar local-file -exists and is -smaller than -.Ar remote-file , -.Ar local-file -is presumed to be -a partially transferred copy of -.Ar remote-file -and the transfer -is continued from the apparent point of failure. -This command -is useful when transferring very large files over networks that +.I local-file +exists and is smaller than +.IR remote-file , +.I local-file +is presumed to be a partially transferred copy of +.I remote-file +and the transfer is continued from the apparent point of failure. This +command is useful when transferring very large files over networks that are prone to dropping connections. -.It Ic remotehelp Op Ar command-name +.TP +\fBremotehelp\fP [\fIcommand-name\fP] Request help from the remote -.Tn FTP -server. -If a -.Ar command-name +.SM FTP +server. If a +.I command-name is specified it is supplied to the server as well. -.It Ic remotestatus Op Ar file-name -With no arguments, show status of remote machine. -If -.Ar file-name +.TP +\fBremotestatus\fP [\fIfile-name\fP] +With no arguments, show status of remote machine. If +.I file-name is specified, show status of -.Ar file-name +.I file-name on remote machine. -.It Xo -.Ic rename -.Op Ar from -.Op Ar to -.Xc +.TP +\fBrename\fP [\fIfrom\fP] [\fIto\fP] Rename the file -.Ar from +.I from on the remote machine, to the file -.Ar to . -.It Ic reset -Clear reply queue. -This command re-synchronizes command/reply sequencing with the remote -ftp server. -Resynchronization may be necessary following a violation of the ftp protocol -by the remote server. -.It Ic restart Ar marker +.IR to . +.TP +.B reset +Clear reply queue. This command re-synchronizes command/reply +sequencing with the remote ftp server. Resynchronization may be +necessary following a violation of the ftp protocol by the remote +server. +.TP +\fBrestart\fP \fImarker\fP Restart the immediately following -.Ic get +.B get or -.Ic put -at the -indicated -.Ar marker . -On -.Ux -systems, marker is usually a byte -offset into the file. -.It Ic rmdir Ar directory-name +.B put +at the indicated +.IR marker . +On UNIX systems, marker is usually a byte offset into the file. +.TP +\fBrmdir\fP \fIdirectory-name\fP Delete a directory on the remote machine. -.It Ic runique -Toggle storing of files on the local system with unique filenames. -If a file already exists with a name equal to the target -local filename for a -.Ic get +.TP +.B runique +Toggle storing of files on the local system with unique filenames. If a +file already exists with a name equal to the target local filename for a +.B get or -.Ic mget -command, a ".1" is appended to the name. -If the resulting name matches another existing file, -a ".2" is appended to the original name. -If this process continues up to ".99", an error -message is printed, and the transfer does not take place. -The generated unique filename will be reported. -Note that -.Ic runique -will not affect local files generated from a shell command -(see below). +.B mget +command, a ".1" is appended to the name. If the resulting name matches +another existing file, a ".2" is appended to the original name. If this +process continues up to ".99", an error message is printed, and the +transfer does not take place. The generated unique filename will be +reported. Note that +.B runique +will not affect local files generated from a shell command (see below). The default value is off. -.It Ic safe -Set the protection level on data transfers to \*(Lqsafe\*(Rq. -Data transmissions will now be -integrity protected by cryptographic checksum. -If no -.Dv ADAT -command succeeded, then the only possible level is \*(Lqclear\*(Rq. -.It Ic send Ar local-file Op Ar remote-file +.TP +.B safe +Set the protection level on data transfers to ``safe''. Data +transmissions are integrity-protected by cryptographic checksum. If no +.SM ADAT +command succeeded, then the only possible level is ``clear''. +.TP +\fBsend\fP \fIlocal-file\fP [\fIremote-file\fP] A synonym for put. -.It Ic sendport +.TP +.B sendport Toggle the use of -.Dv PORT -commands. -By default, -.Nm ftp +.SM PORT +commands. By default, +.B ftp will attempt to use a -.Dv PORT -command when establishing -a connection for each data transfer. -The use of -.Dv PORT -commands can prevent delays -when performing multiple file transfers. -If the -.Dv PORT +.SM PORT +command when establishing a connection for each data transfer. The use +of +.SM PORT +commands can prevent delays when performing multiple file transfers. If +the +.SM PORT command fails, -.Nm ftp -will use the default data port. -When the use of -.Dv PORT +.B ftp +will use the default data port. When the use of +.SM PORT commands is disabled, no attempt will be made to use -.Dv PORT -commands for each data transfer. -This is useful -for certain -.Tn FTP +.SM PORT +commands for each data transfer. This is useful for certain +.SM FTP implementations which do ignore -.Dv PORT +.SM PORT commands but, incorrectly, indicate they've been accepted. -.It Ic site Ar arg1 arg2 ... +.TP +\fBsite\fP \fIarg1\fP [\fIarg2\fP] [\fI...\fP] The arguments specified are sent, verbatim, to the remote -.Tn FTP +.SM FTP server as a -.Dv SITE +.SM SITE command. -.It Ic size Ar file-name +.TP +\fBsize\fP \fIfile-name\fP Return size of -.Ar file-name +.I file-name on remote machine. -.It Ic status +.TP +.B status Show the current status of -.Nm ftp . -.It Ic struct Op Ar struct-name +.BR ftp . +.TP +\fBstruct\fP \fIstruct-name\fP Set the file transfer -.Ar structure +.I structure to -.Ar struct-name . -By default \*(Lqstream\*(Rq structure is used. -.It Ic sunique +.IR struct-name . +By default ``stream'' structure is used. +.TP +.B sunique Toggle storing of files on remote machine under unique file names. Remote ftp server must support ftp protocol -.Dv STOU -command for -successful completion. -The remote server will report unique name. -Default value is off. -.It Ic system +.SM STOU +command for successful completion. The remote server will report unique +name. Default value is off. +.TP +.B system Show the type of operating system running on the remote machine. -.It Ic tenex -Set the file transfer type to that needed to -talk to -.Tn TENEX +.TP +.B tenex +Set the file transfer type to that needed to talk to +.SM TENEX machines. -.It Ic trace +.TP +.B trace Toggle packet tracing. -.It Ic type Op Ar type-name +.TP +\fBtype\fP [\fItype-name\fP] Set the file transfer -.Ic type +.B type to -.Ar type-name . -If no type is specified, the current type -is printed. -The default type is network -.Tn ASCII . -.It Ic umask Op Ar newmask +.IR type-name . +If no type is specified, the current type is printed. The default type +is network +.SM ASCII. +.TP +\fBumask\fP [\fInewmask\fP] Set the default umask on the remote server to -.Ar newmask . +.IR newmask . If -.Ar newmask +.I newmask is omitted, the current umask is printed. -.It Xo -.Ic user Ar user-name -.Op Ar password -.Op Ar account -.Xc +.TP +\fBuser\fP \fIuser-name\fP [\fIpassword\fP] [\fIaccount\fP] Identify yourself to the remote -.Tn FTP -server. -If the -.Ar password +.SM FTP +server. If the +.I password is not specified and the server requires it, -.Nm ftp -will prompt the user for it (after disabling local echo). -If an -.Ar account +.B ftp +will prompt the user for it (after disabling local echo). If an +.I account field is not specified, and the -.Tn FTP -server -requires it, the user will be prompted for it. -If an -.Ar account -field is specified, an account command will -be relayed to the remote server after the login sequence -is completed if the remote server did not require it -for logging in. -Unless -.Nm ftp -is invoked with \*(Lqauto-login\*(Rq disabled, this -process is done automatically on initial connection to -the -.Tn FTP +.SM FTP +server requires it, the user will be prompted for it. If an +.I account +field is specified, an account command will be relayed to the remote +server after the login sequence is completed if the remote server did +not require it for logging in. Unless +.B ftp +is invoked with ``auto-login'' disabled, this process is done +automatically on initial connection to the +.SM FTP server. -.It Ic verbose -Toggle verbose mode. -In verbose mode, all responses from -the -.Tn FTP -server are displayed to the user. -In addition, -if verbose is on, when a file transfer completes, statistics -regarding the efficiency of the transfer are reported. -By default, -verbose is on. -.It Ic ? Op Ar command +.TP +.B verbose +Toggle verbose mode. In verbose mode, all responses from the +.SM FTP +server are displayed to the user. In addition, if verbose is on, when a +file transfer completes, statistics regarding the efficiency of the +transfer are reported. By default, verbose is on. +.TP +\fB \&? [\fIcommand\fP] A synonym for help. -.El -.Pp -Command arguments which have embedded spaces may be quoted with -quote `"' marks. -.Sh ABORTING A FILE TRANSFER -To abort a file transfer, use the terminal interrupt key -(usually Ctrl-C). -Sending transfers will be immediately halted. -Receiving transfers will be halted by sending a ftp protocol -.Dv ABOR +.PP +Command arguments which have embedded spaces may be quoted with quote +`"' marks. +.SH ABORTING A FILE TRANSFER +To abort a file transfer, use the terminal interrupt key (usually +Ctrl-C). Sending transfers will be immediately halted. Receiving +transfers will be halted by sending a +.SM FTP +protocol +.SM ABOR command to the remote server, and discarding any further data received. -The speed at which this is accomplished depends upon the remote -server's support for -.Dv ABOR -processing. -If the remote server does not support the -.Dv ABOR -command, an -.Ql ftp> -prompt will not appear until the remote server has completed -sending the requested file. -.Pp +The speed at which this is accomplished depends upon the remote server's +support for +.SM ABOR +processing. If the remote server does not support the +.SM ABOR +command, an `ftp>' prompt will not appear until the remote server has +completed sending the requested file. +.PP The terminal interrupt key sequence will be ignored when -.Nm ftp -has completed any local processing and is awaiting a reply -from the remote server. -A long delay in this mode may result from the ABOR processing described -above, or from unexpected behavior by the remote server, including -violations of the ftp protocol. -If the delay results from unexpected remote server behavior, the local -.Nm ftp +.B ftp +has completed any local processing and is awaiting a reply from the +remote server. A long delay in this mode may result from the +.SM ABOR +processing described above, or from unexpected behavior by the remote +server, including violations of the ftp protocol. If the delay results +from unexpected remote server behavior, the local +.B ftp program must be killed by hand. -.Sh FILE NAMING CONVENTIONS +.SH FILE NAMING CONVENTIONS Files specified as arguments to -.Nm ftp +.B ftp commands are processed according to the following rules. -.Bl -enum -.It -If the file name -.Sq Fl -is specified, the -.Ar stdin +.TP +1. +If the file name `\fB-\fP' is specified, +.I stdin (for reading) or -.Ar stdout +.I stdout (for writing) is used. -.It -If the first character of the file name is -.Sq \&| , -the -remainder of the argument is interpreted as a shell command. -.Nm Ftp +.TP +2. +If the first character of the file name is `\&|', the remainder of the +argument is interpreted as a shell command. +.B Ftp then forks a shell, using -.Xr popen 3 -with the argument supplied, and reads (writes) from the stdout -(stdin). -If the shell command includes spaces, the argument -must be quoted; e.g. -\*(Lq" ls -lt"\*(Rq. -A particularly -useful example of this mechanism is: \*(Lqdir more\*(Rq. -.It -Failing the above checks, if ``globbing'' is enabled, -local file names are expanded -according to the rules used in the -.Xr csh 1 ; +.IR popen (3) +with the argument supplied, and reads from (writes to) stdout (stdin). +If the shell command includes spaces, the argument must be quoted; e.g. +``" ls -lt"''. A particularly useful example of this mechanism is: +``dir more''. +.TP +3. +Failing the above checks, if ``globbing'' is enabled, local file names +are expanded according to the rules used in +.IR csh (1); c.f. the -.Ic glob -command. -If the -.Nm ftp +.B glob +command. If the +.B ftp command expects a single local file (.e.g. -.Ic put ) , -only the first filename generated by the "globbing" operation is used. -.It +.BR put ), +only the first filename generated by the ``globbing'' operation is used. +.TP +4. For -.Ic mget +.B mget commands and -.Ic get -commands with unspecified local file names, the local filename is -the remote filename, which may be altered by a -.Ic case , -.Ic ntrans , +.B get +commands with unspecified local file names, the local filename is the +remote filename, which may be altered by a +.BR case , +.BR ntrans , or -.Ic nmap -setting. -The resulting filename may then be altered if -.Ic runique +.B nmap +setting. The resulting filename may then be altered if +.B runique is on. -.It +.TP +5. For -.Ic mput +.B mput commands and -.Ic put -commands with unspecified remote file names, the remote filename is -the local filename, which may be altered by a -.Ic ntrans +.B put +commands with unspecified remote file names, the remote filename is the +local filename, which may be altered by a +.B ntrans or -.Ic nmap -setting. -The resulting filename may then be altered by the remote server if -.Ic sunique +.B nmap +setting. The resulting filename may then be altered by the remote +server if +.B sunique is on. -.El -.Sh FILE TRANSFER PARAMETERS -The FTP specification specifies many parameters which may -affect a file transfer. -The -.Ic type -may be one of \*(Lqascii\*(Rq, \*(Lqimage\*(Rq (binary), -\*(Lqebcdic\*(Rq, and \*(Lqlocal byte size\*(Rq (for -.Tn PDP Ns -10's -and -.Tn PDP Ns -20's -mostly). -.Nm Ftp -supports the ascii and image types of file transfer, -plus local byte size 8 for -.Ic tenex +.SH FILE TRANSFER PARAMETERS +The FTP specification specifies many parameters which may affect a file +transfer. The +.B type +may be one of ``ascii'', ``image'' (binary), ``ebcdic'', and ``local +byte size'' (mostly for PDP-10's and PDP-20's). +.B Ftp +supports the ascii and image types of file transfer, plus local byte +size 8 for +.B tenex mode transfers. -.Pp -.Nm Ftp -supports only the default values for the remaining -file transfer parameters: -.Ic mode , -.Ic form , +.PP +.B Ftp +supports only the default values for the remaining file transfer +parameters: +.BR mode , +.BR form , and -.Ic struct . -.Sh THE .netrc FILE +.BR struct . +.SH THE .netrc FILE The -.Pa .netrc -file contains login and initialization information -used by the auto-login process. -It resides in the user's home directory. -The following tokens are recognized; they may be separated by spaces, -tabs, or new-lines: -.Bl -tag -width password -.It Ic machine Ar name +.I .netrc +file contains login and initialization information used by the +auto-login process. It resides in the user's home directory. The +following tokens are recognized; they may be separated by spaces, tabs, +or new-lines: +.TP +\fBmachine\fP \fIname\fP Identify a remote machine -.Ar name . +.IR name . The auto-login process searches the -.Pa .netrc +.I .netrc file for a -.Ic machine +.B machine token that matches the remote machine specified on the -.Nm ftp +.B ftp command line or as an -.Ic open -command argument. -Once a match is made, the subsequent -.Pa .netrc -tokens are processed, -stopping when the end of file is reached or another -.Ic machine +.B open +command argument. Once a match is made, the subsequent +.I .netrc +tokens are processed, stopping when the end of file is reached or +another +.B machine or a -.Ic default +.B default token is encountered. -.It Ic default +.TP +.B default This is the same as -.Ic machine -.Ar name +.B machine +.I name except that -.Ic default -matches any name. -There can be only one -.Ic default +.B default +matches any name. There can be only one +.B default token, and it must be after all -.Ic machine -tokens. -This is normally used as: -.Pp -.Dl default login anonymous password user@site -.Pp +.B machine +tokens. This is normally used as: +.sp + default login anonymous password user@site +.sp thereby giving the user -.Ar automatic -anonymous ftp login to -machines not specified in -.Pa .netrc . -This can be overridden -by using the -.Fl n +.I automatic +anonymous ftp login to machines not specified in +.IR .netrc . +This can be overridden by using the +.B \-n flag to disable auto-login. -.It Ic login Ar name -Identify a user on the remote machine. -If this token is present, the auto-login process will initiate -a login using the specified -.Ar name . -.It Ic password Ar string -Supply a password. -If this token is present, the auto-login process will supply the -specified string if the remote server requires a password as part -of the login process. -Note that if this token is present in the -.Pa .netrc -file for any user other -than -.Ar anonymous , -.Nm ftp +.TP +\fBlogin\fP \fIname\fP +Identify a user on the remote machine. If this token is present, the +auto-login process will initiate a login using the specified +.IR name . +.TP +\fBpassword\fP \fIstring\fP +Supply a password. If this token is present, the auto-login process +will supply the specified string if the remote server requires a +password as part of the login process. Note that if this token is +present in the +.I .netrc +file for any user other than +.IR anonymous , +.B ftp will abort the auto-login process if the -.Pa .netrc -is readable by -anyone besides the user. -.It Ic account Ar string -Supply an additional account password. -If this token is present, the auto-login process will supply the -specified string if the remote server requires an additional -account password, or the auto-login process will initiate an -.Dv ACCT +.I .netrc +is readable by anyone besides the user. +.TP +\fBaccount\fP \fIstring\fP +Supply an additional account password. If this token is present, the +auto-login process will supply the specified string if the remote server +requires an additional account password, or the auto-login process will +initiate an +.SM ACCT command if it does not. -.It Ic macdef Ar name -Define a macro. -This token functions like the -.Nm ftp -.Ic macdef -command functions. -A macro is defined with the specified name; its contents begin with the -next -.Pa .netrc -line and continue until a null line (consecutive new-line -characters) is encountered. -If a macro named -.Ic init +.TP +\fBmacdef\fP \fIname\fP +Define a macro. This token functions like the +.B ftp +.B macdef +command functions. A macro is defined with the specified name; its +contents begin with the next +.I .netrc +line and continue until a null line (consecutive new-line characters) is +encountered. If a macro named +.B init is defined, it is automatically executed as the last step in the auto-login process. -.El -.Sh ENVIRONMENT -.Nm Ftp +.SH ENVIRONMENT +.B Ftp utilizes the following environment variables. -.Bl -tag -width Fl -.It Ev HOME +.TP +.SM HOME For default location of a -.Pa .netrc +.I .netrc file, if one exists. -.It Ev SHELL +.TP +.SM SHELL For default shell. -.El -.Sh SEE ALSO -.Xr ftpd 8 -.Pp -Lunt, S. J., -FTP Security Extensions, -Internet Draft, -November 1993. -.Sh HISTORY +.SH SEE ALSO +.IR ftpd (8) +.PP +Lunt, S. J., FTP Security Extensions, Internet Draft, November 1993. +.SH HISTORY The -.Nm ftp -command appeared in -.Bx 4.2 . -.Sh BUGS -Correct execution of many commands depends upon proper behavior -by the remote server. -.Pp -An error in the treatment of carriage returns -in the -.Bx 4.2 -ascii-mode transfer code -has been corrected. -This correction may result in incorrect transfers of binary files -to and from -.Bx 4.2 -servers using the ascii type. -Avoid this problem by using the binary image type. +.B ftp +command appeared in 4.2BSD. +.SH BUGS +Correct execution of many commands depends upon proper behavior by the +remote server. +.PP +An error in the treatment of carriage returns in the 4.2BSD ascii-mode +transfer code has been corrected. This correction may result in +incorrect transfers of binary files to and from 4.2BSD servers using the +ascii type. Avoid this problem by using the binary image type. diff --git a/src/appl/gssftp/ftpd/ftpd.M b/src/appl/gssftp/ftpd/ftpd.M index 2b4e9951d..77c1a537c 100644 --- a/src/appl/gssftp/ftpd/ftpd.M +++ b/src/appl/gssftp/ftpd/ftpd.M @@ -30,306 +30,430 @@ .\" SUCH DAMAGE. .\" .\" @(#)ftpd.8 6.9 (Berkeley) 3/16/91 -.\" -.so man1/tmac.doc -.Dd March 16, 1991 -.Dt FTPD 8 -.Os BSD 4.2 -.Sh NAME -.Nm ftpd -.Nd -.Tn DARPA +.\" " +.so man1/header.doc +.TH FTPD 8 \*h +.SH NAME +.B ftpd +\- +.SM DARPA Internet File Transfer Protocol server -.Sh SYNOPSIS -.Nm ftpd -.Op Fl d -.Op Fl l -.Op Fl t Ar timeout -.Op Fl T Ar maxtimeout -.Op Fl p Ar port -.Op Fl r Ar realm-file -.Op Fl s Ar srvtab -.Sh DESCRIPTION -.Nm Ftpd +.SH SYNOPSIS +.B ftpd +[\fB\-d\fP] [\fB\-l\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-T\fP +\fImaxtimeout\fP] [\fB\-p\fP \fIport\fP] [\fB\-r\fP \fIrealm-file\fP] +[\fB\-s\fP \fIsrvtab\fP] +.SH DESCRIPTION +.B Ftpd is the -.Tn DARPA -Internet File Transfer Protocol -server process. The server uses the -.Tn TCP -protocol -and listens at the port specified in the -.Dq ftp -service specification; see -.Xr services 5 . -.Pp +.SM DARPA +Internet File Transfer Protocol server process. The server uses the +.SM TCP +protocol and listens at the port specified in the ``ftp'' service +specification; see +.IR services (5). +.PP Available options: -.Bl -tag -width Ds -.It Fl d +.TP +.B \-d Debugging information is written to the syslog. -.It Fl l +.TP +.B \-l Each -.Xr ftp 1 +.IR ftp (1) session is logged in the syslog. -.It Fl t +.TP +.B \-t The inactivity timeout period is set to -.Ar timeout +.I timeout seconds (the default is 15 minutes). -.It Fl T -A client may also request a different timeout period; -the maximum period allowed may be set to -.Ar timeout +.TP +.B \-T +A client may also request a different timeout period; the maximum period +allowed may be set to +.I timeout seconds with the -.Fl T -option. -The default limit is 2 hours. -.It Fl a +.B \-T +option. The default limit is 2 hours. +.TP +.B \-a Only permit Kerberos authenticated or anonymous logins. -.It Fl p Ar port +.TP +\fB\-p\fP \fIport\fP Run as a server and accept a connection on -.Ar port. +.IR port . Normally the ftp server is invoked by -.Xr inetd 8 . -.It Fl r Ar realm-file +.IR inetd (8). +.TP +\fB\-r\fP \fIrealm-file\fP Sets the name of the -.Pa krb.conf +.I krb.conf file to use. The default value is normally -.Pa /usr/kerberos/lib/krb.conf. -.It Fl s Ar srvtab +.IR /usr/kerberos/lib/krb.conf . +.TP +\fB\-s\fP \fIsrvtab\fP Sets the name of the -.Pa srvtab +.I srvtab file to use. The default value is normally -.Pa /etc/krb-srvtab. -.El -.Pp -The ftp server currently supports the following ftp -requests; case is not distinguished. -.Bl -column "Request" -offset indent -.It Request Ta "Description" -.It ABOR Ta "abort previous command" -.It ACCT Ta "specify account (ignored)" -.It ADAT Ta "send an authentication protocol message" -.It ALLO Ta "allocate storage (vacuously)" -.It APPE Ta "append to a file" -.It AUTH Ta "specify an authentication protocol to be performed" -.It CDUP Ta "change to parent of current working directory" -.It CWD Ta "change working directory" -.It DELE Ta "delete a file" -.It ENC Ta "send a privacy and integrity protected command (given in argument)" -.It HELP Ta "give help information" -.It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA" -.It MIC Ta "send an integrity protected command (given in argument)" -.It MKD Ta "make a directory" -.It MDTM Ta "show last modification time of file" -.It MODE Ta "specify data transfer" Em mode -.It NLST Ta "give name list of files in directory" -.It NOOP Ta "do nothing" -.It PASS Ta "specify password" -.It PASV Ta "prepare for server-to-server transfer" -.It PBSZ Ta "specify a protection buffer size" -.It PORT Ta "specify data connection port" -.It PROT Ta "specify a protection level under which to protect data transfers" -.It PWD Ta "print the current working directory" -.It QUIT Ta "terminate session" -.It REST Ta "restart incomplete transfer" -.It RETR Ta "retrieve a file" -.It RMD Ta "remove a directory" -.It RNFR Ta "specify rename-from file name" -.It RNTO Ta "specify rename-to file name" -.It SITE Ta "non-standard commands (see next section)" -.It SIZE Ta "return size of file" -.It STAT Ta "return status of server" -.It STOR Ta "store a file" -.It STOU Ta "store a file with a unique name" -.It STRU Ta "specify data transfer" Em structure -.It SYST Ta "show operating system type of server system" -.It TYPE Ta "specify data transfer" Em type -.It USER Ta "specify user name" -.It XCUP Ta "change to parent of current working directory (deprecated)" -.It XCWD Ta "change working directory (deprecated)" -.It XMKD Ta "make a directory (deprecated)" -.It XPWD Ta "print the current working directory (deprecated)" -.It XRMD Ta "remove a directory (deprecated)" -.El -.Pp +.IR /etc/krb-srvtab . +.PP +The ftp server currently supports the following ftp requests; case is +not distinguished. +.TP "\w'Request\ \ 'u" +.B Request +.B Description +.sp -1 +.TP +ABOR +abort previous command +.sp -1 +.TP +ACCT +specify account (ignored) +.sp -1 +.TP +ADAT +send an authentication protocol message +.sp -1 +.TP +ALLO +allocate storage (vacuously) +.sp -1 +.TP +APPE +append to a file +.sp -1 +.TP +AUTH +specify an authentication protocol to be performed +.sp -1 +.TP +CDUP +change to parent of current working directory +.sp -1 +.TP +CWD +change working directory +.sp -1 +.TP +DELE +delete a file +.sp -1 +.TP +ENC +send a privacy and integrity protected command (given in argument) +.sp -1 +.TP +HELP +give help information +.sp -1 +.TP +LIST +give list files in a directory (``ls -lgA'') +.sp -1 +.TP +MIC +send an integrity protected command (given in argument) +.sp -1 +.TP +MKD +make a directory +.sp -1 +.TP +MDTM +show last modification time of file +.sp -1 +.TP +MODE +specify data transfer +.I mode +.sp -1 +.TP +NLST +give name list of files in directory +.sp -1 +.TP +NOOP +do nothing +.sp -1 +.TP +PASS +specify password +.sp -1 +.TP +PASV +prepare for server-to-server transfer +.sp -1 +.TP +PBSZ +specify a protection buffer size +.sp -1 +.TP +PORT +specify data connection port +.sp -1 +.TP +PROT +specify a protection level under which to protect data transfers +.sp -1 +.TP +PWD +print the current working directory +.sp -1 +.TP +QUIT +terminate session +.sp -1 +.TP +REST +restart incomplete transfer +.sp -1 +.TP +RETR +retrieve a file +.sp -1 +.TP +RMD +remove a directory +.sp -1 +.TP +RNFR +specify rename-from file name +.sp -1 +.TP +RNTO +specify rename-to file name +.sp -1 +.TP +SITE +non-standard commands (see next section) +.sp -1 +.TP +SIZE +return size of file +.sp -1 +.TP +STAT +return status of server +.sp -1 +.TP +STOR +store a file +.sp -1 +.TP +STOU +store a file with a unique name +.sp -1 +.TP +STRU +specify data transfer +.I structure +.sp -1 +.TP +SYST +show operating system type of server system +.sp -1 +.TP +TYPE +specify data transfer +.I type +.sp -1 +.TP +USER +specify user name +.sp -1 +.TP +XCUP +change to parent of current working directory (deprecated) +.sp -1 +.TP +XCWD +change working directory (deprecated) +.sp -1 +.TP +XMKD +make a directory (deprecated) +.sp -1 +.TP +XPWD +print the current working directory (deprecated) +.sp -1 +.TP +XRMD +remove a directory (deprecated) +.PP The following non-standard or -.Tn UNIX -specific commands are supported -by the -SITE request. -.Pp -.Bl -column Request -offset indent -.It Sy Request Ta Sy Description -.It UMASK Ta change umask. Em E.g. SITE UMASK 002 -.It IDLE Ta set idle-timer. Em E.g. SITE IDLE 60 -.It CHMOD Ta change mode of a file. Em E.g. +.SM UNIX +specific commands are supported by the SITE request. +.TP "\w'Request\ \ 'u" +.B Request +.B Description +.sp -1 +.TP +UMASK +change umask. +.IR E.g. , +SITE UMASK 002 +.sp -1 +.TP +IDLE +set idle-timer. +.IR E.g. , +SITE IDLE 60 +.sp -1 +.TP +CHMOD +change mode of a file. +.IR E.g. , SITE CHMOD 755 filename -.It HELP Ta give help information. Em E.g. SITE HELP -.El -.Pp +.sp -1 +.TP +HELP +give help information. +.IR E.g. , +SITE HELP +.PP The remaining ftp requests specified in Internet -.%T "RFC 959" -are -recognized, but not implemented. -MDTM and SIZE are not specified in -.%T "RFC 959" , +.I RFC 959 +are recognized, but not implemented. MDTM and SIZE are not specified in +.I RFC +.IR 959 , but will appear in the next updated FTP RFC. -.Pp -The ftp server will abort an active file transfer only when the -ABOR -command is preceded by a Telnet "Interrupt Process" (IP) -signal and a Telnet "Synch" signal in the command Telnet stream, -as described in Internet -.%T "RFC 959" . -If a -STAT -command is received during a data transfer, preceded by a Telnet IP -and Synch, transfer status will be returned. -.Pp -.Nm Ftpd +.PP +The ftp server will abort an active file transfer only when the ABOR +command is preceded by a Telnet "Interrupt Process" (IP) signal and a +Telnet "Synch" signal in the command Telnet stream, as described in +Internet +.I RFC +.IR 959 . +If a STAT command is received during a data transfer, preceded by a +Telnet IP and Synch, transfer status will be returned. +.PP +.B Ftpd interprets file names according to the -.Dq globbing +``globbing'' conventions used by -.Xr csh 1 . -This allows users to utilize the metacharacters -.Dq Li \&*?[]{}~ . -.Pp -.Nm Ftpd -authenticates users according to the following rules: -.Pp -.Bl -enum -offset indent -.It +.IR csh (1). +This allows users to utilize the metacharacters ``\&*?[]{}~''. +.PP +.B Ftpd +authenticates users according to the following rules: +.sp +.TP + 1. The user name must be in the password data base, -.Pa /etc/passwd . -.It +.IR /etc/passwd . +.TP + 2. An -.Dv AUTH -command must be accepted, the ensuing authentication protocol -(conducted via -.Dv ADAT -commands and replies) -must successfully complete, and the authenticated user must permitted -access. Otherwise, a valid password which is not null -must be provided by the client. -.It +.SM AUTH +command must be accepted, the ensuing authentication protocol (conducted +via +.SM ADAT +commands and replies) must successfully complete, and the authenticated +user must permitted access. Otherwise, a valid password which is not +null must be provided by the client. +.TP + 3. The user name must not appear in the file -.Pa /etc/ftpusers . -.It +.IR /etc/ftpusers . +.TP + 4. The user must have a standard shell returned by -.Xr getusershell 3 . -.It -If the user name is -.Dq anonymous -or -.Dq ftp , -an -anonymous ftp account must be present in the password -file (user -.Dq ftp ) . -In this case the user is allowed -to log in by specifying any password (by convention this +.IR getusershell (3). +.TP + 5. +If the user name is ``anonymous'' or ``ftp'', an anonymous ftp account +must be present in the password file (user ``ftp''). In this case the +user is allowed to log in by specifying any password (by convention this is given as the client host's name). -.El -.Pp -In the last case, -.Nm ftpd -takes special measures to restrict the client's access privileges. -The server performs a -.Xr chroot 2 -command to the home directory of the -.Dq ftp -user. -In order that system security is not breached, it is recommended -that the -.Dq ftp -subtree be constructed with care; the following -rules are recommended. -.Bl -tag -width "~ftp/pub" -offset indent -.It Pa ~ftp -Make the home directory owned by -.Dq ftp -and unwritable by anyone. -.It Pa ~ftp/bin -Make this directory owned by the super-user and unwritable by -anyone. The program -.Xr ls 1 -must be present to support the list command. This -program should have mode 111. -.It Pa ~ftp/etc -Make this directory owned by the super-user and unwritable by -anyone. The files -.Xr passwd 5 +.PP +In the last case, +.B ftpd +takes special measures to restrict the client's access privileges. The +server performs a +.IR chroot (2) +command to the home directory of the ``ftp'' user. In order that system +security is not breached, it is recommended that the ``ftp'' subtree be +constructed with care; the following rules are recommended. +.TP +.I ~ftp +Make the home directory owned by ``ftp'' and unwritable by anyone. +.TP +.I ~ftp/bin +Make this directory owned by the super-user and unwritable by anyone. +The program +.IR ls (1) +must be present to support the list command. This program should have +mode 111. +.TP +.I ~ftp/etc +Make this directory owned by the super-user and unwritable by anyone. +The files +.IR passwd (5) and -.Xr group 5 -must be present for the -.Xr ls -command to be able to produce owner names rather than numbers. -The password field in -.Xr passwd -is not used, and should not contain real encrypted passwords. -These files should be mode 444. -.It Pa ~ftp/pub -Make this directory mode 777 and owned by -.Dq ftp . -Users -should then place files which are to be accessible via the -anonymous account in this directory. -.El -.Pp +.IR group (5) +must be present for the +.I ls +command to be able to produce owner names rather than numbers. The +password field in +.I passwd +is not used, and should not contain real encrypted passwords. These +files should be mode 444. +.TP +.I ~ftp/pub +Make this directory mode 777 and owned by ``ftp''. Users should then +place files which are to be accessible via the anonymous account in this +directory. +.PP If an -.Dv ADAT -command succeeds, the control channel must be either -integrity or privacy protected. -In this case, the -.Dv MIC +.SM ADAT +command succeeds, the control channel must be either integrity or +privacy protected. In this case, the +.SM MIC and -.Dv ENC -commands are the only commands allowed over the control channel. -The argument to the -.Dv MIC -command is a base 64 encoded string which, when decoded, is an -ftp command integrity protected with a cryptographic checksum. -The argument to the -.Dv ENC -command is a base 64 encoded string which, when decoded, is an -ftp command privacy and integrity protected with encryption. -.Pp +.SM ENC +commands are the only commands allowed over the control channel. The +argument to the +.SM MIC +command is a base 64 encoded string which, when decoded, is an ftp +command integrity protected with a cryptographic checksum. The argument +to the +.SM ENC +command is a base 64 encoded string which, when decoded, is an ftp +command privacy and integrity protected with encryption. +.PP If an -.Dv ADAT -command succeeds, -ftp replies will also be either integrity or privacy protected. -.Pp +.SM ADAT +command succeeds, ftp replies will also be either integrity or privacy +protected. +.PP If an -.Dv ADAT -command succeeds, the data channel can also be integrity or privacy protected. -The -.Dv PROT -command accepts S for integrity and P for privacy protection. -Unless an -.Dv ADAT +.SM ADAT +command succeeds, the data channel can also be integrity or privacy +protected. The +.SM PROT +command accepts S for integrity and P for privacy protection. Unless an +.SM ADAT command succeeds, the only protection level accepted by the -.Dv PROT +.SM PROT command is C (clear). -.Sh SEE ALSO -.Xr ftp 1 , -.Xr getusershell 3 , -.Xr syslogd 8 -.Pp -Lunt, S. J., -FTP Security Extensions, -Internet Draft, -November 1993. -.Sh BUGS -The anonymous account is inherently dangerous and should -avoided when possible. -.Pp -The server must run as the super-user -to create sockets with privileged port numbers. It maintains -an effective user id of the logged in user, reverting to -the super-user only when binding addresses to sockets. The -possible security holes have been extensively -scrutinized, but are possibly incomplete. -.Sh HISTORY +.SH SEE ALSO +.IR ftp (1), +.IR getusershell (3), +.IR syslogd (8) +.PP +Lunt, S. J., FTP Security Extensions, Internet Draft, November 1993. +.SH BUGS +The anonymous account is inherently dangerous and should avoided when +possible. +.PP +The server must run as the super-user to create sockets with privileged +port numbers. It maintains an effective user id of the logged in user, +reverting to the super-user only when binding addresses to sockets. The +possible security holes have been extensively scrutinized, but are +possibly incomplete. +.SH HISTORY The -.Nm -command appeared in -.Bx 4.2 . +.B ftpd +command appeared in 4.2BSD. -- 2.26.2