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