Annotation of 43BSDReno/libexec/ftpd/ftpd.8, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1985, 1988 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted provided
                      5: .\" that: (1) source distributions retain this entire copyright notice and
                      6: .\" comment, and (2) distributions including binaries display the following
                      7: .\" acknowledgement:  ``This product includes software developed by the
                      8: .\" University of California, Berkeley and its contributors'' in the
                      9: .\" documentation or other materials provided with the distribution and in
                     10: .\" all advertising materials mentioning features or use of this software.
                     11: .\" Neither the name of the University nor the names of its contributors may
                     12: .\" be used to endorse or promote products derived from this software without
                     13: .\" specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"    @(#)ftpd.8      6.8 (Berkeley) 6/24/90
                     19: .\"
                     20: .TH FTPD 8 "February 23, 1989"
                     21: .UC 5
                     22: .SH NAME
                     23: ftpd \- DARPA Internet File Transfer Protocol server
                     24: .SH SYNOPSIS
                     25: .B ftpd
                     26: [
                     27: .B \-d
                     28: ] [
                     29: .B \-l
                     30: ] [
                     31: .BR \-t timeout
                     32: ] [
                     33: .BR \-T maxtimeout
                     34: ]
                     35: .SH DESCRIPTION
                     36: .I Ftpd
                     37: is the DARPA Internet File Transfer Protocol
                     38: server process.  The server uses the TCP protocol
                     39: and listens at the port specified in the ``ftp''
                     40: service specification; see
                     41: .IR services (5).
                     42: .PP
                     43: If the 
                     44: .B \-d
                     45: option is specified,
                     46: debugging information is written to the syslog.
                     47: .PP
                     48: If the
                     49: .B \-l
                     50: option is specified,
                     51: each ftp session is logged in the syslog.
                     52: .PP
                     53: The ftp server
                     54: will timeout an inactive session after 15 minutes.
                     55: If the
                     56: .B \-t
                     57: option is specified,
                     58: the inactivity timeout period will be set to
                     59: .I timeout
                     60: seconds.
                     61: A client may also request a different timeout period;
                     62: the maximum period allowed may be set to
                     63: .I timeout
                     64: seconds with the
                     65: .B \-T
                     66: option.
                     67: The default limit is 2 hours.
                     68: .PP
                     69: The ftp server currently supports the following ftp
                     70: requests; case is not distinguished.
                     71: .PP
                     72: .nf
                     73: .ta \w'Request        'u
                     74: \fBRequest     Description\fP
                     75: ABOR   abort previous command
                     76: ACCT   specify account (ignored)
                     77: ALLO   allocate storage (vacuously)
                     78: APPE   append to a file
                     79: CDUP   change to parent of current working directory
                     80: CWD    change working directory
                     81: DELE   delete a file
                     82: HELP   give help information
                     83: LIST   give list files in a directory (``ls -lgA'')
                     84: MKD    make a directory
                     85: MDTM   show last modification time of file
                     86: MODE   specify data transfer \fImode\fP
                     87: NLST   give name list of files in directory 
                     88: NOOP   do nothing
                     89: PASS   specify password
                     90: PASV   prepare for server-to-server transfer
                     91: PORT   specify data connection port
                     92: PWD    print the current working directory
                     93: QUIT   terminate session
                     94: REST   restart incomplete transfer
                     95: RETR   retrieve a file
                     96: RMD    remove a directory
                     97: RNFR   specify rename-from file name
                     98: RNTO   specify rename-to file name
                     99: SITE   non-standard commands (see next section)
                    100: SIZE   return size of file
                    101: STAT   return status of server
                    102: STOR   store a file
                    103: STOU   store a file with a unique name
                    104: STRU   specify data transfer \fIstructure\fP
                    105: SYST   show operating system type of server system
                    106: TYPE   specify data transfer \fItype\fP
                    107: USER   specify user name
                    108: XCUP   change to parent of current working directory (deprecated)
                    109: XCWD   change working directory (deprecated)
                    110: XMKD   make a directory (deprecated)
                    111: XPWD   print the current working directory (deprecated)
                    112: XRMD   remove a directory (deprecated)
                    113: .fi
                    114: .PP
                    115: The following non-standard or UNIX specific commands are supported
                    116: by the SITE request.
                    117: .PP
                    118: .nf
                    119: .ta \w'Request        'u
                    120: \fBRequest     Description\fP
                    121: UMASK  change umask. \fIE.g.\fP SITE UMASK 002
                    122: IDLE   set idle-timer. \fIE.g.\fP SITE IDLE 60
                    123: CHMOD  change mode of a file. \fIE.g.\fP SITE CHMOD 755 filename
                    124: HELP   give help information. \fIE.g.\fP SITE HELP
                    125: .fi
                    126: .PP
                    127: The remaining ftp requests specified in Internet RFC 959 are
                    128: recognized, but not implemented.
                    129: MDTM and SIZE are not specified in
                    130: RFC 959, but will appear in the next updated FTP RFC.
                    131: .PP
                    132: The ftp server will abort an active file transfer only when the
                    133: ABOR command is preceded by a Telnet "Interrupt Process" (IP)
                    134: signal and a Telnet "Synch" signal in the command Telnet stream,
                    135: as described in Internet RFC 959.
                    136: If a STAT command is received during a data transfer, preceded by a Telnet IP
                    137: and Synch, transfer status will be returned.
                    138: .PP
                    139: .I Ftpd
                    140: interprets file names according to the ``globbing''
                    141: conventions used by
                    142: .IR csh (1).
                    143: This allows users to utilize the metacharacters ``*?[]{}~''.
                    144: .PP
                    145: .I Ftpd
                    146: authenticates users according to three rules. 
                    147: .IP 1)
                    148: The user name must be in the password data base,
                    149: .IR /etc/passwd ,
                    150: and not have a null password.  In this case a password
                    151: must be provided by the client before any file operations
                    152: may be performed.
                    153: .IP 2)
                    154: The user name must not appear in the file
                    155: .IR /etc/ftpusers .
                    156: .IP 3)
                    157: The user must have a standard shell returned by 
                    158: .IR getusershell (3).
                    159: .IP 4)
                    160: If the user name is ``anonymous'' or ``ftp'', an
                    161: anonymous ftp account must be present in the password
                    162: file (user ``ftp'').  In this case the user is allowed
                    163: to log in by specifying any password (by convention this
                    164: is given as the client host's name).
                    165: .PP
                    166: In the last case, 
                    167: .I ftpd
                    168: takes special measures to restrict the client's access privileges.
                    169: The server performs a 
                    170: .IR chroot (2)
                    171: command to the home directory of the ``ftp'' user.
                    172: In order that system security is not breached, it is recommended
                    173: that the ``ftp'' subtree be constructed with care;  the following
                    174: rules are recommended.
                    175: .IP ~ftp)
                    176: Make the home directory owned by ``ftp'' and unwritable by anyone.
                    177: .IP ~ftp/bin)
                    178: Make this directory owned by the super-user and unwritable by
                    179: anyone.  The program
                    180: .IR ls (1)
                    181: must be present to support the list command.  This
                    182: program should have mode 111.
                    183: .IP ~ftp/etc)
                    184: Make this directory owned by the super-user and unwritable by
                    185: anyone.  The files
                    186: .IR passwd (5)
                    187: and
                    188: .IR group (5)
                    189: must be present for the 
                    190: .I ls
                    191: command to be able to produce owner names rather than numbers.
                    192: The password field in
                    193: .I passwd
                    194: is not used, and should not contain real encrypted passwords.
                    195: These files should be mode 444.
                    196: .IP ~ftp/pub)
                    197: Make this directory mode 777 and owned by ``ftp''.  Users
                    198: should then place files which are to be accessible via the
                    199: anonymous account in this directory.
                    200: .SH "SEE ALSO"
                    201: ftp(1), getusershell(3), syslogd(8)
                    202: .SH BUGS
                    203: The anonymous account is inherently dangerous and should
                    204: avoided when possible.
                    205: .PP
                    206: The server must run as the super-user
                    207: to create sockets with privileged port numbers.  It maintains
                    208: an effective user id of the logged in user, reverting to
                    209: the super-user only when binding addresses to sockets.  The
                    210: possible security holes have been extensively
                    211: scrutinized, but are possibly incomplete.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.