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. 12*5efaea4cSChristian 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 297f3dea24SPeter Wemm.\" $FreeBSD$ 30ea022d16SRodney W. Grimes.\" 31eae8be70SEitan Adler.Dd January 21, 2010 32ea022d16SRodney W. Grimes.Dt FTPD 8 330efe23d6SRuslan Ermilov.Os 34ea022d16SRodney W. Grimes.Sh NAME 35ea022d16SRodney W. Grimes.Nm ftpd 36eb083802SRuslan Ermilov.Nd Internet File Transfer Protocol server 37ea022d16SRodney W. Grimes.Sh SYNOPSIS 3876081989SRuslan Ermilov.Nm 392ea42282SYaroslav Tykhiy.Op Fl 468ADdEhMmOoRrSUvW 40a206edcdSMike Pritchard.Op Fl l Op Fl l 41105a3c98SJulian Elischer.Op Fl a Ar address 4263591ba5SYaroslav Tykhiy.Op Fl P Ar port 43105a3c98SJulian Elischer.Op Fl p Ar file 440e063efeSYaroslav Tykhiy.Op Fl T Ar maxtimeout 45d939fc70SRuslan Ermilov.Op Fl t Ar timeout 4638ed70b1SYaroslav Tykhiy.Op Fl u Ar umask 47ea022d16SRodney W. Grimes.Sh DESCRIPTION 483f162cb8SPhilippe CharnierThe 493f162cb8SPhilippe Charnier.Nm 503f162cb8SPhilippe Charnierutility is the 51ea022d16SRodney W. GrimesInternet File Transfer Protocol 52c481aa05SRuslan Ermilovserver process. 53c481aa05SRuslan ErmilovThe server uses the 54ea022d16SRodney W. Grimes.Tn TCP 55ea022d16SRodney W. Grimesprotocol 5663591ba5SYaroslav Tykhiyand listens at the port specified with the 5763591ba5SYaroslav Tykhiy.Fl P 5863591ba5SYaroslav Tykhiyoption or in the 59ea022d16SRodney W. Grimes.Dq ftp 60ea022d16SRodney W. Grimesservice specification; see 61ea022d16SRodney W. Grimes.Xr services 5 . 62ea022d16SRodney W. Grimes.Pp 63ea022d16SRodney W. GrimesAvailable options: 64e02897faSPhilippe Charnier.Bl -tag -width indent 6548143587SSheldon Hearn.It Fl 4 6648143587SSheldon HearnWhen 6748143587SSheldon Hearn.Fl D 68206fe568SHajimu UMEMOTOis specified, accept connections via 6953ee59feSRuslan Ermilov.Dv AF_INET 7048143587SSheldon Hearnsocket. 7148143587SSheldon Hearn.It Fl 6 7248143587SSheldon HearnWhen 7348143587SSheldon Hearn.Fl D 7448143587SSheldon Hearnis specified, accept connections via 7548143587SSheldon Hearn.Dv AF_INET6 7648143587SSheldon Hearnsocket. 772ea42282SYaroslav Tykhiy.It Fl 8 781fd42e91SYaroslav TykhiyEnable transparent UTF-8 mode. 791fd42e91SYaroslav TykhiyRFC\ 2640 compliant clients will be told that the character encoding 801fd42e91SYaroslav Tykhiyused by the server is UTF-8, which is the only effect of the option. 812ea42282SYaroslav Tykhiy.Pp 821fd42e91SYaroslav TykhiyThis option does not enable any encoding conversion for server file names; 831fd42e91SYaroslav Tykhiyit implies instead that the names of files on the server are encoded 841fd42e91SYaroslav Tykhiyin UTF-8. 851fd42e91SYaroslav TykhiyAs for files uploaded via FTP, it is the duty of the RFC\ 2640 compliant 861fd42e91SYaroslav Tykhiyclient to convert their names from the client's local encoding to UTF-8. 871fd42e91SYaroslav TykhiyFTP command names and own 881fd42e91SYaroslav Tykhiy.Nm 891fd42e91SYaroslav Tykhiymessages are always encoded in ASCII, which is a subset of UTF-8. 901fd42e91SYaroslav TykhiyHence no need for server-side conversion at all. 91d939fc70SRuslan Ermilov.It Fl A 92d939fc70SRuslan ErmilovAllow only anonymous ftp access. 930e063efeSYaroslav Tykhiy.It Fl a 940e063efeSYaroslav TykhiyWhen 950e063efeSYaroslav Tykhiy.Fl D 960e063efeSYaroslav Tykhiyis specified, accept connections only on the specified 970e063efeSYaroslav Tykhiy.Ar address . 98cf09a206SDavid Greenman.It Fl D 99cf09a206SDavid GreenmanWith this option set, 100e02897faSPhilippe Charnier.Nm 101cf09a206SDavid Greenmanwill detach and become a daemon, accepting connections on the FTP port and 10219a05e11SRuslan Ermilovforking children processes to handle them. 10319a05e11SRuslan ErmilovThis is lower overhead than starting 104e02897faSPhilippe Charnier.Nm 105cf09a206SDavid Greenmanfrom 106cf09a206SDavid Greenman.Xr inetd 8 107cf09a206SDavid Greenmanand is thus useful on busy servers to reduce load. 108d939fc70SRuslan Ermilov.It Fl d 109d939fc70SRuslan ErmilovDebugging information is written to the syslog using 110d939fc70SRuslan Ermilov.Dv LOG_FTP . 11148143587SSheldon Hearn.It Fl E 11248143587SSheldon HearnDisable the EPSV command. 11348143587SSheldon HearnThis is useful for servers behind older firewalls. 114c152df28SYaroslav Tykhiy.It Fl h 115c152df28SYaroslav TykhiyDisable printing host-specific information, such as the 116c152df28SYaroslav Tykhiyserver software version or hostname, in server messages. 11748143587SSheldon Hearn.It Fl l 11848143587SSheldon HearnEach successful and failed 11948143587SSheldon Hearn.Xr ftp 1 12048143587SSheldon Hearnsession is logged using syslog with a facility of 12148143587SSheldon Hearn.Dv LOG_FTP . 12248143587SSheldon HearnIf this option is specified twice, the retrieve (get), store (put), append, 12348143587SSheldon Hearndelete, make directory, remove directory and rename operations and 12448143587SSheldon Hearntheir filename arguments are also logged. 125d939fc70SRuslan ErmilovBy default, 12648143587SSheldon Hearn.Xr syslogd 8 127d939fc70SRuslan Ermilovlogs these to 128d939fc70SRuslan Ermilov.Pa /var/log/xferlog . 129d939fc70SRuslan Ermilov.It Fl M 130d939fc70SRuslan ErmilovPrevent anonymous users from creating directories. 131a117c345SYaroslav Tykhiy.It Fl m 132a117c345SYaroslav TykhiyPermit anonymous users to overwrite or modify 133a117c345SYaroslav Tykhiyexisting files if allowed by file system permissions. 134a117c345SYaroslav TykhiyBy default, anonymous users cannot modify existing files; 135a117c345SYaroslav Tykhiyin particular, files to upload will be created under a unique name. 1360e063efeSYaroslav Tykhiy.It Fl O 1370e063efeSYaroslav TykhiyPut server in write-only mode for anonymous users only. 1380e063efeSYaroslav TykhiyRETR is disabled for anonymous users, preventing anonymous downloads. 1390e063efeSYaroslav TykhiyThis has no effect if 1400e063efeSYaroslav Tykhiy.Fl o 1410e063efeSYaroslav Tykhiyis also specified. 142d939fc70SRuslan Ermilov.It Fl o 143d939fc70SRuslan ErmilovPut server in write-only mode. 144d939fc70SRuslan ErmilovRETR is disabled, preventing downloads. 14563591ba5SYaroslav Tykhiy.It Fl P 14663591ba5SYaroslav TykhiyWhen 14763591ba5SYaroslav Tykhiy.Fl D 14863591ba5SYaroslav Tykhiyis specified, accept connections at 14963591ba5SYaroslav Tykhiy.Ar port , 15063591ba5SYaroslav Tykhiyspecified as a numeric value or service name, instead of at the default 15163591ba5SYaroslav Tykhiy.Dq ftp 15263591ba5SYaroslav Tykhiyport. 1530e063efeSYaroslav Tykhiy.It Fl p 1540e063efeSYaroslav TykhiyWhen 1550e063efeSYaroslav Tykhiy.Fl D 1560e063efeSYaroslav Tykhiyis specified, write the daemon's process ID to 157125b9635SYaroslav Tykhiy.Ar file 158125b9635SYaroslav Tykhiyinstead of the default pid file, 159125b9635SYaroslav Tykhiy.Pa /var/run/ftpd.pid . 1600e063efeSYaroslav Tykhiy.It Fl R 1610e063efeSYaroslav TykhiyWith this option set, 1620e063efeSYaroslav Tykhiy.Nm 1630e063efeSYaroslav Tykhiywill revert to historical behavior with regard to security checks on 1640e063efeSYaroslav Tykhiyuser operations and restrictions on PORT requests. 1650e063efeSYaroslav TykhiyCurrently, 1660e063efeSYaroslav Tykhiy.Nm 1670e063efeSYaroslav Tykhiywill only honor PORT commands directed to unprivileged ports on the 1680e063efeSYaroslav Tykhiyremote user's host (which violates the FTP protocol specification but 1690e063efeSYaroslav Tykhiycloses some security holes). 170d939fc70SRuslan Ermilov.It Fl r 171d939fc70SRuslan ErmilovPut server in read-only mode. 172d939fc70SRuslan ErmilovAll commands which may modify the local file system are disabled. 1730e063efeSYaroslav Tykhiy.It Fl S 1740e063efeSYaroslav TykhiyWith this option set, 1750e063efeSYaroslav Tykhiy.Nm 1760e063efeSYaroslav Tykhiylogs all anonymous file downloads to the file 1770e063efeSYaroslav Tykhiy.Pa /var/log/ftpd 1780e063efeSYaroslav Tykhiywhen this file exists. 179ea022d16SRodney W. Grimes.It Fl T 180ea022d16SRodney W. GrimesA client may also request a different timeout period; 181ea022d16SRodney W. Grimesthe maximum period allowed may be set to 182ea022d16SRodney W. Grimes.Ar timeout 183ea022d16SRodney W. Grimesseconds with the 184ea022d16SRodney W. Grimes.Fl T 185ea022d16SRodney W. Grimesoption. 186ea022d16SRodney W. GrimesThe default limit is 2 hours. 187d939fc70SRuslan Ermilov.It Fl t 188d939fc70SRuslan ErmilovThe inactivity timeout period is set to 189d939fc70SRuslan Ermilov.Ar timeout 190d939fc70SRuslan Ermilovseconds (the default is 15 minutes). 1910e063efeSYaroslav Tykhiy.It Fl U 192d28af255SMike SilbersackThis option instructs ftpd to use data ports in the range of 193c00ee5e5SRuslan Ermilov.Dv IP_PORTRANGE_DEFAULT 194c00ee5e5SRuslan Ermilovinstead of in the range of 195c00ee5e5SRuslan Ermilov.Dv IP_PORTRANGE_HIGH . 196d28af255SMike SilbersackSuch a change may be useful for some specific firewall configurations; 197d28af255SMike Silbersacksee 198d28af255SMike Silbersack.Xr ip 4 199d28af255SMike Silbersackfor more information. 200d28af255SMike Silbersack.Pp 201c00ee5e5SRuslan ErmilovNote that option is a virtual no-op in 202c00ee5e5SRuslan Ermilov.Fx 5.0 203c00ee5e5SRuslan Ermilovand above; both port 2049b7076d1SMaxim Konovalovranges are identical by default. 205d939fc70SRuslan Ermilov.It Fl u 206d939fc70SRuslan ErmilovThe default file creation mode mask is set to 207d939fc70SRuslan Ermilov.Ar umask , 208d939fc70SRuslan Ermilovwhich is expected to be an octal numeric value. 209d939fc70SRuslan ErmilovRefer to 210d939fc70SRuslan Ermilov.Xr umask 2 211d939fc70SRuslan Ermilovfor details. 212a707b683SCeri DaviesThis option may be overridden by 213a707b683SCeri Davies.Xr login.conf 5 . 21493bd9dc5SYaroslav Tykhiy.It Fl v 21593bd9dc5SYaroslav TykhiyA synonym for 21693bd9dc5SYaroslav Tykhiy.Fl d . 2175d7e0128SYaroslav Tykhiy.It Fl W 2180806dd92SEd SchoutenDo not log FTP sessions to the user accounting database. 219ea022d16SRodney W. Grimes.El 220ea022d16SRodney W. Grimes.Pp 221ea022d16SRodney W. GrimesThe file 2220e510aedSSatoshi Asami.Pa /var/run/nologin 223ea022d16SRodney W. Grimescan be used to disable ftp access. 224ea022d16SRodney W. GrimesIf the file exists, 225ea022d16SRodney W. Grimes.Nm 226ea022d16SRodney W. Grimesdisplays it and exits. 227ea022d16SRodney W. GrimesIf the file 228ea022d16SRodney W. Grimes.Pa /etc/ftpwelcome 229ea022d16SRodney W. Grimesexists, 230ea022d16SRodney W. Grimes.Nm 231ea022d16SRodney W. Grimesprints it before issuing the 232ea022d16SRodney W. Grimes.Dq ready 233ea022d16SRodney W. Grimesmessage. 234ea022d16SRodney W. GrimesIf the file 235025362a7SGary Palmer.Pa /etc/ftpmotd 236ea022d16SRodney W. Grimesexists, 237ea022d16SRodney W. Grimes.Nm 238c481aa05SRuslan Ermilovprints it after a successful login. 239c481aa05SRuslan ErmilovNote the motd file used is the one 240c481aa05SRuslan Ermilovrelative to the login environment. 241c481aa05SRuslan ErmilovThis means the one in 242f97d7807SDavid E. O'Brien.Pa ~ftp/etc 243f97d7807SDavid E. O'Brienin the anonymous user's case. 244ea022d16SRodney W. Grimes.Pp 245ea022d16SRodney W. GrimesThe ftp server currently supports the following ftp requests. 246c481aa05SRuslan ErmilovThe case of the requests is ignored. 247c481aa05SRuslan ErmilovRequests marked [RW] are 248a4b77a2aSPoul-Henning Kampdisabled if 249a4b77a2aSPoul-Henning Kamp.Fl r 250a4b77a2aSPoul-Henning Kampis specified. 251ea022d16SRodney W. Grimes.Bl -column "Request" -offset indent 252e02897faSPhilippe Charnier.It Sy Request Ta Sy "Description" 253ea022d16SRodney W. Grimes.It ABOR Ta "abort previous command" 254ea022d16SRodney W. Grimes.It ACCT Ta "specify account (ignored)" 255ea022d16SRodney W. Grimes.It ALLO Ta "allocate storage (vacuously)" 256a4b77a2aSPoul-Henning Kamp.It APPE Ta "append to a file [RW]" 257ea022d16SRodney W. Grimes.It CDUP Ta "change to parent of current working directory" 258ea022d16SRodney W. Grimes.It CWD Ta "change working directory" 259a4b77a2aSPoul-Henning Kamp.It DELE Ta "delete a file [RW]" 260a4b77a2aSPoul-Henning Kamp.It EPRT Ta "specify data connection port, multiprotocol" 261a4b77a2aSPoul-Henning Kamp.It EPSV Ta "prepare for server-to-server transfer, multiprotocol" 2622ea42282SYaroslav Tykhiy.It FEAT Ta "give information on extended features of server" 263ea022d16SRodney W. Grimes.It HELP Ta "give help information" 264ea022d16SRodney W. Grimes.It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA" 265a4b77a2aSPoul-Henning Kamp.It LPRT Ta "specify data connection port, multiprotocol" 266a4b77a2aSPoul-Henning Kamp.It LPSV Ta "prepare for server-to-server transfer, multiprotocol" 267ea022d16SRodney W. Grimes.It MDTM Ta "show last modification time of file" 268a4b77a2aSPoul-Henning Kamp.It MKD Ta "make a directory [RW]" 269ea022d16SRodney W. Grimes.It MODE Ta "specify data transfer" Em mode 270ea022d16SRodney W. Grimes.It NLST Ta "give name list of files in directory" 271ea022d16SRodney W. Grimes.It NOOP Ta "do nothing" 272ea022d16SRodney W. Grimes.It PASS Ta "specify password" 273ea022d16SRodney W. Grimes.It PASV Ta "prepare for server-to-server transfer" 274ea022d16SRodney W. Grimes.It PORT Ta "specify data connection port" 275ea022d16SRodney W. Grimes.It PWD Ta "print the current working directory" 276ea022d16SRodney W. Grimes.It QUIT Ta "terminate session" 277ea022d16SRodney W. Grimes.It REST Ta "restart incomplete transfer" 278ea022d16SRodney W. Grimes.It RETR Ta "retrieve a file" 279a4b77a2aSPoul-Henning Kamp.It RMD Ta "remove a directory [RW]" 280a4b77a2aSPoul-Henning Kamp.It RNFR Ta "specify rename-from file name [RW]" 281a4b77a2aSPoul-Henning Kamp.It RNTO Ta "specify rename-to file name [RW]" 282ea022d16SRodney W. Grimes.It SITE Ta "non-standard commands (see next section)" 283ea022d16SRodney W. Grimes.It SIZE Ta "return size of file" 284ea022d16SRodney W. Grimes.It STAT Ta "return status of server" 285a4b77a2aSPoul-Henning Kamp.It STOR Ta "store a file [RW]" 286a4b77a2aSPoul-Henning Kamp.It STOU Ta "store a file with a unique name [RW]" 287ea022d16SRodney W. Grimes.It STRU Ta "specify data transfer" Em structure 288ea022d16SRodney W. Grimes.It SYST Ta "show operating system type of server system" 289ea022d16SRodney W. Grimes.It TYPE Ta "specify data transfer" Em type 290ea022d16SRodney W. Grimes.It USER Ta "specify user name" 291ea022d16SRodney W. Grimes.It XCUP Ta "change to parent of current working directory (deprecated)" 292ea022d16SRodney W. Grimes.It XCWD Ta "change working directory (deprecated)" 293a4b77a2aSPoul-Henning Kamp.It XMKD Ta "make a directory (deprecated) [RW]" 294ea022d16SRodney W. Grimes.It XPWD Ta "print the current working directory (deprecated)" 295a4b77a2aSPoul-Henning Kamp.It XRMD Ta "remove a directory (deprecated) [RW]" 296ea022d16SRodney W. Grimes.El 297ea022d16SRodney W. Grimes.Pp 298ea022d16SRodney W. GrimesThe following non-standard or 299d939fc70SRuslan Ermilov.Ux 300ea022d16SRodney W. Grimesspecific commands are supported 301ea022d16SRodney W. Grimesby the 302ea022d16SRodney W. GrimesSITE request. 303ea022d16SRodney W. Grimes.Bl -column Request -offset indent 304ea022d16SRodney W. Grimes.It Sy Request Ta Sy Description 305ea022d16SRodney W. Grimes.It UMASK Ta change umask, e.g. ``SITE UMASK 002'' 306ea022d16SRodney W. Grimes.It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60'' 307a4b77a2aSPoul-Henning Kamp.It CHMOD Ta "change mode of a file [RW], e.g. ``SITE CHMOD 755 filename''" 30853ba84a6SPoul-Henning Kamp.It MD5 Ta "report the files MD5 checksum, e.g. ``SITE MD5 filename''" 309e02897faSPhilippe Charnier.It HELP Ta give help information 310ea022d16SRodney W. Grimes.El 311ea022d16SRodney W. Grimes.Pp 3126a01974bSRuslan ErmilovNote: SITE requests are disabled in case of anonymous logins. 3136a01974bSRuslan Ermilov.Pp 314ea022d16SRodney W. GrimesThe remaining ftp requests specified in Internet RFC 959 315ea022d16SRodney W. Grimesare 316ea022d16SRodney W. Grimesrecognized, but not implemented. 317ea022d16SRodney W. GrimesMDTM and SIZE are not specified in RFC 959, but will appear in the 318ea022d16SRodney W. Grimesnext updated FTP RFC. 319255a7037SYaroslav TykhiyTo avoid possible denial-of-service attacks, SIZE requests against 320255a7037SYaroslav Tykhiyfiles larger than 10240 bytes will be denied if the current transfer 321255a7037SYaroslav Tykhiytype is ASCII. 322ea022d16SRodney W. Grimes.Pp 323ea022d16SRodney W. GrimesThe ftp server will abort an active file transfer only when the 324ea022d16SRodney W. GrimesABOR 325ea022d16SRodney W. Grimescommand is preceded by a Telnet "Interrupt Process" (IP) 326ea022d16SRodney W. Grimessignal and a Telnet "Synch" signal in the command Telnet stream, 327ea022d16SRodney W. Grimesas described in Internet RFC 959. 328ea022d16SRodney W. GrimesIf a 329ea022d16SRodney W. GrimesSTAT 330ea022d16SRodney W. Grimescommand is received during a data transfer, preceded by a Telnet IP 331ea022d16SRodney W. Grimesand Synch, transfer status will be returned. 332ea022d16SRodney W. Grimes.Pp 3333f162cb8SPhilippe CharnierThe 3343f162cb8SPhilippe Charnier.Nm 3353f162cb8SPhilippe Charnierutility interprets file names according to the 336ea022d16SRodney W. Grimes.Dq globbing 337ea022d16SRodney W. Grimesconventions used by 338ea022d16SRodney W. Grimes.Xr csh 1 . 339ea022d16SRodney W. GrimesThis allows users to utilize the metacharacters 340ea022d16SRodney W. Grimes.Dq Li \&*?[]{}~ . 341ea022d16SRodney W. Grimes.Pp 3423f162cb8SPhilippe CharnierThe 3433f162cb8SPhilippe Charnier.Nm 3443f162cb8SPhilippe Charnierutility authenticates users according to six rules. 345ea022d16SRodney W. Grimes.Bl -enum -offset indent 346ea022d16SRodney W. Grimes.It 34742946c82SMike PritchardThe login name must be in the password data base 348ea022d16SRodney W. Grimesand not have a null password. 349ea022d16SRodney W. GrimesIn this case a password must be provided by the client before any 350ea022d16SRodney W. Grimesfile operations may be performed. 351dcac077fSTom RhodesIf the user has an OPIE key, the response from a successful USER 352dcac077fSTom Rhodescommand will include an OPIE challenge. 35319a05e11SRuslan ErmilovThe client may choose to respond with a PASS command giving either 354dcac077fSTom Rhodesa standard password or an OPIE one-time password. 35519a05e11SRuslan ErmilovThe server will automatically determine which type of 35619a05e11SRuslan Ermilovpassword it has been given and attempt to authenticate accordingly. 35719a05e11SRuslan ErmilovSee 358dcac077fSTom Rhodes.Xr opie 4 359dcac077fSTom Rhodesfor more information on OPIE authentication. 360ea022d16SRodney W. Grimes.It 361ea022d16SRodney W. GrimesThe login name must not appear in the file 362ea022d16SRodney W. Grimes.Pa /etc/ftpusers . 363ea022d16SRodney W. Grimes.It 36431fea7b8SDavid NugentThe login name must not be a member of a group specified in the file 36531fea7b8SDavid Nugent.Pa /etc/ftpusers . 36631fea7b8SDavid NugentEntries in this file interpreted as group names are prefixed by an "at" 36731fea7b8SDavid Nugent.Ql \&@ 36831fea7b8SDavid Nugentsign. 36931fea7b8SDavid Nugent.It 370ea022d16SRodney W. GrimesThe user must have a standard shell returned by 371ea022d16SRodney W. Grimes.Xr getusershell 3 . 372ea022d16SRodney W. Grimes.It 373a5a4544eSPaul TrainaIf the user name appears in the file 37431fea7b8SDavid Nugent.Pa /etc/ftpchroot , 37531fea7b8SDavid Nugentor the user is a member of a group with a group entry in this file, 376c481aa05SRuslan Ermilovi.e., one prefixed with 37731fea7b8SDavid Nugent.Ql \&@ , 3788657b576SYaroslav Tykhiythe session's root will be changed to the directory specified 3798657b576SYaroslav Tykhiyin this file or to the user's login directory by 380a5a4544eSPaul Traina.Xr chroot 2 381a5a4544eSPaul Trainaas for an 382a5a4544eSPaul Traina.Dq anonymous 383a5a4544eSPaul Trainaor 384a5a4544eSPaul Traina.Dq ftp 385b071c689SDavid Nugentaccount (see next item). 3868657b576SYaroslav TykhiySee 3878657b576SYaroslav Tykhiy.Xr ftpchroot 5 3888657b576SYaroslav Tykhiyfor a detailed description of the format of this file. 38931fea7b8SDavid NugentThis facility may also be triggered by enabling the boolean "ftp-chroot" 390b071c689SDavid Nugentcapability in 391b071c689SDavid Nugent.Xr login.conf 5 . 392b071c689SDavid NugentHowever, the user must still supply a password. 393ea4e54b9SDavid NugentThis feature is intended as a compromise between a fully anonymous 394ea4e54b9SDavid Nugentaccount and a fully privileged account. 39531fea7b8SDavid NugentThe account should also be set up as for an anonymous account. 396a5a4544eSPaul Traina.It 397ea022d16SRodney W. GrimesIf the user name is 398ea022d16SRodney W. Grimes.Dq anonymous 399ea022d16SRodney W. Grimesor 400ea022d16SRodney W. Grimes.Dq ftp , 401ea022d16SRodney W. Grimesan 402ea022d16SRodney W. Grimesanonymous ftp account must be present in the password 403ea022d16SRodney W. Grimesfile (user 404ea022d16SRodney W. Grimes.Dq ftp ) . 405ea022d16SRodney W. GrimesIn this case the user is allowed 406ea022d16SRodney W. Grimesto log in by specifying any password (by convention an email address for 407a5a4544eSPaul Trainathe user should be used as the password). 408a5a4544eSPaul TrainaWhen the 4093eb568f2SGuido van Rooij.Fl S 4103eb568f2SGuido van Rooijoption is set, all transfers are logged as well. 411ea022d16SRodney W. Grimes.El 412ea022d16SRodney W. Grimes.Pp 413ea022d16SRodney W. GrimesIn the last case, 414e02897faSPhilippe Charnier.Nm 415ea022d16SRodney W. Grimestakes special measures to restrict the client's access privileges. 416ea022d16SRodney W. GrimesThe server performs a 417ea022d16SRodney W. Grimes.Xr chroot 2 418ea022d16SRodney W. Grimesto the home directory of the 419ea022d16SRodney W. Grimes.Dq ftp 420ea022d16SRodney W. Grimesuser. 421ce9287fcSYaroslav TykhiyAs a special case if the 422ce9287fcSYaroslav Tykhiy.Dq ftp 423ce9287fcSYaroslav Tykhiyuser's home directory pathname contains the 424ace5be68SRuslan Ermilov.Pa /./ 425ce9287fcSYaroslav Tykhiyseparator, 426ce9287fcSYaroslav Tykhiy.Nm 427ce9287fcSYaroslav Tykhiyuses its left-hand side as the name of the directory to do 428ce9287fcSYaroslav Tykhiy.Xr chroot 2 429ce9287fcSYaroslav Tykhiyto, and its right-hand side to change the current directory to afterwards. 430ce9287fcSYaroslav TykhiyA typical example for this case would be 431ce9287fcSYaroslav Tykhiy.Pa /usr/local/ftp/./pub . 432ea022d16SRodney W. GrimesIn order that system security is not breached, it is recommended 433ea022d16SRodney W. Grimesthat the 434ea022d16SRodney W. Grimes.Dq ftp 435ea022d16SRodney W. Grimessubtree be constructed with care, following these rules: 436ea022d16SRodney W. Grimes.Bl -tag -width "~ftp/pub" -offset indent 437ea022d16SRodney W. Grimes.It Pa ~ftp 438ea022d16SRodney W. GrimesMake the home directory owned by 439ea022d16SRodney W. Grimes.Dq root 440ea022d16SRodney W. Grimesand unwritable by anyone. 441ea022d16SRodney W. Grimes.It Pa ~ftp/etc 442ea022d16SRodney W. GrimesMake this directory owned by 443ea022d16SRodney W. Grimes.Dq root 444ea022d16SRodney W. Grimesand unwritable by anyone (mode 555). 445a5a4544eSPaul TrainaThe files pwd.db (see 446a5a4544eSPaul Traina.Xr passwd 5 ) 447ea022d16SRodney W. Grimesand 448ea022d16SRodney W. Grimes.Xr group 5 449ea022d16SRodney W. Grimesmust be present for the 4503f162cb8SPhilippe Charnier.Xr ls 1 451ea022d16SRodney W. Grimescommand to be able to produce owner names rather than numbers. 452ea022d16SRodney W. GrimesThe password field in 45342161502SPhilippe Charnier.Xr passwd 5 454ea022d16SRodney W. Grimesis not used, and should not contain real passwords. 455ea022d16SRodney W. GrimesThe file 4567253b58bSGary Palmer.Pa ftpmotd , 457ea022d16SRodney W. Grimesif present, will be printed after a successful login. 458ea022d16SRodney W. GrimesThese files should be mode 444. 459ea022d16SRodney W. Grimes.It Pa ~ftp/pub 4609ba6d8e4SMike HeffnerThis directory and the subdirectories beneath it should be owned 4619ba6d8e4SMike Heffnerby the users and groups responsible for placing files in them, 4629ba6d8e4SMike Heffnerand be writable only by them (mode 755 or 775). 4639ba6d8e4SMike HeffnerThey should 4649ba6d8e4SMike Heffner.Em not 465a8838c53SRuslan Ermilovbe owned or writable by 466a8838c53SRuslan Ermilov.Dq ftp 467a8838c53SRuslan Ermilovor its group, otherwise guest users 4689ba6d8e4SMike Heffnercan fill the drive with unwanted files. 469ea022d16SRodney W. Grimes.El 470334ab9fdSDavid Nugent.Pp 471ea4e54b9SDavid NugentIf the system has multiple IP addresses, 472e02897faSPhilippe Charnier.Nm 473ea4e54b9SDavid Nugentsupports the idea of virtual hosts, which provides the ability to 474ea4e54b9SDavid Nugentdefine multiple anonymous ftp areas, each one allocated to a different 475ea4e54b9SDavid Nugentinternet address. 476ea4e54b9SDavid NugentThe file 477ea4e54b9SDavid Nugent.Pa /etc/ftphosts 478ea4e54b9SDavid Nugentcontains information pertaining to each of the virtual hosts. 479ea4e54b9SDavid NugentEach host is defined on its own line which contains a number of 480ea4e54b9SDavid Nugentfields separated by whitespace: 481ea4e54b9SDavid Nugent.Bl -tag -offset indent -width hostname 482ea4e54b9SDavid Nugent.It hostname 483ea4e54b9SDavid NugentContains the hostname or IP address of the virtual host. 484ea4e54b9SDavid Nugent.It user 485ea4e54b9SDavid NugentContains a user record in the system password file. 486ea4e54b9SDavid NugentAs with normal anonymous ftp, this user's access uid, gid and group 487ea4e54b9SDavid Nugentmemberships determine file access to the anonymous ftp area. 488ea4e54b9SDavid NugentThe anonymous ftp area (to which any user is chrooted on login) 489ea4e54b9SDavid Nugentis determined by the home directory defined for the account. 490ea4e54b9SDavid NugentUser id and group for any ftp account may be the same as for the 491ea4e54b9SDavid Nugentstandard ftp user. 492ea4e54b9SDavid Nugent.It statfile 493ea4e54b9SDavid NugentFile to which all file transfers are logged, which 494ea4e54b9SDavid Nugentdefaults to 495ea4e54b9SDavid Nugent.Pa /var/log/ftpd . 496ea4e54b9SDavid Nugent.It welcome 497ea4e54b9SDavid NugentThis file is the welcome message displayed before the server ready 498ea4e54b9SDavid Nugentprompt. 499ea4e54b9SDavid NugentIt defaults to 500ea4e54b9SDavid Nugent.Pa /etc/ftpwelcome . 501ea4e54b9SDavid Nugent.It motd 502ea4e54b9SDavid NugentThis file is displayed after the user logs in. 503ea4e54b9SDavid NugentIt defaults to 504ea4e54b9SDavid Nugent.Pa /etc/ftpmotd . 505ea4e54b9SDavid Nugent.El 506ea4e54b9SDavid Nugent.Pp 507d59b62e3SJoseph KoshyLines beginning with a '#' are ignored and can be used to include 508d59b62e3SJoseph Koshycomments. 509d59b62e3SJoseph Koshy.Pp 510ea4e54b9SDavid NugentDefining a virtual host for the primary IP address or hostname 511ea4e54b9SDavid Nugentchanges the default for ftp logins to that address. 512ea4e54b9SDavid NugentThe 'user', 'statfile', 'welcome' and 'motd' fields may be left 51357bd0fc6SJens Schweikhardtblank, or a single hyphen '-' used to indicate that the default 514ea4e54b9SDavid Nugentvalue is to be used. 515ea4e54b9SDavid Nugent.Pp 516ea4e54b9SDavid NugentAs with any anonymous login configuration, due care must be given 517ea4e54b9SDavid Nugentto setup and maintenance to guard against security related problems. 518ea4e54b9SDavid Nugent.Pp 5193f162cb8SPhilippe CharnierThe 520e02897faSPhilippe Charnier.Nm 5213f162cb8SPhilippe Charnierutility has internal support for handling remote requests to list 522334ab9fdSDavid Nugentfiles, and will not execute 523334ab9fdSDavid Nugent.Pa /bin/ls 524c481aa05SRuslan Ermilovin either a chrooted or non-chrooted environment. 525c481aa05SRuslan ErmilovThe 526334ab9fdSDavid Nugent.Pa ~/bin/ls 527334ab9fdSDavid Nugentexecutable need not be placed into the chrooted tree, nor need the 528334ab9fdSDavid Nugent.Pa ~/bin 529334ab9fdSDavid Nugentdirectory exist. 530ea022d16SRodney W. Grimes.Sh FILES 531125b9635SYaroslav Tykhiy.Bl -tag -width ".Pa /var/run/ftpd.pid" -compact 532ea022d16SRodney W. Grimes.It Pa /etc/ftpusers 533ea022d16SRodney W. GrimesList of unwelcome/restricted users. 534a5a4544eSPaul Traina.It Pa /etc/ftpchroot 535a5a4544eSPaul TrainaList of normal users who should be chroot'd. 536f97d7807SDavid E. O'Brien.It Pa /etc/ftphosts 537f97d7807SDavid E. O'BrienVirtual hosting configuration file. 538ea022d16SRodney W. Grimes.It Pa /etc/ftpwelcome 539ea022d16SRodney W. GrimesWelcome notice. 5407253b58bSGary Palmer.It Pa /etc/ftpmotd 541ea022d16SRodney W. GrimesWelcome notice after login. 542125b9635SYaroslav Tykhiy.It Pa /var/run/ftpd.pid 543125b9635SYaroslav TykhiyDefault pid file for daemon mode. 5440e510aedSSatoshi Asami.It Pa /var/run/nologin 545ea022d16SRodney W. GrimesDisplayed and access refused. 5463eb568f2SGuido van Rooij.It Pa /var/log/ftpd 5473eb568f2SGuido van RooijLog file for anonymous transfers. 548d939fc70SRuslan Ermilov.It Pa /var/log/xferlog 549d939fc70SRuslan ErmilovDefault place for session logs. 550ea022d16SRodney W. Grimes.El 551ea022d16SRodney W. Grimes.Sh SEE ALSO 552ea022d16SRodney W. Grimes.Xr ftp 1 , 55338ed70b1SYaroslav Tykhiy.Xr umask 2 , 554ea022d16SRodney W. Grimes.Xr getusershell 3 , 555dcac077fSTom Rhodes.Xr opie 4 , 5568657b576SYaroslav Tykhiy.Xr ftpchroot 5 , 557b071c689SDavid Nugent.Xr login.conf 5 , 558cf09a206SDavid Greenman.Xr inetd 8 , 559ea022d16SRodney W. Grimes.Xr syslogd 8 560a3ac07a5SRuslan Ermilov.Sh HISTORY 561a3ac07a5SRuslan ErmilovThe 562a3ac07a5SRuslan Ermilov.Nm 563a3ac07a5SRuslan Ermilovutility appeared in 564a3ac07a5SRuslan Ermilov.Bx 4.2 . 565a3ac07a5SRuslan ErmilovIPv6 support was added in WIDE Hydrangea IPv6 stack kit. 566ea022d16SRodney W. Grimes.Sh BUGS 567ea022d16SRodney W. GrimesThe server must run as the super-user 568c481aa05SRuslan Ermilovto create sockets with privileged port numbers. 569c481aa05SRuslan ErmilovIt maintains 570ea022d16SRodney W. Grimesan effective user id of the logged in user, reverting to 571c481aa05SRuslan Ermilovthe super-user only when binding addresses to sockets. 572c481aa05SRuslan ErmilovThe 573ea022d16SRodney W. Grimespossible security holes have been extensively 574ea022d16SRodney W. Grimesscrutinized, but are possibly incomplete. 575