xref: /csrg-svn/libexec/ftpd/ftpd.8 (revision 61425)
1*61425Sbostic.\" Copyright (c) 1985, 1988, 1991, 1993
2*61425Sbostic.\"	The Regents of the University of California.  All rights reserved.
318965Smckusick.\"
443767Strent.\" %sccs.include.redist.man%
518965Smckusick.\"
6*61425Sbostic.\"     @(#)ftpd.8	8.1 (Berkeley) 06/04/93
735560Sbostic.\"
847462Scael.Dd
947462Scael.Dt FTPD 8
1047462Scael.Os BSD 4.2
1147462Scael.Sh NAME
1247462Scael.Nm ftpd
1347462Scael.Nd
1447462ScaelInternet File Transfer Protocol server
1547462Scael.Sh SYNOPSIS
1647462Scael.Nm ftpd
1754204Sbostic.Op Fl dl
1854530Sandrew.Op Fl T Ar maxtimeout
1947462Scael.Op Fl t Ar timeout
2047462Scael.Sh DESCRIPTION
2147462Scael.Nm Ftpd
2247462Scaelis the
2347462ScaelInternet File Transfer Protocol
2447462Scaelserver process.  The server uses the
2547462Scael.Tn TCP
2647462Scaelprotocol
2747462Scaeland listens at the port specified in the
2847462Scael.Dq ftp
2918965Smckusickservice specification; see
3047462Scael.Xr services 5 .
3147462Scael.Pp
3247462ScaelAvailable options:
3347462Scael.Bl -tag -width Ds
3447462Scael.It Fl d
3554530SandrewDebugging information is written to the syslog using LOG_FTP.
3647462Scael.It Fl l
3754530SandrewEach successful and failed
3847462Scael.Xr ftp 1
3954530Sandrewsession is logged using syslog with a facility of LOG_FTP.
4054530SandrewIf this option is specified twice, the retrieve (get), store (put), append,
4154530Sandrewdelete, make directory, remove directory and rename operations and
4254530Sandrewtheir filename arguments are also logged.
4347462Scael.It Fl T
4436933SkarelsA client may also request a different timeout period;
4536933Skarelsthe maximum period allowed may be set to
4647462Scael.Ar timeout
4736933Skarelsseconds with the
4847462Scael.Fl T
4936933Skarelsoption.
5036933SkarelsThe default limit is 2 hours.
5154530Sandrew.It Fl t
5254530SandrewThe inactivity timeout period is set to
5354530Sandrew.Ar timeout
5454530Sandrewseconds (the default is 15 minutes).
5547462Scael.El
5647462Scael.Pp
5754530SandrewThe file
5854530Sandrew.Pa /etc/nologin
5954530Sandrewcan be used to disable ftp access.
6054530SandrewIf the file exists,
6154530Sandrew.Nm
6254530Sandrewdisplays it and exits.
6354530SandrewIf the file
6454530Sandrew.Pa /etc/ftpwelcome
6554530Sandrewexists,
6654530Sandrew.Nm
6754530Sandrewprints it before issuing the
6854530Sandrew.Dq ready
6954530Sandrewmessage.
7054530SandrewIf the file
7154530Sandrew.Pa /etc/motd
7254530Sandrewexists,
7354530Sandrew.Nm
7454530Sandrewprints it after a successsful login.
7554530Sandrew.Pp
7654530SandrewThe ftp server currently supports the following ftp requests.
7754530SandrewThe case of the requests is ignored.
7847462Scael.Bl -column "Request" -offset indent
7947462Scael.It Request Ta "Description"
8047462Scael.It ABOR Ta "abort previous command"
8147462Scael.It ACCT Ta "specify account (ignored)"
8247462Scael.It ALLO Ta "allocate storage (vacuously)"
8347462Scael.It APPE Ta "append to a file"
8447462Scael.It CDUP Ta "change to parent of current working directory"
8547462Scael.It CWD Ta "change working directory"
8647462Scael.It DELE Ta "delete a file"
8747462Scael.It HELP Ta "give help information"
8847462Scael.It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA"
8947462Scael.It MKD Ta "make a directory"
9047462Scael.It MDTM Ta "show last modification time of file"
9147462Scael.It MODE Ta "specify data transfer" Em mode
9247462Scael.It NLST Ta "give name list of files in directory"
9347462Scael.It NOOP Ta "do nothing"
9447462Scael.It PASS Ta "specify password"
9547462Scael.It PASV Ta "prepare for server-to-server transfer"
9647462Scael.It PORT Ta "specify data connection port"
9747462Scael.It PWD Ta "print the current working directory"
9847462Scael.It QUIT Ta "terminate session"
9947462Scael.It REST Ta "restart incomplete transfer"
10047462Scael.It RETR Ta "retrieve a file"
10147462Scael.It RMD Ta "remove a directory"
10247462Scael.It RNFR Ta "specify rename-from file name"
10347462Scael.It RNTO Ta "specify rename-to file name"
10447462Scael.It SITE Ta "non-standard commands (see next section)"
10547462Scael.It SIZE Ta "return size of file"
10647462Scael.It STAT Ta "return status of server"
10747462Scael.It STOR Ta "store a file"
10847462Scael.It STOU Ta "store a file with a unique name"
10947462Scael.It STRU Ta "specify data transfer" Em structure
11047462Scael.It SYST Ta "show operating system type of server system"
11147462Scael.It TYPE Ta "specify data transfer" Em type
11247462Scael.It USER Ta "specify user name"
11347462Scael.It XCUP Ta "change to parent of current working directory (deprecated)"
11447462Scael.It XCWD Ta "change working directory (deprecated)"
11547462Scael.It XMKD Ta "make a directory (deprecated)"
11647462Scael.It XPWD Ta "print the current working directory (deprecated)"
11747462Scael.It XRMD Ta "remove a directory (deprecated)"
11847462Scael.El
11947462Scael.Pp
12047462ScaelThe following non-standard or
12147462Scael.Tn UNIX
12247462Scaelspecific commands are supported
12347462Scaelby the
12447462ScaelSITE request.
12547462Scael.Pp
12647462Scael.Bl -column Request -offset indent
12747462Scael.It Sy Request Ta Sy Description
12854530Sandrew.It UMASK Ta change umask, e.g. ``SITE UMASK 002''
12954530Sandrew.It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60''
13054530Sandrew.It CHMOD Ta change mode of a file, e.g. ``SITE CHMOD 755 filename''
13154530Sandrew.It HELP Ta give help information.
13247462Scael.El
13347462Scael.Pp
13454530SandrewThe remaining ftp requests specified in Internet RFC 959
13547462Scaelare
13618965Smckusickrecognized, but not implemented.
13754530SandrewMDTM and SIZE are not specified in RFC 959, but will appear in the
13854530Sandrewnext updated FTP RFC.
13947462Scael.Pp
14026051SminshallThe ftp server will abort an active file transfer only when the
14147462ScaelABOR
14247462Scaelcommand is preceded by a Telnet "Interrupt Process" (IP)
14326051Sminshallsignal and a Telnet "Synch" signal in the command Telnet stream,
14454530Sandrewas described in Internet RFC 959.
14547462ScaelIf a
14647462ScaelSTAT
14747462Scaelcommand is received during a data transfer, preceded by a Telnet IP
14836933Skarelsand Synch, transfer status will be returned.
14947462Scael.Pp
15047462Scael.Nm Ftpd
15147462Scaelinterprets file names according to the
15247462Scael.Dq globbing
15318965Smckusickconventions used by
15447462Scael.Xr csh 1 .
15547462ScaelThis allows users to utilize the metacharacters
15647462Scael.Dq Li \&*?[]{}~ .
15747462Scael.Pp
15847462Scael.Nm Ftpd
15918965Smckusickauthenticates users according to three rules.
16047462Scael.Pp
16147462Scael.Bl -enum -offset indent
16247462Scael.It
16354530SandrewThe login name must be in the password data base,
16447462Scael.Pa /etc/passwd ,
16554530Sandrewand not have a null password.
16654530SandrewIn this case a password must be provided by the client before any
16754530Sandrewfile operations may be performed.
16847462Scael.It
16954530SandrewThe login name must not appear in the file
17047462Scael.Pa /etc/ftpusers .
17147462Scael.It
17228866SmckusickThe user must have a standard shell returned by
17347462Scael.Xr getusershell 3 .
17447462Scael.It
17547462ScaelIf the user name is
17647462Scael.Dq anonymous
17747462Scaelor
17847462Scael.Dq ftp ,
17947462Scaelan
18018965Smckusickanonymous ftp account must be present in the password
18147462Scaelfile (user
18247462Scael.Dq ftp ) .
18347462ScaelIn this case the user is allowed
18454530Sandrewto log in by specifying any password (by convention an email address for
18554530Sandrewthe user should be used as the password).
18647462Scael.El
18747462Scael.Pp
18818965SmckusickIn the last case,
18947462Scael.Nm ftpd
19018965Smckusicktakes special measures to restrict the client's access privileges.
19118965SmckusickThe server performs a
19247462Scael.Xr chroot 2
19354530Sandrewto the home directory of the
19447462Scael.Dq ftp
19547462Scaeluser.
19618965SmckusickIn order that system security is not breached, it is recommended
19747462Scaelthat the
19847462Scael.Dq ftp
19954204Sbosticsubtree be constructed with care, following these rules:
20047462Scael.Bl -tag -width "~ftp/pub" -offset indent
20147462Scael.It Pa ~ftp
20247462ScaelMake the home directory owned by
20354204Sbostic.Dq root
20447462Scaeland unwritable by anyone.
20547462Scael.It Pa ~ftp/bin
20654204SbosticMake this directory owned by
20754204Sbostic.Dq root
20854530Sandrewand unwritable by anyone (mode 555).
20954204SbosticThe program
21047462Scael.Xr ls 1
21154204Sbosticmust be present to support the list command.
21254204SbosticThis program should be mode 111.
21347462Scael.It Pa ~ftp/etc
21454204SbosticMake this directory owned by
21554204Sbostic.Dq root
21654530Sandrewand unwritable by anyone (mode 555).
21754204SbosticThe files
21847462Scael.Xr passwd 5
21918965Smckusickand
22047462Scael.Xr group 5
22118965Smckusickmust be present for the
22247462Scael.Xr ls
22336933Skarelscommand to be able to produce owner names rather than numbers.
22436933SkarelsThe password field in
22547462Scael.Xr passwd
22654204Sbosticis not used, and should not contain real passwords.
22754530SandrewThe file
22854530Sandrew.Pa motd ,
22954530Sandrewif present, will be printed after a sucessful login.
23036933SkarelsThese files should be mode 444.
23147462Scael.It Pa ~ftp/pub
23247462ScaelMake this directory mode 777 and owned by
23347462Scael.Dq ftp .
23454204SbosticGuests
23554204Sbosticcan then place files which are to be accessible via the anonymous
23654204Sbosticaccount in this directory.
23747462Scael.El
23854530Sandrew.Sh FILES
23954530Sandrew.Bl -tag -width /etc/ftpwelcome -compact
24054530Sandrew.It Pa /etc/ftpusers
24154530SandrewList of unwelcome/restricted users.
24254530Sandrew.It Pa /etc/ftpwelcome
24354530SandrewWelcome notice.
24454530Sandrew.It Pa /etc/motd
24554530SandrewWelcome notice after login.
24654530Sandrew.It Pa /etc/nologin
24754530SandrewDisplayed and access refused.
24854530Sandrew.El
24947462Scael.Sh SEE ALSO
25047462Scael.Xr ftp 1 ,
25147462Scael.Xr getusershell 3 ,
25247462Scael.Xr syslogd 8
25347462Scael.Sh BUGS
25418965SmckusickThe server must run as the super-user
25518965Smckusickto create sockets with privileged port numbers.  It maintains
25618965Smckusickan effective user id of the logged in user, reverting to
25718965Smckusickthe super-user only when binding addresses to sockets.  The
25818965Smckusickpossible security holes have been extensively
25918965Smckusickscrutinized, but are possibly incomplete.
26047462Scael.Sh HISTORY
26147462ScaelThe
26247462Scael.Nm
26347462Scaelcommand appeared in
26447462Scael.Bx 4.2 .
265