sunet/doc/latex/ftpd.tex

116 lines
4.1 KiB
TeX

\chapter{FTP Server}\label{cha:ftpd}
The \ex{ftpd} structure contains a complete anonymous ftp server.
\defun{ftpd}{options}{\noreturn}
\defunx{ftp-inetd}{options}{\noreturn}
\begin{desc}
\ex{Ftpd} starts the server, using \var{anonymous-home} as the
root directory of the server.
\ex{ftpd-inetd} is the version to be used from \ex{inetd}.
\ex{Ftpd-inetd} handles the connection through the current standard
output and input ports.
\end{desc}
%
The \var{options} argument can be constructed through a number of
procedures with names of the form \texttt{with-\ldots}. Each of these
procedures either creates a fresh options value or adds a
configuration parameter to an old options argument. The configuration
parameter value is always the first argument, the (old) options value
the optional second one. Here they are:
\defun{with-port}{port [options]}{options}
\begin{desc}
This specifies the port on which the server listens. Defaults to 21.
\end{desc}
\defun{with-anonymous-home}{string [options]}{options}
\begin{desc}
This specifies the home directory for anonymous logins. Defaults to
\verb|"~ftp"|.
\end{desc}
\defun{with-banner}{list [options]}{options}
\begin{desc}
This specifies an alternative greeting banner for those members of
the Untergrund who prefer to remain covert. The banner is
represented as a list of strings, one for each line of output.
\end{desc}
\defun{with-log-port}{output-port [options]}{options}
\begin{desc}
If this is non-\sharpf, ex{ftpd} outputs a log entry for each file
sent or retrieved on \var{output-port}. Defaults to \sharpf.
\end{desc}
\defun{with-dns-lookup?}{boolean [options]}{options}
\begin{desc}
If \var{dns-lookup?} is \sharpt, the log file will contain the host
names instead of their IP addresses. If \var{dns-lookup?} is \sharpf,
the log will only contain IP addresses. Defaults to \sharpf.
\end{desc}
%
The \ex{make-ftpd-options} eases the construction of the options
argument:
%
\defun{make-ftpd-options}{transformer value \ldots}{options}
\begin{desc}
This constructs an options value from an argument list of parameter
transformers and parameter values. The arguments come in pairs,
each an option transformer from the list above, and a value for that
parameter. \ex{Make-ftpd-options} returns the resulting options value.
\end{desc}
The log format of \ex{ftpd} is the same as the one of
\ex{wuftpd}. The entries look like this:
%
\begin{verbatim}
Fri Apr 19 17:08:14 2002 4 134.2.2.171 56881 /files.lst b _ i a nop@ssword ftp 0 *
\end{verbatim}
%
These are the fields:
\begin{enumerate}
\item Current date and time. This field contains
spaces and is 24 characters long.
\item Transfer time in seconds.
\item Remote host IP (wu-ftpd puts the name here).
\item File size in bytes
\item Name of file (spaces are converted to underscores)
\item Transfer type: \underline{a}scii or \underline{b}inary (image type).
\item Special action flags. As \ex{ftpd} does not support any special
action, it always has \ex{\_} here.
\item File was sent to user (\underline{o}utgoing) or received from user
(\underline{i}ncoming)
\item \underline{A}nonymous access
\item Anonymous ftp password.
\item Service name---always \ex{ftp}.
\item Authentication mode (always ``none'' = `\ex{0}').
\item Authenticated user ID (always ``not available'' = `\ex{*}')
\end{enumerate}
The server also writes log information to the syslog facility.
The following syslog levels occur in the output:
\begin{description}
\item[\ex{notice}]
\begin{itemize}
\item messages concerning \emph{connections} (establishing connection,
connection refused, closing connection due to timeout, etc.)
\item the execution of the \ex{STOR} command\\
Its success (\ie
somebody is putting something on your server via ftp, also known as
\ex{PUT}) is also logged at \ex{notice}.
\item internal errors
\item Unix errors
\item reaching of actually unreachable case branches
\end{itemize}
\item[\ex{info}] Messages concerning all other commands,
including the \ex{RETR} command.
\item[\ex{debug}] all other messages, including debug messages
\end{description}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "man"
%%% End: