]> git.saurik.com Git - apple/network_cmds.git/blob - tftpd.tproj/tftpd.8
network_cmds-245.8.tar.gz
[apple/network_cmds.git] / tftpd.tproj / tftpd.8
1 .\" $NetBSD: tftpd.8,v 1.21 2003/08/07 09:46:53 agc Exp $
2 .\"
3 .\" Copyright (c) 1983, 1991, 1993
4 .\" The Regents of the University of California. All rights reserved.
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
14 .\" 3. Neither the name of the University nor the names of its contributors
15 .\" may be used to endorse or promote products derived from this software
16 .\" without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" SUCH DAMAGE.
29 .\"
30 .\" from: @(#)tftpd.8 8.1 (Berkeley) 6/4/93
31 .\"
32 .Dd June 11, 2003
33 .Dt TFTPD 8
34 .Os
35 .Sh NAME
36 .Nm tftpd
37 .Nd
38 .Tn DARPA
39 Internet Trivial File Transfer Protocol server
40 .Sh SYNOPSIS
41 .Nm
42 .Op Fl d
43 .Op Fl g Ar group
44 .Op Fl i
45 .Op Fl l
46 .Op Fl n
47 .Op Fl s Ar directory
48 .Op Fl u Ar user
49 .Op Ar directory ...
50 .Sh DESCRIPTION
51 .Nm
52 is a server which supports the
53 .Tn DARPA
54 Trivial File Transfer Protocol.
55 The
56 .Tn TFTP
57 server operates at the port indicated in the
58 .Ql tftp
59 service description; see
60 .Xr services 5 .
61 The server is normally started by
62 .Xr inetd 8 .
63 .Pp
64 The use of
65 .Xr tftp 1
66 does not require an account or password on the remote system.
67 Due to the lack of authentication information,
68 .Nm
69 will allow only publicly readable files to be accessed.
70 Filenames beginning in ``\|\fB.\|.\fP\|/'' or
71 containing ``/\|\fB.\|.\fP\|/'' are not allowed.
72 Files may be written to only if they already exist and are publicly writable.
73 .Pp
74 Note that this extends the concept of
75 .Qq public
76 to include
77 all users on all hosts that can be reached through the network;
78 this may not be appropriate on all systems, and its implications
79 should be considered before enabling tftp service.
80 The server should have the user ID with the lowest possible privilege.
81 .Pp
82 Access to files may be restricted by invoking
83 .Nm
84 with a list of directories by including up to 20 pathnames
85 as server program arguments in
86 .Pa /etc/inetd.conf .
87 In this case access is restricted to files whose
88 names are prefixed by the one of the given directories.
89 The given directories are also treated as a search path for
90 relative filename requests.
91 .Pp
92 The options are:
93 .Bl -tag -width "directory"
94 .It Fl d
95 Enable verbose debugging messages to
96 .Xr syslogd 8 .
97 .It Fl g Ar group
98 Change gid to that of
99 .Ar group
100 on startup.
101 If this isn't specified, the gid is set to that of the
102 .Ar user
103 specified with
104 .Fl u .
105 .It Fl i
106 Enable insecure mode, no
107 .Xr realpath 3 .
108 .It Fl l
109 Logs all requests using
110 .Xr syslog 3 .
111 .It Fl n
112 Suppresses negative acknowledgement of requests for nonexistent
113 relative filenames.
114 .It Fl s Ar directory
115 .Nm
116 will
117 .Xr chroot 2
118 to
119 .Ar directory
120 on startup.
121 This is recommended for security reasons (so that files other than
122 those in the
123 .Pa /tftpboot
124 directory aren't accessible).
125 If the remote host passes the directory name as part of the
126 file name to transfer, you may have to create a symbolic link
127 from
128 .Sq tftpboot
129 to
130 .Sq \&.
131 under
132 .Pa /tftpboot .
133 .It Fl u Ar user
134 Change uid to that of
135 .Ar user
136 on startup.
137 If
138 .Fl u
139 isn't given,
140 .Ar user
141 defaults to
142 .Dq nobody .
143 If
144 .Fl g
145 isn't also given, change the gid to that of
146 .Ar user
147 as well.
148 .El
149 .Sh SEE ALSO
150 .Xr tftp 1 ,
151 .Xr inetd 8
152 .Rs
153 .%R RFC
154 .%N 1350
155 .%D July 1992
156 .%T "The TFTP Protocol (Revision 2)"
157 .Re
158 .Rs
159 .%R RFC
160 .%N 2347
161 .%D May 1998
162 .%T "TFTP Option Extension"
163 .Re
164 .Rs
165 .%R RFC
166 .%N 2348
167 .%D May 1998
168 .%T "TFTP Blocksize Option"
169 .Re
170 .Rs
171 .%R RFC
172 .%N 2349
173 .%D May 1998
174 .%T "TFTP Timeout Interval and Transfer Size Options"
175 .Re
176 .Sh HISTORY
177 The
178 .Nm
179 command appeared in
180 .Bx 4.2 .
181 .Pp
182 The
183 .Fl s
184 flag appeared in
185 .Nx 1.0 .
186 .Pp
187 The
188 .Fl g
189 and
190 .Fl u
191 flags appeared in
192 .Nx 1.4 .
193 .Pp
194 IPv6 support was implemented by WIDE/KAME project in 1999.
195 .Pp
196 TFTP options were implemented by Wasabi Systems, Inc., in 2003,
197 and first appeared in
198 NetBSD 2.0 .
199 .Sh BUGS
200 Files larger than 33488896 octets (65535 blocks) cannot be transferred
201 without client and server supporting blocksize negotiation (RFCs
202 2347 and 2348).
203 .Pp
204 Many tftp clients will not transfer files over 16744448 octets (32767 blocks).
205 .Sh SECURITY CONSIDERATIONS
206 You are
207 .Em strongly
208 advised to set up
209 .Nm
210 using the
211 .Fl s
212 flag in conjunction with the name of the directory that
213 contains the files that
214 .Nm
215 will serve to remote hosts (e.g.,
216 .Pa /tftpboot ) .
217 This ensures that only the files that should be served
218 to remote hosts can be accessed by them.
219 .Pp
220 Because there is no user-login or validation within
221 the
222 .Tn TFTP
223 protocol, the remote site will probably have some
224 sort of file-access restrictions in place.
225 The exact methods are specific to each site and therefore
226 difficult to document here.