Annotation of cci/usr/src/man/man8/ftpd.8c, revision 1.1.1.1

1.1       root        1: .TH FTPD 8C "4 March 1983"
                      2: .UC 4
                      3: .SH NAME
                      4: ftpd \- DARPA Internet File Transfer Protocol server
                      5: .SH SYNOPSIS
                      6: .B /etc/ftpd
                      7: [
                      8: .B \-d
                      9: ] [
                     10: .B \-l
                     11: ] [
                     12: .BR \-t timeout
                     13: ]
                     14: .SH DESCRIPTION
                     15: .I Ftpd
                     16: is the DARPA Internet File Transfer Prototocol
                     17: server process.  The server uses the TCP protocol
                     18: and listens at the port specified in the ``ftp''
                     19: service specification; see
                     20: .IR services (5).
                     21: .PP
                     22: If the 
                     23: .B \-d
                     24: option is specified,
                     25: each socket created will have debugging turned
                     26: on (SO_DEBUG).  With debugging enabled, the system
                     27: will trace all TCP packets sent and received on a
                     28: socket.  The program
                     29: .IR trpt (8C)
                     30: may then be used to interpret the packet traces.
                     31: .PP
                     32: If the
                     33: .B \-l
                     34: option is specified,
                     35: each ftp session is logged on the standard output.
                     36: This allows a line of the form 
                     37: `/etc/ftpd -l > /tmp/ftplog''
                     38: to be used to conveniently maintain a log of ftp sessions.
                     39: .PP
                     40: The ftp server
                     41: will timeout an inactive session after 60 seconds.
                     42: If the
                     43: .B \-t
                     44: option is specified,
                     45: the inactivity timeout period will be set to
                     46: .IR timeout .
                     47: .PP
                     48: The ftp server currently supports the following ftp
                     49: requests;  case is not distinguished.
                     50: .PP
                     51: .nf
                     52: .ta \w'Request        'u
                     53: \fBRequest     Description\fP
                     54: ACCT   specify account (ignored)
                     55: ALLO   allocate storage (vacuously)
                     56: APPE   append to a file
                     57: CWD    change working directory
                     58: DELE   delete a file
                     59: HELP   give help information
                     60: LIST   give list files in a directory (``ls -lg'')
                     61: MODE   specify data transfer \fImode\fP
                     62: NLST   give name list of files in directory (``ls'')
                     63: NOOP   do nothing
                     64: PASS   specify password
                     65: PORT   specify data connection port
                     66: QUIT   terminate session
                     67: RETR   retrieve a file
                     68: RNFR   specify rename-from file name
                     69: RNTO   specify rename-to file name
                     70: STOR   store a file
                     71: STRU   specify data transfer \fIstructure\fP
                     72: TYPE   specify data transfer \fItype\fP
                     73: USER   specify user name
                     74: XCUP   change to parent of current working directory
                     75: XCWD   change working directory
                     76: XMKD   make a directory
                     77: XPWD   print the current working directory
                     78: XRMD   remove a directory
                     79: .fi
                     80: .PP
                     81: The remaining ftp requests specified in Internet RFC 765 are
                     82: recognized, but not implemented.
                     83: .PP
                     84: .I Ftpd
                     85: interprets file names according to the ``globbing''
                     86: conventions used by
                     87: .IR csh (1).
                     88: This allows users to utilize the metacharacters ``*?[]{}~''.
                     89: .PP
                     90: .I Ftpd
                     91: authenticates users according to three rules. 
                     92: .IP 1)
                     93: The user name must be in the password data base,
                     94: .IR /etc/passwd ,
                     95: and not have a null password.  In this case a password
                     96: must be provided by the client before any file operations
                     97: may be performed.
                     98: .IP 2)
                     99: The user name must not appear in the file
                    100: .IR /etc/ftpusers .
                    101: .IP 3)
                    102: If the user name is ``anonymous'' or ``ftp'', an
                    103: anonymous ftp account must be present in the password
                    104: file (user ``ftp'').  In this case the user is allowed
                    105: to log in by specifying any password (by convention this
                    106: is given as the client host's name).
                    107: .PP
                    108: In the last case, 
                    109: .I ftpd
                    110: takes special measures to restrict the client's access privileges.
                    111: The server performs a 
                    112: .IR chroot (2)
                    113: command to the home directory of the ``ftp'' user.
                    114: In order that system security is not breached, it is recommended
                    115: that the ``ftp'' subtree be constructed with care;  the following
                    116: rules are recommended.
                    117: .IP ~ftp)
                    118: Make the home directory owned by ``ftp'' and unwritable by anyone.
                    119: .IP ~ftp/bin)
                    120: Make this directory owned by the super-user and unwritable by
                    121: anyone.  The program
                    122: .IR ls (1)
                    123: must be present to support the list commands.  This
                    124: program should have mode 111.
                    125: .IP ~ftp/etc)
                    126: Make this directory owned by the super-user and unwritable by
                    127: anyone.  The files
                    128: .IR passwd (5)
                    129: and
                    130: .IR group (5)
                    131: must be present for the 
                    132: .I ls
                    133: command to work properly.  These files should be mode 444.
                    134: .IP ~ftp/pub)
                    135: Make this directory mode 777 and owned by ``ftp''.  Users
                    136: should then place files which are to be accessible via the
                    137: anonymous account in this directory.
                    138: .SH "SEE ALSO"
                    139: ftp(1C),
                    140: .SH BUGS
                    141: There is no support for aborting commands.
                    142: .PP
                    143: The anonymous account is inherently dangerous and should
                    144: avoided when possible.
                    145: .PP
                    146: The server must run as the super-user
                    147: to create sockets with privileged port numbers.  It maintains
                    148: an effective user id of the logged in user, reverting to
                    149: the super-user only when binding addresses to sockets.  The
                    150: possible security holes have been extensively
                    151: 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.