summaryrefslogtreecommitdiffstats
path: root/upstream/debian-bookworm/man8/in.ftpd.8
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/debian-bookworm/man8/in.ftpd.8')
-rw-r--r--upstream/debian-bookworm/man8/in.ftpd.8526
1 files changed, 526 insertions, 0 deletions
diff --git a/upstream/debian-bookworm/man8/in.ftpd.8 b/upstream/debian-bookworm/man8/in.ftpd.8
new file mode 100644
index 00000000..0d211f93
--- /dev/null
+++ b/upstream/debian-bookworm/man8/in.ftpd.8
@@ -0,0 +1,526 @@
+.\"
+.\" Copyright (c) 1985, 1988, 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)ftpd.8 8.2 (Berkeley) 4/19/94
+.\" NetBSD: ftpd.8,v 1.8 1996/01/14 20:55:23 thorpej Exp
+.\" OpenBSD: ftpd.8,v 1.9 1996/12/03 03:07:16 deraadt Exp
+.\" OpenBSD: ftpd.8,v 1.12 1997/05/01 14:45:36 deraadt Exp
+.\" OpenBSD: ftpd.8,v 1.22 1999/07/09 13:35:50 aaron Exp
+.\" $Id: ftpd.8,v 1.17 2000/07/30 23:56:57 dholland Exp $
+.\"
+.Dd September 14, 1999
+.Dt FTPD 8
+.Os "Linux NetKit (0.17)"
+.Sh NAME
+.Nm ftpd
+.Nd
+Internet File Transfer Protocol server
+.Sh SYNOPSIS
+.Nm ftpd
+.Op Fl AdDhlMnPSU
+.Op Fl T Ar maxtimeout
+.Op Fl t Ar timeout
+.Op Fl u Ar mask
+.Op Fl z Ar debug
+.Op Fl z Ar debug=file
+.Op Fl z Ar certsok
+.Op Fl z Ar certrequired
+.Op Fl z Ar secure
+.Op Fl z Ar ssl
+.Op Fl z Ar verify=flags
+.Op Fl z Ar cacert=cafile
+.Op Fl z Ar cert=certfile
+.Op Fl z Ar key=keyfile
+.Op Fl z Ar cipher=list
+.Op Fl z Ar legacy
+.Sh DESCRIPTION
+.Nm Ftpd
+is the
+Internet File Transfer Protocol
+server process. The server uses the
+.Tn TCP
+protocol
+and listens at the port specified in the
+.Dq ftp
+service specification; see
+.Xr services 5 .
+.Pp
+Available options:
+.Bl -tag -width Ds
+.It Fl 4
+Use IPv4 addressing only. The default is to offer service for both families, IPv6 and IPv4.
+.It Fl 6
+Only provide IPv6 addressing capability.
+.It Fl A
+Permit only anonymous ftp connections or accounts listed in
+.Pa /etc/ftpchroot.
+Other connection attempts are refused. This option is no longer effective if
+PAM is enabled. Please refer to the README file for instructions to doing
+this with PAM.
+.It Fl d
+Debugging information is written to the syslog using LOG_FTP.
+.It Fl D
+With this option set,
+.Nm ftpd
+will detach and become a daemon, accepting connections on the FTP port and
+forking child processes to handle them. This has lower overhead than
+starting
+.Nm ftpd
+from
+.Xr inetd 8
+and is thus useful on busy servers to reduce load.
+.It Fl h
+The server will use data ports in the high port range for passive connections.
+This range is defined by the
+.Ev IPPORT_HIFIRSTAUTO
+and
+.Ev IPPORT_HILASTAUTO
+defines in <netinet/in.h>. In
+.Ox
+they are set to 49152 and 65535 respectively.
+.It Fl l
+Each successful and failed
+.Xr ftp 1
+session is logged using syslog with a facility of LOG_FTP.
+If this option is specified twice, the retrieve (get), store (put), append,
+delete, make directory, remove directory and rename operations and
+their filename arguments are also logged.
+.It Fl M
+Enables multihomed mode. Instead of simply using
+.Pa ~ftp
+for anonymous transfers, a directory matching the fully qualified name of
+the IP number the client connected to, and located inside
+.Pa ~ftp
+is used instead.
+.It Fl n
+Use numeric IP addresses in logs instead of doing hostname lookup.
+.It Fl P
+Permit illegal port numbers or addresses for PORT command initiated connects.
+By default
+.Xr ftpd 8
+violates the RFC and thus constrains the PORT command to non-reserved ports
+and requires it use the same source address as the connection came from.
+This prevents the "FTP bounce attack" against services on both the local
+machine and other local machines.
+.It Fl S
+With this option set,
+.Nm ftpd
+logs all anonymous transfers to the file
+.Pa /var/log/ftpd
+when this file exists.
+.It Fl U
+Each concurrent
+.Xr ftp 1
+session is logged to the file
+.Pa /var/run/utmp ,
+making them visible to commands such as
+.Xr who 1 .
+This option at present is unsupporte and will always silently fail.
+.It Fl T
+A client may also request a different timeout period;
+the maximum period allowed may be set to
+.Ar timeout
+seconds with the
+.Fl T
+option.
+The default limit is 2 hours.
+.It Fl t
+The inactivity timeout period is set to
+.Ar timeout
+seconds (the default is 15 minutes).
+.It Fl u
+Change the default umask from 027 to
+.Ar mask .
+.It Fl z Ar SSL-parameter
+This option is only valid if
+.Nm ftpd
+has been built with SSL (Secure Socket Layer) support.
+.Bl -tag -width Fl
+.It Ic secure
+Don't fall back to unencrypted mode, that is without SSL, if the client
+is not explicitly asking for SSL mode. In this server mode
+.Nm ftpd
+only accepts connections from SSL enhanced
+.Ar FTP clients
+with an option similar to
+.Ic -z secure
+in active use.
+.It Ic ssl
+Negotiate SSL at first, then fall back to legacy FTP protocol.
+.It Ic nossl, !ssl
+switch off SSL negotiation
+.It Ic debug
+Enable SSL related debugging. Useless in non-daemon mode.
+.It Ic debug=file
+Direct the debugging output to
+.Ar file .
+.It Ic certsok
+Look username up in
+.Pa /etc/ssl.users .
+The format of this file is lines of this form:
+.Ar user1,user2:/C=US/...
+.br
+where
+.Ar user1
+and
+.Ar user2
+are usernames. If the client certificate is valid,
+authenticate with any password. Use a command
+.Ar openssl x509 -noout -subject
+to extract the needed fields, all of which are needed.
+.It Ic certrequired
+Client certificate is mandatory and the user must be matched to the
+corresponding subject identifier listed in
+.Pa /etc/ssl.users .
+.It Ic verify=int
+Set the SSL verify flags (use combinations of SSL_VERIFY_* from
+.Ar openssl/ssl.h
+).
+.It Ic cacert=ca_file
+Use the CA certificates stored in
+.Ar ca_file
+to verify the identity of the peer client.
+The subject names found herein are given to the client for
+whatever use they may present. A clever client software is able
+to choose its identity hinted by this list.
+.It Ic cert=cert_file
+Use the certificate(s) in
+.Ar cert_file
+instead of the default location
+.Pa /etc/ftpd-ssl/ftpd.pem .
+This is a PEM formatted file. The first certificate identifies the
+server and the rest of the chain is used for verification purposes
+while talking to the peer client.
+.It Ic key=key_file
+Use the key stored in
+.Ar key_file ,
+should the certificate file not contain the required private key.
+.It Ic cipher=ciph_list
+Set the preferred ciphers to
+.Ar ciph_list .
+See
+.Ar openssl/ssl.h
+for more information).
+.It Ic legacy
+This is a compatibility option, which activates a work around during
+verification, which the legacy code depended on.
+It should not be used now that chains and CA lists are available,
+but is introduced to ease the transition to the better implementation.
+.El
+.El
+.Pp
+The file
+.Pa /etc/nologin
+can be used to disable ftp access.
+If the file exists,
+.Nm
+displays it and exits.
+If the file
+.Pa /etc/ftpwelcome
+exists,
+.Nm
+prints it before issuing the
+.Dq ready
+message.
+If the file
+.Pa /etc/motd
+exists,
+.Nm
+prints it after a successful login. If the file
+.Pa .message
+exists in a directory,
+.Nm
+prints it when that directory is entered.
+.Pp
+The ftp server currently supports the following ftp requests.
+The case of the requests is ignored.
+.Bl -column "Request" -offset indent
+.It Request Ta "Description"
+.It ABOR Ta "abort previous command"
+.It ACCT Ta "specify account (ignored)"
+.It ALLO Ta "allocate storage (vacuously)"
+.It APPE Ta "append to a file"
+.It CDUP Ta "change to parent of current working directory"
+.It CWD Ta "change working directory"
+.It DELE Ta "delete a file"
+.It EPRT Ta "specify data connection port, either IPv4 or IPv6"
+.It EPSV Ta "ask for a server port for fetching data"
+.It HELP Ta "give help information"
+.It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA"
+.It MKD Ta "make a directory"
+.It MDTM Ta "show last modification time of file"
+.It MODE Ta "specify data transfer" Em mode
+.It NLST Ta "give name list of files in directory"
+.It NOOP Ta "do nothing"
+.It PASS Ta "specify password"
+.It PASV Ta "prepare for server-to-server transfer"
+.It PORT Ta "specify data connection port"
+.It PWD Ta "print the current working directory"
+.It QUIT Ta "terminate session"
+.It REST Ta "restart incomplete transfer"
+.It RETR Ta "retrieve a file"
+.It RMD Ta "remove a directory"
+.It RNFR Ta "specify rename-from file name"
+.It RNTO Ta "specify rename-to file name"
+.It SITE Ta "non-standard commands (see next section)"
+.It SIZE Ta "return size of file"
+.It STAT Ta "return status of server"
+.It STOR Ta "store a file"
+.It STOU Ta "store a file with a unique name"
+.It STRU Ta "specify data transfer" Em structure
+.It SYST Ta "show operating system type of server system"
+.It TYPE Ta "specify data transfer" Em type
+.It USER Ta "specify user name"
+.It XCUP Ta "change to parent of current working directory (deprecated)"
+.It XCWD Ta "change working directory (deprecated)"
+.It XMKD Ta "make a directory (deprecated)"
+.It XPWD Ta "print the current working directory (deprecated)"
+.It XRMD Ta "remove a directory (deprecated)"
+.El
+.Pp
+The following non-standard or
+.Tn UNIX
+specific commands are supported
+by the
+SITE request.
+.Pp
+.Bl -column Request -offset indent
+.It Sy Request Ta Sy Description
+.It UMASK Ta change umask, e.g. ``SITE UMASK 002''
+.It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60''
+.It CHMOD Ta change mode of a file, e.g. ``SITE CHMOD 755 filename''
+.It HELP Ta give help information.
+.El
+.Pp
+The remaining ftp requests specified in Internet RFC 959
+are
+recognized, but not implemented.
+MDTM and SIZE are not specified in RFC 959, but will appear in the
+next updated FTP RFC.
+.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.
+If a
+STAT
+command is received during a data transfer, preceded by a Telnet IP
+and Synch, transfer status will be returned.
+.Pp
+.Nm Ftpd
+interprets file names according to the
+.Dq globbing
+conventions used by
+.Xr csh 1 .
+This allows users to utilize the metacharacters
+.Dq Li \&*?[]{}~ .
+.Pp
+.Nm Ftpd
+authenticates users according to five rules.
+.Pp
+.Bl -enum -offset indent
+.It
+The login name must be in the password data base,
+.\" .Pa /etc/pwd.db ,
+.Pa /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.
+If the user has an S/Key key, the response from a successful USER
+command will include an S/Key challenge. The client may choose to respond
+with a PASS command giving either a standard password or an S/Key
+one-time password. The server will automatically determine which type of
+password it has been given and attempt to authenticate accordingly. See
+.Xr skey 1
+for more information on S/Key authentication. S/Key is a Trademark of
+Bellcore.
+.It
+The login name must not appear in the file
+.Pa /etc/ftpusers .
+.It
+The user must have a standard shell returned by
+.Xr getusershell 3 .
+.It
+If the user name appears in the file
+.Pa /etc/ftpchroot
+the session's root will be changed to the user's login directory by
+.Xr chroot 2
+as for an
+.Dq anonymous
+or
+.Dq ftp
+account (see next item). However, the user must still supply a password.
+This feature is intended as a compromise between a fully anonymous account
+and a fully privileged account. The account should also be set up as for an
+anonymous account.
+.It
+If the user name is
+.Dq anonymous
+or
+.Dq ftp ,
+an
+anonymous ftp account must be present in the password
+file (user
+.Dq ftp ) .
+In this case the user is allowed
+to log in by specifying any password (by convention an email address for
+the user should be used as the password).
+.El
+.Pp
+In the last case,
+.Nm ftpd
+takes special measures to restrict the client's access privileges.
+The server performs a
+.Xr chroot 2
+to the home directory of the
+.Dq ftp
+user.
+In order that system security is not breached, it is recommended
+that the
+.Dq ftp
+subtree be constructed with care, following these rules:
+.Bl -tag -width "~ftp/pub" -offset indent
+.It Pa ~ftp
+Make the home directory owned by
+.Dq root
+and unwritable by anyone (mode 555).
+.It Pa ~ftp/bin
+Make this directory owned by
+.Dq root
+and unwritable by anyone (mode 511).
+.\"This directory is optional unless you have commands you wish
+.\"the anonymous ftp user to be able to run (the
+.\".Xr ls 1
+.\"command exists as a builtin).
+.\" -- not in the Linux port (yet?)
+This directory is required, and should contain at least a statically
+linked copy of
+.Xr ls 1.
+Any programs in this directory should be mode 111 (executable only).
+.It Pa ~ftp/etc
+Make this directory owned by
+.Dq root
+and unwritable by anyone (mode 511).
+The files
+.\" pwd.db (see
+.\" .Xr pwd_mkdb 8 )
+.Xr passwd 5
+and
+.Xr group 5
+must be present for the
+.Xr ls
+command to be able to produce owner names rather than numbers.
+The password field in
+.\" .Xr pwd.db
+.Pa passwd
+is not used, and should not contain real passwords.
+The file
+.Pa motd ,
+if present, will be printed after a successful login.
+These files should be mode 444.
+.It Pa ~ftp/lib
+Make this directory owned by
+.Dq root
+and unwritable by anyone (mode 511).
+The libraries
+.Xr ld-linux.so.2
+and
+.Xr libc.so.6
+(or whatever your
+.Xr ls
+command is linked to)
+must be present.
+In order to read
+.Xr passwd 5
+and
+.Xr group 5 ,
+the library
+.Xr libnss_files.so.2
+is also needed.
+Note that if you're using a 2.2.* or later Linux kernel,
+.Xr ld-linux.so.2
+must be executable as well as readable (555). All other files should be mode
+444.
+.It Pa ~ftp/pub
+Make this directory mode 555 and owned by
+.Dq root .
+This is traditionally where publically accessible files are
+stored for download.
+.El
+.Sh FILES
+.Bl -tag -width /etc/ftpwelcome -compact
+.It Pa /etc/ftpusers
+List of unwelcome/restricted users.
+.It Pa /etc/ftpchroot
+List of normal users who should be chroot'd.
+.It Pa /etc/ftpwelcome
+Welcome notice.
+.It Pa /etc/motd
+Welcome notice after login.
+.It Pa /etc/nologin
+Displayed and access refused.
+.It Pa /var/run/utmp
+List of users on the system.
+.It Pa /var/log/ftpd
+Log file for anonymous transfers.
+.It Pa /etc/ftpd-ssl/ftpd.pem
+Default certificate and key for SSL authentication.
+.It Pa /etc/ssl.users
+List of trusted users and their subject identifiers.
+.El
+.Sh ENVIRONMENT
+.Nm Ftpd
+accesses a single environment variable:
+.Bl -tag -width Fl
+.It Ev SSL_CIPHER
+containing a list of acceptable cipher combinations.
+.El
+.Sh SEE ALSO
+.Xr ftp 1 ,
+.Xr skey 1 ,
+.Xr who 1 ,
+.Xr getusershell 3 ,
+.Xr ftpusers 5 ,
+.Xr syslogd 8
+.Sh BUGS
+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.
+.Sh HISTORY
+The
+.Nm
+command appeared in
+.Bx 4.2 .