[9] | 1 | .\" Copyright (c) 1985 Regents of the University of California.
|
---|
| 2 | .\" All rights reserved. The Berkeley software License Agreement
|
---|
| 3 | .\" specifies the terms and conditions for redistribution.
|
---|
| 4 | .\"
|
---|
| 5 | .\" @(#)ftpd.8c 6.4 (Berkeley) 5/28/86
|
---|
| 6 | .\"
|
---|
| 7 | .TH FTPD 8
|
---|
| 8 | .SH NAME
|
---|
| 9 | ftpd, in.ftpd, setup.anonftp \- DARPA Internet File Transfer Protocol server
|
---|
| 10 | .SH SYNOPSIS
|
---|
| 11 | .B "ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd"
|
---|
| 12 | .br
|
---|
| 13 | .B "tcpd ftp /usr/sbin/in.ftpd"
|
---|
| 14 | .SH DESCRIPTION
|
---|
| 15 | .B 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 | .BR services (5).
|
---|
| 21 | .PP
|
---|
| 22 | The ftp server currently supports the following ftp
|
---|
| 23 | requests; case is not distinguished.
|
---|
| 24 | .PP
|
---|
| 25 | .nf
|
---|
| 26 | .ta \w'Request 'u
|
---|
| 27 | \fBRequest Description\fP
|
---|
| 28 | ABOR abort previous command
|
---|
| 29 | ACCT specify account (ignored)
|
---|
| 30 | ALLO allocate storage (vacuously)
|
---|
| 31 | APPE append to a file
|
---|
| 32 | CDUP change to parent of current working directory
|
---|
| 33 | CWD change working directory
|
---|
| 34 | DELE delete a file
|
---|
| 35 | HELP give help information
|
---|
| 36 | LIST give list files in a directory (``ls -lA'')
|
---|
| 37 | MKD make a directory
|
---|
| 38 | MODE specify data transfer \fImode\fP
|
---|
| 39 | NLST give name list of files in directory (``ls'')
|
---|
| 40 | NOOP do nothing
|
---|
| 41 | PASS specify password
|
---|
| 42 | PASV prepare for server-to-server transfer
|
---|
| 43 | PORT specify data connection port
|
---|
| 44 | PWD print the current working directory
|
---|
| 45 | QUIT terminate session
|
---|
| 46 | RETR retrieve a file
|
---|
| 47 | RMD remove a directory
|
---|
| 48 | RNFR specify rename-from file name
|
---|
| 49 | RNTO specify rename-to file name
|
---|
| 50 | STOR store a file
|
---|
| 51 | STOU store a file with a unique name
|
---|
| 52 | STRU specify data transfer \fIstructure\fP
|
---|
| 53 | TYPE specify data transfer \fItype\fP
|
---|
| 54 | USER specify user name
|
---|
| 55 | XCUP change to parent of current working directory
|
---|
| 56 | XCWD change working directory
|
---|
| 57 | XMKD make a directory
|
---|
| 58 | XPWD print the current working directory
|
---|
| 59 | XRMD remove a directory
|
---|
| 60 | .fi
|
---|
| 61 | .PP
|
---|
| 62 | The remaining ftp requests specified in Internet RFC 959 are
|
---|
| 63 | recognized, but not implemented.
|
---|
| 64 | .PP
|
---|
| 65 | The ftp server will abort an active file transfer only when the
|
---|
| 66 | ABOR command is preceded by a Telnet "Interrupt Process" (IP)
|
---|
| 67 | signal and a Telnet "Synch" signal in the command Telnet stream,
|
---|
| 68 | as described in Internet RFC 959.
|
---|
| 69 | .PP
|
---|
| 70 | .B Ftpd
|
---|
| 71 | interprets file names according to the ``globbing''
|
---|
| 72 | conventions used by
|
---|
| 73 | .BR csh (1).
|
---|
| 74 | This allows users to utilize the metacharacters ``*?[]{}~''.
|
---|
| 75 | .PP
|
---|
| 76 | .B Ftpd
|
---|
| 77 | authenticates users according to three rules.
|
---|
| 78 | .IP 1)
|
---|
| 79 | The user name must be in the password data base,
|
---|
| 80 | .BR /etc/passwd ,
|
---|
| 81 | and not have a null password. In this case a password
|
---|
| 82 | must be provided by the client before any file operations
|
---|
| 83 | may be performed.
|
---|
| 84 | .IP 2)
|
---|
| 85 | The user name must not appear in the file
|
---|
| 86 | .BR /etc/ftpusers .
|
---|
| 87 | .IP 3)
|
---|
| 88 | If the user name is ``anonymous'' or ``ftp'', an
|
---|
| 89 | anonymous ftp account must be present in the password
|
---|
| 90 | file (user ``ftp''). In this case the user is allowed
|
---|
| 91 | to log in by specifying any password (by convention this
|
---|
| 92 | is given as the client host's name).
|
---|
| 93 | .PP
|
---|
| 94 | In the last case,
|
---|
| 95 | .B ftpd
|
---|
| 96 | takes special measures to restrict the client's access privileges.
|
---|
| 97 | The server performs a
|
---|
| 98 | .BR chroot (2)
|
---|
| 99 | command to the home directory of the ``ftp'' user.
|
---|
| 100 | In order that system security is not breached, it is recommended
|
---|
| 101 | that the ``ftp'' subtree be constructed with care; the following
|
---|
| 102 | rules are recommended.
|
---|
| 103 | .IP ~ftp)
|
---|
| 104 | Make the home directory owned by ``ftp'' and unwritable by anyone.
|
---|
| 105 | .IP ~ftp/bin)
|
---|
| 106 | Make this directory owned by the super-user and unwritable by
|
---|
| 107 | anyone. The program
|
---|
| 108 | .BR ls (1)
|
---|
| 109 | must be present to support the list commands. This
|
---|
| 110 | program should have mode 111.
|
---|
| 111 | .IP ~ftp/etc)
|
---|
| 112 | This directory could be created, and could have
|
---|
| 113 | .BR passwd (5)
|
---|
| 114 | and
|
---|
| 115 | .BR group (5)
|
---|
| 116 | databases in it so that
|
---|
| 117 | .B ls
|
---|
| 118 | can show file ownership, but outsiders will grab your password file and
|
---|
| 119 | misuse it to spam you. So don't bother.
|
---|
| 120 | .IP ~ftp/pub)
|
---|
| 121 | Make this directory mode 755 and owned by the super-user. Create
|
---|
| 122 | directories in it owned by users if those users want to manage an
|
---|
| 123 | anonymous ftp directory.
|
---|
| 124 | .IP ~ftp/pub/incoming)
|
---|
| 125 | Optionally create this directory for anonymous uploads. Make it mode
|
---|
| 126 | 777. The FTP daemon will create files with mode 266, so remote users
|
---|
| 127 | can write a file, but only local users can do something with it.
|
---|
| 128 | .PP
|
---|
| 129 | The script
|
---|
| 130 | .B setup.anonftp
|
---|
| 131 | can be used to create or check an anonymous FTP tree.
|
---|
| 132 | .SH "SEE ALSO"
|
---|
| 133 | .BR ftp (1).
|
---|
| 134 | .SH BUGS
|
---|
| 135 | The anonymous account is inherently dangerous and should
|
---|
| 136 | avoided when possible.
|
---|
| 137 | .ig \" MINIX 3 doesn't have privileged port numbers (yet?)
|
---|
| 138 | .PP
|
---|
| 139 | The server must run as the super-user
|
---|
| 140 | to create sockets with privileged port numbers. It maintains
|
---|
| 141 | an effective user id of the logged in user, reverting to
|
---|
| 142 | the super-user only when binding addresses to sockets. The
|
---|
| 143 | possible security holes have been extensively
|
---|
| 144 | scrutinized, but are possibly incomplete.
|
---|
| 145 | ..
|
---|