146 lines
4.6 KiB
Groff
146 lines
4.6 KiB
Groff
|
.\" Copyright (c) 1985 Regents of the University of California.
|
||
|
.\" All rights reserved. The Berkeley software License Agreement
|
||
|
.\" specifies the terms and conditions for redistribution.
|
||
|
.\"
|
||
|
.\" @(#)ftpd.8c 6.4 (Berkeley) 5/28/86
|
||
|
.\"
|
||
|
.TH FTPD 8
|
||
|
.SH NAME
|
||
|
ftpd, in.ftpd, setup.anonftp \- DARPA Internet File Transfer Protocol server
|
||
|
.SH SYNOPSIS
|
||
|
.B "ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd"
|
||
|
.br
|
||
|
.B "tcpd ftp /usr/sbin/in.ftpd"
|
||
|
.SH DESCRIPTION
|
||
|
.B Ftpd
|
||
|
is the DARPA Internet File Transfer Prototocol
|
||
|
server process. The server uses the TCP protocol
|
||
|
and listens at the port specified in the ``ftp''
|
||
|
service specification; see
|
||
|
.BR services (5).
|
||
|
.PP
|
||
|
The ftp server currently supports the following ftp
|
||
|
requests; case is not distinguished.
|
||
|
.PP
|
||
|
.nf
|
||
|
.ta \w'Request 'u
|
||
|
\fBRequest Description\fP
|
||
|
ABOR abort previous command
|
||
|
ACCT specify account (ignored)
|
||
|
ALLO allocate storage (vacuously)
|
||
|
APPE append to a file
|
||
|
CDUP change to parent of current working directory
|
||
|
CWD change working directory
|
||
|
DELE delete a file
|
||
|
HELP give help information
|
||
|
LIST give list files in a directory (``ls -lA'')
|
||
|
MKD make a directory
|
||
|
MODE specify data transfer \fImode\fP
|
||
|
NLST give name list of files in directory (``ls'')
|
||
|
NOOP do nothing
|
||
|
PASS specify password
|
||
|
PASV prepare for server-to-server transfer
|
||
|
PORT specify data connection port
|
||
|
PWD print the current working directory
|
||
|
QUIT terminate session
|
||
|
RETR retrieve a file
|
||
|
RMD remove a directory
|
||
|
RNFR specify rename-from file name
|
||
|
RNTO specify rename-to file name
|
||
|
STOR store a file
|
||
|
STOU store a file with a unique name
|
||
|
STRU specify data transfer \fIstructure\fP
|
||
|
TYPE specify data transfer \fItype\fP
|
||
|
USER specify user name
|
||
|
XCUP change to parent of current working directory
|
||
|
XCWD change working directory
|
||
|
XMKD make a directory
|
||
|
XPWD print the current working directory
|
||
|
XRMD remove a directory
|
||
|
.fi
|
||
|
.PP
|
||
|
The remaining ftp requests specified in Internet RFC 959 are
|
||
|
recognized, but not implemented.
|
||
|
.PP
|
||
|
The ftp server will abort an active file transfer only when the
|
||
|
ABOR command is preceded by a Telnet "Interrupt Process" (IP)
|
||
|
signal and a Telnet "Synch" signal in the command Telnet stream,
|
||
|
as described in Internet RFC 959.
|
||
|
.PP
|
||
|
.B Ftpd
|
||
|
interprets file names according to the ``globbing''
|
||
|
conventions used by
|
||
|
.BR csh (1).
|
||
|
This allows users to utilize the metacharacters ``*?[]{}~''.
|
||
|
.PP
|
||
|
.B Ftpd
|
||
|
authenticates users according to three rules.
|
||
|
.IP 1)
|
||
|
The user name must be in the password data base,
|
||
|
.BR /etc/passwd ,
|
||
|
and not have a null password. In this case a password
|
||
|
must be provided by the client before any file operations
|
||
|
may be performed.
|
||
|
.IP 2)
|
||
|
The user name must not appear in the file
|
||
|
.BR /etc/ftpusers .
|
||
|
.IP 3)
|
||
|
If the user name is ``anonymous'' or ``ftp'', an
|
||
|
anonymous ftp account must be present in the password
|
||
|
file (user ``ftp''). In this case the user is allowed
|
||
|
to log in by specifying any password (by convention this
|
||
|
is given as the client host's name).
|
||
|
.PP
|
||
|
In the last case,
|
||
|
.B ftpd
|
||
|
takes special measures to restrict the client's access privileges.
|
||
|
The server performs a
|
||
|
.BR chroot (2)
|
||
|
command to the home directory of the ``ftp'' user.
|
||
|
In order that system security is not breached, it is recommended
|
||
|
that the ``ftp'' subtree be constructed with care; the following
|
||
|
rules are recommended.
|
||
|
.IP ~ftp)
|
||
|
Make the home directory owned by ``ftp'' and unwritable by anyone.
|
||
|
.IP ~ftp/bin)
|
||
|
Make this directory owned by the super-user and unwritable by
|
||
|
anyone. The program
|
||
|
.BR ls (1)
|
||
|
must be present to support the list commands. This
|
||
|
program should have mode 111.
|
||
|
.IP ~ftp/etc)
|
||
|
This directory could be created, and could have
|
||
|
.BR passwd (5)
|
||
|
and
|
||
|
.BR group (5)
|
||
|
databases in it so that
|
||
|
.B ls
|
||
|
can show file ownership, but outsiders will grab your password file and
|
||
|
misuse it to spam you. So don't bother.
|
||
|
.IP ~ftp/pub)
|
||
|
Make this directory mode 755 and owned by the super-user. Create
|
||
|
directories in it owned by users if those users want to manage an
|
||
|
anonymous ftp directory.
|
||
|
.IP ~ftp/pub/incoming)
|
||
|
Optionally create this directory for anonymous uploads. Make it mode
|
||
|
777. The FTP daemon will create files with mode 266, so remote users
|
||
|
can write a file, but only local users can do something with it.
|
||
|
.PP
|
||
|
The script
|
||
|
.B setup.anonftp
|
||
|
can be used to create or check an anonymous FTP tree.
|
||
|
.SH "SEE ALSO"
|
||
|
.BR ftp (1).
|
||
|
.SH BUGS
|
||
|
The anonymous account is inherently dangerous and should
|
||
|
avoided when possible.
|
||
|
.ig \" Minix doesn't have privileged port numbers (yet?)
|
||
|
.PP
|
||
|
The server must run as the super-user
|
||
|
to create sockets with privileged port numbers. It maintains
|
||
|
an effective user id of the logged in user, reverting to
|
||
|
the super-user only when binding addresses to sockets. The
|
||
|
possible security holes have been extensively
|
||
|
scrutinized, but are possibly incomplete.
|
||
|
..
|