|
|
1.1 root 1: .\" Copyright (c) 1985, 1988 The Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted provided
5: .\" that: (1) source distributions retain this entire copyright notice and
6: .\" comment, and (2) distributions including binaries display the following
7: .\" acknowledgement: ``This product includes software developed by the
8: .\" University of California, Berkeley and its contributors'' in the
9: .\" documentation or other materials provided with the distribution and in
10: .\" all advertising materials mentioning features or use of this software.
11: .\" Neither the name of the University nor the names of its contributors may
12: .\" be used to endorse or promote products derived from this software without
13: .\" specific prior written permission.
14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17: .\"
18: .\" @(#)ftpd.8 6.8 (Berkeley) 6/24/90
19: .\"
20: .TH FTPD 8 "February 23, 1989"
21: .UC 5
22: .SH NAME
23: ftpd \- DARPA Internet File Transfer Protocol server
24: .SH SYNOPSIS
25: .B ftpd
26: [
27: .B \-d
28: ] [
29: .B \-l
30: ] [
31: .BR \-t timeout
32: ] [
33: .BR \-T maxtimeout
34: ]
35: .SH DESCRIPTION
36: .I Ftpd
37: is the DARPA Internet File Transfer Protocol
38: server process. The server uses the TCP protocol
39: and listens at the port specified in the ``ftp''
40: service specification; see
41: .IR services (5).
42: .PP
43: If the
44: .B \-d
45: option is specified,
46: debugging information is written to the syslog.
47: .PP
48: If the
49: .B \-l
50: option is specified,
51: each ftp session is logged in the syslog.
52: .PP
53: The ftp server
54: will timeout an inactive session after 15 minutes.
55: If the
56: .B \-t
57: option is specified,
58: the inactivity timeout period will be set to
59: .I timeout
60: seconds.
61: A client may also request a different timeout period;
62: the maximum period allowed may be set to
63: .I timeout
64: seconds with the
65: .B \-T
66: option.
67: The default limit is 2 hours.
68: .PP
69: The ftp server currently supports the following ftp
70: requests; case is not distinguished.
71: .PP
72: .nf
73: .ta \w'Request 'u
74: \fBRequest Description\fP
75: ABOR abort previous command
76: ACCT specify account (ignored)
77: ALLO allocate storage (vacuously)
78: APPE append to a file
79: CDUP change to parent of current working directory
80: CWD change working directory
81: DELE delete a file
82: HELP give help information
83: LIST give list files in a directory (``ls -lgA'')
84: MKD make a directory
85: MDTM show last modification time of file
86: MODE specify data transfer \fImode\fP
87: NLST give name list of files in directory
88: NOOP do nothing
89: PASS specify password
90: PASV prepare for server-to-server transfer
91: PORT specify data connection port
92: PWD print the current working directory
93: QUIT terminate session
94: REST restart incomplete transfer
95: RETR retrieve a file
96: RMD remove a directory
97: RNFR specify rename-from file name
98: RNTO specify rename-to file name
99: SITE non-standard commands (see next section)
100: SIZE return size of file
101: STAT return status of server
102: STOR store a file
103: STOU store a file with a unique name
104: STRU specify data transfer \fIstructure\fP
105: SYST show operating system type of server system
106: TYPE specify data transfer \fItype\fP
107: USER specify user name
108: XCUP change to parent of current working directory (deprecated)
109: XCWD change working directory (deprecated)
110: XMKD make a directory (deprecated)
111: XPWD print the current working directory (deprecated)
112: XRMD remove a directory (deprecated)
113: .fi
114: .PP
115: The following non-standard or UNIX specific commands are supported
116: by the SITE request.
117: .PP
118: .nf
119: .ta \w'Request 'u
120: \fBRequest Description\fP
121: UMASK change umask. \fIE.g.\fP SITE UMASK 002
122: IDLE set idle-timer. \fIE.g.\fP SITE IDLE 60
123: CHMOD change mode of a file. \fIE.g.\fP SITE CHMOD 755 filename
124: HELP give help information. \fIE.g.\fP SITE HELP
125: .fi
126: .PP
127: The remaining ftp requests specified in Internet RFC 959 are
128: recognized, but not implemented.
129: MDTM and SIZE are not specified in
130: RFC 959, but will appear in the next updated FTP RFC.
131: .PP
132: The ftp server will abort an active file transfer only when the
133: ABOR command is preceded by a Telnet "Interrupt Process" (IP)
134: signal and a Telnet "Synch" signal in the command Telnet stream,
135: as described in Internet RFC 959.
136: If a STAT command is received during a data transfer, preceded by a Telnet IP
137: and Synch, transfer status will be returned.
138: .PP
139: .I Ftpd
140: interprets file names according to the ``globbing''
141: conventions used by
142: .IR csh (1).
143: This allows users to utilize the metacharacters ``*?[]{}~''.
144: .PP
145: .I Ftpd
146: authenticates users according to three rules.
147: .IP 1)
148: The user name must be in the password data base,
149: .IR /etc/passwd ,
150: and not have a null password. In this case a password
151: must be provided by the client before any file operations
152: may be performed.
153: .IP 2)
154: The user name must not appear in the file
155: .IR /etc/ftpusers .
156: .IP 3)
157: The user must have a standard shell returned by
158: .IR getusershell (3).
159: .IP 4)
160: If the user name is ``anonymous'' or ``ftp'', an
161: anonymous ftp account must be present in the password
162: file (user ``ftp''). In this case the user is allowed
163: to log in by specifying any password (by convention this
164: is given as the client host's name).
165: .PP
166: In the last case,
167: .I ftpd
168: takes special measures to restrict the client's access privileges.
169: The server performs a
170: .IR chroot (2)
171: command to the home directory of the ``ftp'' user.
172: In order that system security is not breached, it is recommended
173: that the ``ftp'' subtree be constructed with care; the following
174: rules are recommended.
175: .IP ~ftp)
176: Make the home directory owned by ``ftp'' and unwritable by anyone.
177: .IP ~ftp/bin)
178: Make this directory owned by the super-user and unwritable by
179: anyone. The program
180: .IR ls (1)
181: must be present to support the list command. This
182: program should have mode 111.
183: .IP ~ftp/etc)
184: Make this directory owned by the super-user and unwritable by
185: anyone. The files
186: .IR passwd (5)
187: and
188: .IR group (5)
189: must be present for the
190: .I ls
191: command to be able to produce owner names rather than numbers.
192: The password field in
193: .I passwd
194: is not used, and should not contain real encrypted passwords.
195: These files should be mode 444.
196: .IP ~ftp/pub)
197: Make this directory mode 777 and owned by ``ftp''. Users
198: should then place files which are to be accessible via the
199: anonymous account in this directory.
200: .SH "SEE ALSO"
201: ftp(1), getusershell(3), syslogd(8)
202: .SH BUGS
203: The anonymous account is inherently dangerous and should
204: avoided when possible.
205: .PP
206: The server must run as the super-user
207: to create sockets with privileged port numbers. It maintains
208: an effective user id of the logged in user, reverting to
209: the super-user only when binding addresses to sockets. The
210: possible security holes have been extensively
211: scrutinized, but are possibly incomplete.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.