Annotation of cci/usr/src/man/man8/ftpd.8c, revision 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.