|
|
1.1 root 1: .\" Copyright (c) 1985 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)ftpd.8c 6.4 (Berkeley) 5/28/86
6: .\"
7: .TH FTPD 8C "April 27, 1985"
8: .UC 5
9: .SH NAME
10: ftpd \- DARPA Internet File Transfer Protocol server
11: .SH SYNOPSIS
12: .B /etc/ftpd
13: [
14: .B \-d
15: ] [
16: .B \-l
17: ] [
18: .BR \-t timeout
19: ]
20: .SH DESCRIPTION
21: .I Ftpd
22: is the DARPA Internet File Transfer Prototocol
23: server process. The server uses the TCP protocol
24: and listens at the port specified in the ``ftp''
25: service specification; see
26: .IR services (5).
27: .PP
28: If the
29: .B \-d
30: option is specified,
31: debugging information is written to the syslog.
32: .PP
33: If the
34: .B \-l
35: option is specified,
36: each ftp session is logged in the syslog.
37: .PP
38: The ftp server
39: will timeout an inactive session after 15 minutes.
40: If the
41: .B \-t
42: option is specified,
43: the inactivity timeout period will be set to
44: .IR timeout .
45: .PP
46: The ftp server currently supports the following ftp
47: requests; case is not distinguished.
48: .PP
49: .nf
50: .ta \w'Request 'u
51: \fBRequest Description\fP
52: ABOR abort previous command
53: ACCT specify account (ignored)
54: ALLO allocate storage (vacuously)
55: APPE append to a file
56: CDUP change to parent of current working directory
57: CWD change working directory
58: DELE delete a file
59: HELP give help information
60: LIST give list files in a directory (``ls -lg'')
61: MKD make a directory
62: MODE specify data transfer \fImode\fP
63: NLST give name list of files in directory (``ls'')
64: NOOP do nothing
65: PASS specify password
66: PASV prepare for server-to-server transfer
67: PORT specify data connection port
68: PWD print the current working directory
69: QUIT terminate session
70: RETR retrieve a file
71: RMD remove a directory
72: RNFR specify rename-from file name
73: RNTO specify rename-to file name
74: STOR store a file
75: STOU store a file with a unique name
76: STRU specify data transfer \fIstructure\fP
77: TYPE specify data transfer \fItype\fP
78: USER specify user name
79: XCUP change to parent of current working directory
80: XCWD change working directory
81: XMKD make a directory
82: XPWD print the current working directory
83: XRMD remove a directory
84: .fi
85: .PP
86: The remaining ftp requests specified in Internet RFC 959 are
87: recognized, but not implemented.
88: .PP
89: The ftp server will abort an active file transfer only when the
90: ABOR command is preceded by a Telnet "Interrupt Process" (IP)
91: signal and a Telnet "Synch" signal in the command Telnet stream,
92: as described in Internet RFC 959.
93: .PP
94: .I Ftpd
95: interprets file names according to the ``globbing''
96: conventions used by
97: .IR csh (1).
98: This allows users to utilize the metacharacters ``*?[]{}~''.
99: .PP
100: .I Ftpd
101: authenticates users according to three rules.
102: .IP 1)
103: The user name must be in the password data base,
104: .IR /etc/passwd ,
105: and not have a null password. In this case a password
106: must be provided by the client before any file operations
107: may be performed.
108: .IP 2)
109: The user name must not appear in the file
110: .IR /etc/ftpusers .
111: .IP 3)
112: The user must have a standard shell returned by
113: .IR getusershell (3).
114: .IP 4)
115: If the user name is ``anonymous'' or ``ftp'', an
116: anonymous ftp account must be present in the password
117: file (user ``ftp''). In this case the user is allowed
118: to log in by specifying any password (by convention this
119: is given as the client host's name).
120: .PP
121: In the last case,
122: .I ftpd
123: takes special measures to restrict the client's access privileges.
124: The server performs a
125: .IR chroot (2)
126: command to the home directory of the ``ftp'' user.
127: In order that system security is not breached, it is recommended
128: that the ``ftp'' subtree be constructed with care; the following
129: rules are recommended.
130: .IP ~ftp)
131: Make the home directory owned by ``ftp'' and unwritable by anyone.
132: .IP ~ftp/bin)
133: Make this directory owned by the super-user and unwritable by
134: anyone. The program
135: .IR ls (1)
136: must be present to support the list commands. This
137: program should have mode 111.
138: .IP ~ftp/etc)
139: Make this directory owned by the super-user and unwritable by
140: anyone. The files
141: .IR passwd (5)
142: and
143: .IR group (5)
144: must be present for the
145: .I ls
146: command to work properly. These files should be mode 444.
147: .IP ~ftp/pub)
148: Make this directory mode 777 and owned by ``ftp''. Users
149: should then place files which are to be accessible via the
150: anonymous account in this directory.
151: .SH "SEE ALSO"
152: ftp(1C), getusershell(3), syslogd(8)
153: .SH BUGS
154: The anonymous account is inherently dangerous and should
155: avoided when possible.
156: .PP
157: The server must run as the super-user
158: to create sockets with privileged port numbers. It maintains
159: an effective user id of the logged in user, reverting to
160: the super-user only when binding addresses to sockets. The
161: possible security holes have been extensively
162: scrutinized, but are possibly incomplete.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.