Annotation of 43BSDReno/libexec/ftpd/ftpd.8, revision 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.