xref: /freebsd/libexec/ftpd/ftpd.8 (revision 01d82151022cb1383e83c331708a787f1907b00f)
1ea022d16SRodney W. Grimes.\" Copyright (c) 1985, 1988, 1991, 1993
2ea022d16SRodney W. Grimes.\"	The Regents of the University of California.  All rights reserved.
3ea022d16SRodney W. Grimes.\"
4ea022d16SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without
5ea022d16SRodney W. Grimes.\" modification, are permitted provided that the following conditions
6ea022d16SRodney W. Grimes.\" are met:
7ea022d16SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright
8ea022d16SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer.
9ea022d16SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright
10ea022d16SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer in the
11ea022d16SRodney W. Grimes.\"    documentation and/or other materials provided with the distribution.
125efaea4cSChristian Brueffer.\" 3. Neither the name of the University nor the names of its contributors
13ea022d16SRodney W. Grimes.\"    may be used to endorse or promote products derived from this software
14ea022d16SRodney W. Grimes.\"    without specific prior written permission.
15ea022d16SRodney W. Grimes.\"
16ea022d16SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17ea022d16SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18ea022d16SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19ea022d16SRodney W. Grimes.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20ea022d16SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21ea022d16SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22ea022d16SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23ea022d16SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24ea022d16SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25ea022d16SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26ea022d16SRodney W. Grimes.\" SUCH DAMAGE.
27ea022d16SRodney W. Grimes.\"
28ea022d16SRodney W. Grimes.\"     @(#)ftpd.8	8.2 (Berkeley) 4/19/94
29ea022d16SRodney W. Grimes.\"
30*01d82151SEd Maste.Dd September 9, 2023
31ea022d16SRodney W. Grimes.Dt FTPD 8
320efe23d6SRuslan Ermilov.Os
33ea022d16SRodney W. Grimes.Sh NAME
34ea022d16SRodney W. Grimes.Nm ftpd
35eb083802SRuslan Ermilov.Nd Internet File Transfer Protocol server
36ea022d16SRodney W. Grimes.Sh SYNOPSIS
3776081989SRuslan Ermilov.Nm
38e07d11b6SKurt Lidl.Op Fl 468ABDdEhMmOoRrSUvW
39a206edcdSMike Pritchard.Op Fl l Op Fl l
40105a3c98SJulian Elischer.Op Fl a Ar address
4163591ba5SYaroslav Tykhiy.Op Fl P Ar port
42105a3c98SJulian Elischer.Op Fl p Ar file
430e063efeSYaroslav Tykhiy.Op Fl T Ar maxtimeout
44d939fc70SRuslan Ermilov.Op Fl t Ar timeout
4538ed70b1SYaroslav Tykhiy.Op Fl u Ar umask
46*01d82151SEd Maste.Sh DEPRECATION NOTICE
4798b98ec1SEd MasteThe
4898b98ec1SEd Maste.Fx
4998b98ec1SEd Mastebase system
5098b98ec1SEd Maste.Nm
5198b98ec1SEd Masteis deprecated, and will be removed in
5298b98ec1SEd Maste.Fx 15.0.
5398b98ec1SEd MasteUsers are advised to install the
5498b98ec1SEd Maste.Pa ftp/freebsd-ftpd
5598b98ec1SEd Masteport or package instead.
56ea022d16SRodney W. Grimes.Sh DESCRIPTION
573f162cb8SPhilippe CharnierThe
583f162cb8SPhilippe Charnier.Nm
593f162cb8SPhilippe Charnierutility is the
60ea022d16SRodney W. GrimesInternet File Transfer Protocol
61c481aa05SRuslan Ermilovserver process.
62c481aa05SRuslan ErmilovThe server uses the
63ea022d16SRodney W. Grimes.Tn TCP
64ea022d16SRodney W. Grimesprotocol
6563591ba5SYaroslav Tykhiyand listens at the port specified with the
6663591ba5SYaroslav Tykhiy.Fl P
6763591ba5SYaroslav Tykhiyoption or in the
68ea022d16SRodney W. Grimes.Dq ftp
69ea022d16SRodney W. Grimesservice specification; see
70ea022d16SRodney W. Grimes.Xr services 5 .
71ea022d16SRodney W. Grimes.Pp
72ea022d16SRodney W. GrimesAvailable options:
73e02897faSPhilippe Charnier.Bl -tag -width indent
7448143587SSheldon Hearn.It Fl 4
7548143587SSheldon HearnWhen
7648143587SSheldon Hearn.Fl D
77206fe568SHajimu UMEMOTOis specified, accept connections via
7853ee59feSRuslan Ermilov.Dv AF_INET
7948143587SSheldon Hearnsocket.
8048143587SSheldon Hearn.It Fl 6
8148143587SSheldon HearnWhen
8248143587SSheldon Hearn.Fl D
8348143587SSheldon Hearnis specified, accept connections via
8448143587SSheldon Hearn.Dv AF_INET6
8548143587SSheldon Hearnsocket.
862ea42282SYaroslav Tykhiy.It Fl 8
871fd42e91SYaroslav TykhiyEnable transparent UTF-8 mode.
881fd42e91SYaroslav TykhiyRFC\ 2640 compliant clients will be told that the character encoding
891fd42e91SYaroslav Tykhiyused by the server is UTF-8, which is the only effect of the option.
902ea42282SYaroslav Tykhiy.Pp
911fd42e91SYaroslav TykhiyThis option does not enable any encoding conversion for server file names;
921fd42e91SYaroslav Tykhiyit implies instead that the names of files on the server are encoded
931fd42e91SYaroslav Tykhiyin UTF-8.
941fd42e91SYaroslav TykhiyAs for files uploaded via FTP, it is the duty of the RFC\ 2640 compliant
951fd42e91SYaroslav Tykhiyclient to convert their names from the client's local encoding to UTF-8.
961fd42e91SYaroslav TykhiyFTP command names and own
971fd42e91SYaroslav Tykhiy.Nm
981fd42e91SYaroslav Tykhiymessages are always encoded in ASCII, which is a subset of UTF-8.
991fd42e91SYaroslav TykhiyHence no need for server-side conversion at all.
100d939fc70SRuslan Ermilov.It Fl A
101d939fc70SRuslan ErmilovAllow only anonymous ftp access.
1020e063efeSYaroslav Tykhiy.It Fl a
1030e063efeSYaroslav TykhiyWhen
1040e063efeSYaroslav Tykhiy.Fl D
1050e063efeSYaroslav Tykhiyis specified, accept connections only on the specified
1060e063efeSYaroslav Tykhiy.Ar address .
107e07d11b6SKurt Lidl.It Fl B
108e07d11b6SKurt LidlWith this option set,
109e07d11b6SKurt Lidl.Nm
110e07d11b6SKurt Lidlsends authentication success and failure messages to the
111e07d11b6SKurt Lidl.Xr blacklistd 8
112e07d11b6SKurt Lidldaemon.  If this option is not specified, no communcation with the
113e07d11b6SKurt Lidl.Xr blacklistd 8
114e07d11b6SKurt Lidldaemon is attempted.
115cf09a206SDavid Greenman.It Fl D
116cf09a206SDavid GreenmanWith this option set,
117e02897faSPhilippe Charnier.Nm
118cf09a206SDavid Greenmanwill detach and become a daemon, accepting connections on the FTP port and
11919a05e11SRuslan Ermilovforking children processes to handle them.
12019a05e11SRuslan ErmilovThis is lower overhead than starting
121e02897faSPhilippe Charnier.Nm
122cf09a206SDavid Greenmanfrom
123cf09a206SDavid Greenman.Xr inetd 8
124cf09a206SDavid Greenmanand is thus useful on busy servers to reduce load.
125d939fc70SRuslan Ermilov.It Fl d
126d939fc70SRuslan ErmilovDebugging information is written to the syslog using
127d939fc70SRuslan Ermilov.Dv LOG_FTP .
12848143587SSheldon Hearn.It Fl E
12948143587SSheldon HearnDisable the EPSV command.
13048143587SSheldon HearnThis is useful for servers behind older firewalls.
131c152df28SYaroslav Tykhiy.It Fl h
132c152df28SYaroslav TykhiyDisable printing host-specific information, such as the
133c152df28SYaroslav Tykhiyserver software version or hostname, in server messages.
13448143587SSheldon Hearn.It Fl l
13548143587SSheldon HearnEach successful and failed
13648143587SSheldon Hearn.Xr ftp 1
13748143587SSheldon Hearnsession is logged using syslog with a facility of
13848143587SSheldon Hearn.Dv LOG_FTP .
13948143587SSheldon HearnIf this option is specified twice, the retrieve (get), store (put), append,
14048143587SSheldon Hearndelete, make directory, remove directory and rename operations and
14148143587SSheldon Hearntheir filename arguments are also logged.
142d939fc70SRuslan ErmilovBy default,
14348143587SSheldon Hearn.Xr syslogd 8
144d939fc70SRuslan Ermilovlogs these to
145d939fc70SRuslan Ermilov.Pa /var/log/xferlog .
146d939fc70SRuslan Ermilov.It Fl M
147d939fc70SRuslan ErmilovPrevent anonymous users from creating directories.
148a117c345SYaroslav Tykhiy.It Fl m
149a117c345SYaroslav TykhiyPermit anonymous users to overwrite or modify
150a117c345SYaroslav Tykhiyexisting files if allowed by file system permissions.
151a117c345SYaroslav TykhiyBy default, anonymous users cannot modify existing files;
152a117c345SYaroslav Tykhiyin particular, files to upload will be created under a unique name.
1530e063efeSYaroslav Tykhiy.It Fl O
1540e063efeSYaroslav TykhiyPut server in write-only mode for anonymous users only.
1550e063efeSYaroslav TykhiyRETR is disabled for anonymous users, preventing anonymous downloads.
1560e063efeSYaroslav TykhiyThis has no effect if
1570e063efeSYaroslav Tykhiy.Fl o
1580e063efeSYaroslav Tykhiyis also specified.
159d939fc70SRuslan Ermilov.It Fl o
160d939fc70SRuslan ErmilovPut server in write-only mode.
161d939fc70SRuslan ErmilovRETR is disabled, preventing downloads.
16263591ba5SYaroslav Tykhiy.It Fl P
16363591ba5SYaroslav TykhiyWhen
16463591ba5SYaroslav Tykhiy.Fl D
16563591ba5SYaroslav Tykhiyis specified, accept connections at
16663591ba5SYaroslav Tykhiy.Ar port ,
16763591ba5SYaroslav Tykhiyspecified as a numeric value or service name, instead of at the default
16863591ba5SYaroslav Tykhiy.Dq ftp
16963591ba5SYaroslav Tykhiyport.
1700e063efeSYaroslav Tykhiy.It Fl p
1710e063efeSYaroslav TykhiyWhen
1720e063efeSYaroslav Tykhiy.Fl D
1730e063efeSYaroslav Tykhiyis specified, write the daemon's process ID to
174125b9635SYaroslav Tykhiy.Ar file
175125b9635SYaroslav Tykhiyinstead of the default pid file,
176125b9635SYaroslav Tykhiy.Pa /var/run/ftpd.pid .
1770e063efeSYaroslav Tykhiy.It Fl R
1780e063efeSYaroslav TykhiyWith this option set,
1790e063efeSYaroslav Tykhiy.Nm
1800e063efeSYaroslav Tykhiywill revert to historical behavior with regard to security checks on
1810e063efeSYaroslav Tykhiyuser operations and restrictions on PORT requests.
1820e063efeSYaroslav TykhiyCurrently,
1830e063efeSYaroslav Tykhiy.Nm
1840e063efeSYaroslav Tykhiywill only honor PORT commands directed to unprivileged ports on the
1850e063efeSYaroslav Tykhiyremote user's host (which violates the FTP protocol specification but
1860e063efeSYaroslav Tykhiycloses some security holes).
187d939fc70SRuslan Ermilov.It Fl r
188d939fc70SRuslan ErmilovPut server in read-only mode.
189d939fc70SRuslan ErmilovAll commands which may modify the local file system are disabled.
1900e063efeSYaroslav Tykhiy.It Fl S
1910e063efeSYaroslav TykhiyWith this option set,
1920e063efeSYaroslav Tykhiy.Nm
1930e063efeSYaroslav Tykhiylogs all anonymous file downloads to the file
1940e063efeSYaroslav Tykhiy.Pa /var/log/ftpd
1950e063efeSYaroslav Tykhiywhen this file exists.
196ea022d16SRodney W. Grimes.It Fl T
197ea022d16SRodney W. GrimesA client may also request a different timeout period;
198ea022d16SRodney W. Grimesthe maximum period allowed may be set to
199ea022d16SRodney W. Grimes.Ar timeout
200ea022d16SRodney W. Grimesseconds with the
201ea022d16SRodney W. Grimes.Fl T
202ea022d16SRodney W. Grimesoption.
203ea022d16SRodney W. GrimesThe default limit is 2 hours.
204d939fc70SRuslan Ermilov.It Fl t
205d939fc70SRuslan ErmilovThe inactivity timeout period is set to
206d939fc70SRuslan Ermilov.Ar timeout
207d939fc70SRuslan Ermilovseconds (the default is 15 minutes).
2080e063efeSYaroslav Tykhiy.It Fl U
209d28af255SMike SilbersackThis option instructs ftpd to use data ports in the range of
210c00ee5e5SRuslan Ermilov.Dv IP_PORTRANGE_DEFAULT
211c00ee5e5SRuslan Ermilovinstead of in the range of
212c00ee5e5SRuslan Ermilov.Dv IP_PORTRANGE_HIGH .
213d28af255SMike SilbersackSuch a change may be useful for some specific firewall configurations;
214d28af255SMike Silbersacksee
215d28af255SMike Silbersack.Xr ip 4
216d28af255SMike Silbersackfor more information.
217d28af255SMike Silbersack.Pp
218c00ee5e5SRuslan ErmilovNote that option is a virtual no-op in
219c00ee5e5SRuslan Ermilov.Fx 5.0
220c00ee5e5SRuslan Ermilovand above; both port
2219b7076d1SMaxim Konovalovranges are identical by default.
222d939fc70SRuslan Ermilov.It Fl u
223d939fc70SRuslan ErmilovThe default file creation mode mask is set to
224d939fc70SRuslan Ermilov.Ar umask ,
225d939fc70SRuslan Ermilovwhich is expected to be an octal numeric value.
226d939fc70SRuslan ErmilovRefer to
227d939fc70SRuslan Ermilov.Xr umask 2
228d939fc70SRuslan Ermilovfor details.
229a707b683SCeri DaviesThis option may be overridden by
230a707b683SCeri Davies.Xr login.conf 5 .
23193bd9dc5SYaroslav Tykhiy.It Fl v
23293bd9dc5SYaroslav TykhiyA synonym for
23393bd9dc5SYaroslav Tykhiy.Fl d .
2345d7e0128SYaroslav Tykhiy.It Fl W
2350806dd92SEd SchoutenDo not log FTP sessions to the user accounting database.
236ea022d16SRodney W. Grimes.El
237ea022d16SRodney W. Grimes.Pp
238ea022d16SRodney W. GrimesThe file
2390e510aedSSatoshi Asami.Pa /var/run/nologin
240ea022d16SRodney W. Grimescan be used to disable ftp access.
241ea022d16SRodney W. GrimesIf the file exists,
242ea022d16SRodney W. Grimes.Nm
243ea022d16SRodney W. Grimesdisplays it and exits.
244ea022d16SRodney W. GrimesIf the file
245ea022d16SRodney W. Grimes.Pa /etc/ftpwelcome
246ea022d16SRodney W. Grimesexists,
247ea022d16SRodney W. Grimes.Nm
248ea022d16SRodney W. Grimesprints it before issuing the
249ea022d16SRodney W. Grimes.Dq ready
250ea022d16SRodney W. Grimesmessage.
251ea022d16SRodney W. GrimesIf the file
252025362a7SGary Palmer.Pa /etc/ftpmotd
253ea022d16SRodney W. Grimesexists,
254ea022d16SRodney W. Grimes.Nm
255c481aa05SRuslan Ermilovprints it after a successful login.
256c481aa05SRuslan ErmilovNote the motd file used is the one
257c481aa05SRuslan Ermilovrelative to the login environment.
258c481aa05SRuslan ErmilovThis means the one in
259f97d7807SDavid E. O'Brien.Pa ~ftp/etc
260f97d7807SDavid E. O'Brienin the anonymous user's case.
261ea022d16SRodney W. Grimes.Pp
262ea022d16SRodney W. GrimesThe ftp server currently supports the following ftp requests.
263c481aa05SRuslan ErmilovThe case of the requests is ignored.
264c481aa05SRuslan ErmilovRequests marked [RW] are
265a4b77a2aSPoul-Henning Kampdisabled if
266a4b77a2aSPoul-Henning Kamp.Fl r
267a4b77a2aSPoul-Henning Kampis specified.
268ea022d16SRodney W. Grimes.Bl -column "Request" -offset indent
269e02897faSPhilippe Charnier.It Sy Request Ta Sy "Description"
270ea022d16SRodney W. Grimes.It ABOR Ta "abort previous command"
271ea022d16SRodney W. Grimes.It ACCT Ta "specify account (ignored)"
272ea022d16SRodney W. Grimes.It ALLO Ta "allocate storage (vacuously)"
273a4b77a2aSPoul-Henning Kamp.It APPE Ta "append to a file [RW]"
274ea022d16SRodney W. Grimes.It CDUP Ta "change to parent of current working directory"
275ea022d16SRodney W. Grimes.It CWD Ta "change working directory"
276a4b77a2aSPoul-Henning Kamp.It DELE Ta "delete a file [RW]"
277a4b77a2aSPoul-Henning Kamp.It EPRT Ta "specify data connection port, multiprotocol"
278a4b77a2aSPoul-Henning Kamp.It EPSV Ta "prepare for server-to-server transfer, multiprotocol"
2792ea42282SYaroslav Tykhiy.It FEAT Ta "give information on extended features of server"
280ea022d16SRodney W. Grimes.It HELP Ta "give help information"
281ea022d16SRodney W. Grimes.It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA"
282a4b77a2aSPoul-Henning Kamp.It LPRT Ta "specify data connection port, multiprotocol"
283a4b77a2aSPoul-Henning Kamp.It LPSV Ta "prepare for server-to-server transfer, multiprotocol"
284ea022d16SRodney W. Grimes.It MDTM Ta "show last modification time of file"
285a4b77a2aSPoul-Henning Kamp.It MKD Ta "make a directory [RW]"
286ea022d16SRodney W. Grimes.It MODE Ta "specify data transfer" Em mode
287ea022d16SRodney W. Grimes.It NLST Ta "give name list of files in directory"
288ea022d16SRodney W. Grimes.It NOOP Ta "do nothing"
289ea022d16SRodney W. Grimes.It PASS Ta "specify password"
290ea022d16SRodney W. Grimes.It PASV Ta "prepare for server-to-server transfer"
291ea022d16SRodney W. Grimes.It PORT Ta "specify data connection port"
292ea022d16SRodney W. Grimes.It PWD Ta "print the current working directory"
293ea022d16SRodney W. Grimes.It QUIT Ta "terminate session"
294ea022d16SRodney W. Grimes.It REST Ta "restart incomplete transfer"
295ea022d16SRodney W. Grimes.It RETR Ta "retrieve a file"
296a4b77a2aSPoul-Henning Kamp.It RMD Ta "remove a directory [RW]"
297a4b77a2aSPoul-Henning Kamp.It RNFR Ta "specify rename-from file name [RW]"
298a4b77a2aSPoul-Henning Kamp.It RNTO Ta "specify rename-to file name [RW]"
299ea022d16SRodney W. Grimes.It SITE Ta "non-standard commands (see next section)"
300ea022d16SRodney W. Grimes.It SIZE Ta "return size of file"
301ea022d16SRodney W. Grimes.It STAT Ta "return status of server"
302a4b77a2aSPoul-Henning Kamp.It STOR Ta "store a file [RW]"
303a4b77a2aSPoul-Henning Kamp.It STOU Ta "store a file with a unique name [RW]"
304ea022d16SRodney W. Grimes.It STRU Ta "specify data transfer" Em structure
305ea022d16SRodney W. Grimes.It SYST Ta "show operating system type of server system"
306ea022d16SRodney W. Grimes.It TYPE Ta "specify data transfer" Em type
307ea022d16SRodney W. Grimes.It USER Ta "specify user name"
308ea022d16SRodney W. Grimes.It XCUP Ta "change to parent of current working directory (deprecated)"
309ea022d16SRodney W. Grimes.It XCWD Ta "change working directory (deprecated)"
310a4b77a2aSPoul-Henning Kamp.It XMKD Ta "make a directory (deprecated) [RW]"
311ea022d16SRodney W. Grimes.It XPWD Ta "print the current working directory (deprecated)"
312a4b77a2aSPoul-Henning Kamp.It XRMD Ta "remove a directory (deprecated) [RW]"
313ea022d16SRodney W. Grimes.El
314ea022d16SRodney W. Grimes.Pp
315ea022d16SRodney W. GrimesThe following non-standard or
316d939fc70SRuslan Ermilov.Ux
317ea022d16SRodney W. Grimesspecific commands are supported
318ea022d16SRodney W. Grimesby the
319ea022d16SRodney W. GrimesSITE request.
320ea022d16SRodney W. Grimes.Bl -column Request -offset indent
321ea022d16SRodney W. Grimes.It Sy Request Ta Sy Description
322ea022d16SRodney W. Grimes.It UMASK Ta change umask, e.g. ``SITE UMASK 002''
323ea022d16SRodney W. Grimes.It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60''
324a4b77a2aSPoul-Henning Kamp.It CHMOD Ta "change mode of a file [RW], e.g. ``SITE CHMOD 755 filename''"
32553ba84a6SPoul-Henning Kamp.It MD5 Ta "report the files MD5 checksum, e.g. ``SITE MD5 filename''"
326e02897faSPhilippe Charnier.It HELP Ta give help information
327ea022d16SRodney W. Grimes.El
328ea022d16SRodney W. Grimes.Pp
3296a01974bSRuslan ErmilovNote: SITE requests are disabled in case of anonymous logins.
3306a01974bSRuslan Ermilov.Pp
331ea022d16SRodney W. GrimesThe remaining ftp requests specified in Internet RFC 959
332ea022d16SRodney W. Grimesare
333ea022d16SRodney W. Grimesrecognized, but not implemented.
334ea022d16SRodney W. GrimesMDTM and SIZE are not specified in RFC 959, but will appear in the
335ea022d16SRodney W. Grimesnext updated FTP RFC.
336255a7037SYaroslav TykhiyTo avoid possible denial-of-service attacks, SIZE requests against
337255a7037SYaroslav Tykhiyfiles larger than 10240 bytes will be denied if the current transfer
338255a7037SYaroslav Tykhiytype is ASCII.
339ea022d16SRodney W. Grimes.Pp
340ea022d16SRodney W. GrimesThe ftp server will abort an active file transfer only when the
341ea022d16SRodney W. GrimesABOR
342ea022d16SRodney W. Grimescommand is preceded by a Telnet "Interrupt Process" (IP)
343ea022d16SRodney W. Grimessignal and a Telnet "Synch" signal in the command Telnet stream,
344ea022d16SRodney W. Grimesas described in Internet RFC 959.
345ea022d16SRodney W. GrimesIf a
346ea022d16SRodney W. GrimesSTAT
347ea022d16SRodney W. Grimescommand is received during a data transfer, preceded by a Telnet IP
348ea022d16SRodney W. Grimesand Synch, transfer status will be returned.
349ea022d16SRodney W. Grimes.Pp
3503f162cb8SPhilippe CharnierThe
3513f162cb8SPhilippe Charnier.Nm
3523f162cb8SPhilippe Charnierutility interprets file names according to the
353ea022d16SRodney W. Grimes.Dq globbing
354ea022d16SRodney W. Grimesconventions used by
355ea022d16SRodney W. Grimes.Xr csh 1 .
356ea022d16SRodney W. GrimesThis allows users to utilize the metacharacters
357ea022d16SRodney W. Grimes.Dq Li \&*?[]{}~ .
358ea022d16SRodney W. Grimes.Pp
3593f162cb8SPhilippe CharnierThe
3603f162cb8SPhilippe Charnier.Nm
3613f162cb8SPhilippe Charnierutility authenticates users according to six rules.
362ea022d16SRodney W. Grimes.Bl -enum -offset indent
363ea022d16SRodney W. Grimes.It
36442946c82SMike PritchardThe login name must be in the password data base
365ea022d16SRodney W. Grimesand not have a null password.
366ea022d16SRodney W. GrimesIn this case a password must be provided by the client before any
367ea022d16SRodney W. Grimesfile operations may be performed.
368ea022d16SRodney W. Grimes.It
369ea022d16SRodney W. GrimesThe login name must not appear in the file
370ea022d16SRodney W. Grimes.Pa /etc/ftpusers .
371ea022d16SRodney W. Grimes.It
37231fea7b8SDavid NugentThe login name must not be a member of a group specified in the file
37331fea7b8SDavid Nugent.Pa /etc/ftpusers .
37431fea7b8SDavid NugentEntries in this file interpreted as group names are prefixed by an "at"
37531fea7b8SDavid Nugent.Ql \&@
37631fea7b8SDavid Nugentsign.
37731fea7b8SDavid Nugent.It
378ea022d16SRodney W. GrimesThe user must have a standard shell returned by
379ea022d16SRodney W. Grimes.Xr getusershell 3 .
380ea022d16SRodney W. Grimes.It
381a5a4544eSPaul TrainaIf the user name appears in the file
38231fea7b8SDavid Nugent.Pa /etc/ftpchroot ,
38331fea7b8SDavid Nugentor the user is a member of a group with a group entry in this file,
384c481aa05SRuslan Ermilovi.e., one prefixed with
38531fea7b8SDavid Nugent.Ql \&@ ,
3868657b576SYaroslav Tykhiythe session's root will be changed to the directory specified
3878657b576SYaroslav Tykhiyin this file or to the user's login directory by
388a5a4544eSPaul Traina.Xr chroot 2
389a5a4544eSPaul Trainaas for an
390a5a4544eSPaul Traina.Dq anonymous
391a5a4544eSPaul Trainaor
392a5a4544eSPaul Traina.Dq ftp
393b071c689SDavid Nugentaccount (see next item).
3948657b576SYaroslav TykhiySee
3958657b576SYaroslav Tykhiy.Xr ftpchroot 5
3968657b576SYaroslav Tykhiyfor a detailed description of the format of this file.
39731fea7b8SDavid NugentThis facility may also be triggered by enabling the boolean "ftp-chroot"
398b071c689SDavid Nugentcapability in
399b071c689SDavid Nugent.Xr login.conf 5 .
400b071c689SDavid NugentHowever, the user must still supply a password.
401ea4e54b9SDavid NugentThis feature is intended as a compromise between a fully anonymous
402ea4e54b9SDavid Nugentaccount and a fully privileged account.
40331fea7b8SDavid NugentThe account should also be set up as for an anonymous account.
404a5a4544eSPaul Traina.It
405ea022d16SRodney W. GrimesIf the user name is
406ea022d16SRodney W. Grimes.Dq anonymous
407ea022d16SRodney W. Grimesor
408ea022d16SRodney W. Grimes.Dq ftp ,
409ea022d16SRodney W. Grimesan
410ea022d16SRodney W. Grimesanonymous ftp account must be present in the password
411ea022d16SRodney W. Grimesfile (user
412ea022d16SRodney W. Grimes.Dq ftp ) .
413ea022d16SRodney W. GrimesIn this case the user is allowed
414ea022d16SRodney W. Grimesto log in by specifying any password (by convention an email address for
415a5a4544eSPaul Trainathe user should be used as the password).
416a5a4544eSPaul TrainaWhen the
4173eb568f2SGuido van Rooij.Fl S
4183eb568f2SGuido van Rooijoption is set, all transfers are logged as well.
419ea022d16SRodney W. Grimes.El
420ea022d16SRodney W. Grimes.Pp
421ea022d16SRodney W. GrimesIn the last case,
422e02897faSPhilippe Charnier.Nm
423ea022d16SRodney W. Grimestakes special measures to restrict the client's access privileges.
424ea022d16SRodney W. GrimesThe server performs a
425ea022d16SRodney W. Grimes.Xr chroot 2
426ea022d16SRodney W. Grimesto the home directory of the
427ea022d16SRodney W. Grimes.Dq ftp
428ea022d16SRodney W. Grimesuser.
429ce9287fcSYaroslav TykhiyAs a special case if the
430ce9287fcSYaroslav Tykhiy.Dq ftp
431ce9287fcSYaroslav Tykhiyuser's home directory pathname contains the
432ace5be68SRuslan Ermilov.Pa /./
433ce9287fcSYaroslav Tykhiyseparator,
434ce9287fcSYaroslav Tykhiy.Nm
435ce9287fcSYaroslav Tykhiyuses its left-hand side as the name of the directory to do
436ce9287fcSYaroslav Tykhiy.Xr chroot 2
437ce9287fcSYaroslav Tykhiyto, and its right-hand side to change the current directory to afterwards.
438ce9287fcSYaroslav TykhiyA typical example for this case would be
439bad2f716SMateusz Piotrowski.Pa /var/spool/ftp/./pub .
440ea022d16SRodney W. GrimesIn order that system security is not breached, it is recommended
441ea022d16SRodney W. Grimesthat the
442ea022d16SRodney W. Grimes.Dq ftp
443ea022d16SRodney W. Grimessubtree be constructed with care, following these rules:
444ea022d16SRodney W. Grimes.Bl -tag -width "~ftp/pub" -offset indent
445ea022d16SRodney W. Grimes.It Pa ~ftp
446ea022d16SRodney W. GrimesMake the home directory owned by
447ea022d16SRodney W. Grimes.Dq root
448ea022d16SRodney W. Grimesand unwritable by anyone.
449ea022d16SRodney W. Grimes.It Pa ~ftp/etc
450ea022d16SRodney W. GrimesMake this directory owned by
451ea022d16SRodney W. Grimes.Dq root
452ea022d16SRodney W. Grimesand unwritable by anyone (mode 555).
453a5a4544eSPaul TrainaThe files pwd.db (see
454a5a4544eSPaul Traina.Xr passwd 5 )
455ea022d16SRodney W. Grimesand
456ea022d16SRodney W. Grimes.Xr group 5
457ea022d16SRodney W. Grimesmust be present for the
4583f162cb8SPhilippe Charnier.Xr ls 1
459ea022d16SRodney W. Grimescommand to be able to produce owner names rather than numbers.
460ea022d16SRodney W. GrimesThe password field in
46142161502SPhilippe Charnier.Xr passwd 5
462ea022d16SRodney W. Grimesis not used, and should not contain real passwords.
463ea022d16SRodney W. GrimesThe file
4647253b58bSGary Palmer.Pa ftpmotd ,
465ea022d16SRodney W. Grimesif present, will be printed after a successful login.
466ea022d16SRodney W. GrimesThese files should be mode 444.
467ea022d16SRodney W. Grimes.It Pa ~ftp/pub
4689ba6d8e4SMike HeffnerThis directory and the subdirectories beneath it should be owned
4699ba6d8e4SMike Heffnerby the users and groups responsible for placing files in them,
4709ba6d8e4SMike Heffnerand be writable only by them (mode 755 or 775).
4719ba6d8e4SMike HeffnerThey should
4729ba6d8e4SMike Heffner.Em not
473a8838c53SRuslan Ermilovbe owned or writable by
474a8838c53SRuslan Ermilov.Dq ftp
475a8838c53SRuslan Ermilovor its group, otherwise guest users
4769ba6d8e4SMike Heffnercan fill the drive with unwanted files.
477ea022d16SRodney W. Grimes.El
478334ab9fdSDavid Nugent.Pp
479ea4e54b9SDavid NugentIf the system has multiple IP addresses,
480e02897faSPhilippe Charnier.Nm
481ea4e54b9SDavid Nugentsupports the idea of virtual hosts, which provides the ability to
482ea4e54b9SDavid Nugentdefine multiple anonymous ftp areas, each one allocated to a different
483ea4e54b9SDavid Nugentinternet address.
484ea4e54b9SDavid NugentThe file
485ea4e54b9SDavid Nugent.Pa /etc/ftphosts
486ea4e54b9SDavid Nugentcontains information pertaining to each of the virtual hosts.
487ea4e54b9SDavid NugentEach host is defined on its own line which contains a number of
488ea4e54b9SDavid Nugentfields separated by whitespace:
489ea4e54b9SDavid Nugent.Bl -tag -offset indent -width hostname
490ea4e54b9SDavid Nugent.It hostname
491ea4e54b9SDavid NugentContains the hostname or IP address of the virtual host.
492ea4e54b9SDavid Nugent.It user
493ea4e54b9SDavid NugentContains a user record in the system password file.
494ea4e54b9SDavid NugentAs with normal anonymous ftp, this user's access uid, gid and group
495ea4e54b9SDavid Nugentmemberships determine file access to the anonymous ftp area.
496ea4e54b9SDavid NugentThe anonymous ftp area (to which any user is chrooted on login)
497ea4e54b9SDavid Nugentis determined by the home directory defined for the account.
498ea4e54b9SDavid NugentUser id and group for any ftp account may be the same as for the
499ea4e54b9SDavid Nugentstandard ftp user.
500ea4e54b9SDavid Nugent.It statfile
501ea4e54b9SDavid NugentFile to which all file transfers are logged, which
502ea4e54b9SDavid Nugentdefaults to
503ea4e54b9SDavid Nugent.Pa /var/log/ftpd .
504ea4e54b9SDavid Nugent.It welcome
505ea4e54b9SDavid NugentThis file is the welcome message displayed before the server ready
506ea4e54b9SDavid Nugentprompt.
507ea4e54b9SDavid NugentIt defaults to
508ea4e54b9SDavid Nugent.Pa /etc/ftpwelcome .
509ea4e54b9SDavid Nugent.It motd
510ea4e54b9SDavid NugentThis file is displayed after the user logs in.
511ea4e54b9SDavid NugentIt defaults to
512ea4e54b9SDavid Nugent.Pa /etc/ftpmotd .
513ea4e54b9SDavid Nugent.El
514ea4e54b9SDavid Nugent.Pp
515d59b62e3SJoseph KoshyLines beginning with a '#' are ignored and can be used to include
516d59b62e3SJoseph Koshycomments.
517d59b62e3SJoseph Koshy.Pp
518ea4e54b9SDavid NugentDefining a virtual host for the primary IP address or hostname
519ea4e54b9SDavid Nugentchanges the default for ftp logins to that address.
520ea4e54b9SDavid NugentThe 'user', 'statfile', 'welcome' and 'motd' fields may be left
52157bd0fc6SJens Schweikhardtblank, or a single hyphen '-' used to indicate that the default
522ea4e54b9SDavid Nugentvalue is to be used.
523ea4e54b9SDavid Nugent.Pp
524ea4e54b9SDavid NugentAs with any anonymous login configuration, due care must be given
525ea4e54b9SDavid Nugentto setup and maintenance to guard against security related problems.
526ea4e54b9SDavid Nugent.Pp
5273f162cb8SPhilippe CharnierThe
528e02897faSPhilippe Charnier.Nm
5293f162cb8SPhilippe Charnierutility has internal support for handling remote requests to list
530334ab9fdSDavid Nugentfiles, and will not execute
531334ab9fdSDavid Nugent.Pa /bin/ls
532c481aa05SRuslan Ermilovin either a chrooted or non-chrooted environment.
533c481aa05SRuslan ErmilovThe
534334ab9fdSDavid Nugent.Pa ~/bin/ls
535334ab9fdSDavid Nugentexecutable need not be placed into the chrooted tree, nor need the
536334ab9fdSDavid Nugent.Pa ~/bin
537334ab9fdSDavid Nugentdirectory exist.
538ea022d16SRodney W. Grimes.Sh FILES
539125b9635SYaroslav Tykhiy.Bl -tag -width ".Pa /var/run/ftpd.pid" -compact
540ea022d16SRodney W. Grimes.It Pa /etc/ftpusers
541ea022d16SRodney W. GrimesList of unwelcome/restricted users.
542a5a4544eSPaul Traina.It Pa /etc/ftpchroot
543a5a4544eSPaul TrainaList of normal users who should be chroot'd.
544f97d7807SDavid E. O'Brien.It Pa /etc/ftphosts
545f97d7807SDavid E. O'BrienVirtual hosting configuration file.
546ea022d16SRodney W. Grimes.It Pa /etc/ftpwelcome
547ea022d16SRodney W. GrimesWelcome notice.
5487253b58bSGary Palmer.It Pa /etc/ftpmotd
549ea022d16SRodney W. GrimesWelcome notice after login.
550125b9635SYaroslav Tykhiy.It Pa /var/run/ftpd.pid
551125b9635SYaroslav TykhiyDefault pid file for daemon mode.
5520e510aedSSatoshi Asami.It Pa /var/run/nologin
553ea022d16SRodney W. GrimesDisplayed and access refused.
5543eb568f2SGuido van Rooij.It Pa /var/log/ftpd
5553eb568f2SGuido van RooijLog file for anonymous transfers.
556d939fc70SRuslan Ermilov.It Pa /var/log/xferlog
557d939fc70SRuslan ErmilovDefault place for session logs.
558bad2f716SMateusz Piotrowski.It Pa /var/spool/ftp
559bad2f716SMateusz PiotrowskiRecommended directory for the FTP root directory
560bad2f716SMateusz Piotrowski(the home directory of the ftp user).
561ea022d16SRodney W. Grimes.El
562ea022d16SRodney W. Grimes.Sh SEE ALSO
563ea022d16SRodney W. Grimes.Xr ftp 1 ,
56438ed70b1SYaroslav Tykhiy.Xr umask 2 ,
565ea022d16SRodney W. Grimes.Xr getusershell 3 ,
5668657b576SYaroslav Tykhiy.Xr ftpchroot 5 ,
567b071c689SDavid Nugent.Xr login.conf 5 ,
568cf09a206SDavid Greenman.Xr inetd 8 ,
569ea022d16SRodney W. Grimes.Xr syslogd 8
570a3ac07a5SRuslan Ermilov.Sh HISTORY
571a3ac07a5SRuslan ErmilovThe
572a3ac07a5SRuslan Ermilov.Nm
573a3ac07a5SRuslan Ermilovutility appeared in
574a3ac07a5SRuslan Ermilov.Bx 4.2 .
575a3ac07a5SRuslan ErmilovIPv6 support was added in WIDE Hydrangea IPv6 stack kit.
576ea022d16SRodney W. Grimes.Sh BUGS
577ea022d16SRodney W. GrimesThe server must run as the super-user
578c481aa05SRuslan Ermilovto create sockets with privileged port numbers.
579c481aa05SRuslan ErmilovIt maintains
580ea022d16SRodney W. Grimesan effective user id of the logged in user, reverting to
581c481aa05SRuslan Ermilovthe super-user only when binding addresses to sockets.
582c481aa05SRuslan ErmilovThe
583ea022d16SRodney W. Grimespossible security holes have been extensively
584ea022d16SRodney W. Grimesscrutinized, but are possibly incomplete.
585