Remove NO_OPENSSH variable functionality
[dragonfly.git] / libexec / tftpd / tftpd.8
blob3eb3cba482919f2e425d8483daae9fd0cedcbdb4
1 .\" Copyright (c) 1983, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)tftpd.8     8.1 (Berkeley) 6/4/93
29 .\" $FreeBSD: src/libexec/tftpd/tftpd.8,v 1.6.2.6 2003/04/06 19:42:56 dwmalone Exp $
30 .\" $DragonFly: src/libexec/tftpd/tftpd.8,v 1.3 2007/11/23 23:16:36 swildner Exp $
31 .\"
32 .Dd September 14, 2000
33 .Dt TFTPD 8
34 .Os
35 .Sh NAME
36 .Nm tftpd
37 .Nd Internet Trivial File Transfer Protocol server
38 .Sh SYNOPSIS
39 .Nm /usr/libexec/tftpd
40 .Op Fl cCln
41 .Op Fl s Ar directory
42 .Op Fl u Ar user
43 .Op Ar directory ...
44 .Sh DESCRIPTION
45 The
46 .Nm
47 utility is a server which supports the
48 Internet Trivial File Transfer
49 Protocol
50 .Pq Tn RFC 1350 .
51 The
52 .Tn TFTP
53 server operates
54 at the port indicated in the
55 .Ql tftp
56 service description;
57 see
58 .Xr services 5 .
59 The server is normally started by
60 .Xr inetd 8 .
61 .Pp
62 The use of
63 .Xr tftp 1
64 does not require an account or password on the remote system.
65 Due to the lack of authentication information,
66 .Nm
67 will allow only publicly readable files to be
68 accessed.
69 Files containing the string ``/\|\fB.\|.\fP\|/'' or starting with
70 ``\|\fB.\|.\fP\|/'' are not allowed.
71 Files may be written only if they already exist and are publicly writable.
72 Note that this extends the concept of
73 .Dq public
74 to include
75 all users on all hosts that can be reached through the network;
76 this may not be appropriate on all systems, and its implications
77 should be considered before enabling tftp service.
78 The server should have the user ID with the lowest possible privilege.
79 .Pp
80 Access to files may be restricted by invoking
81 .Nm
82 with a list of directories by including up to 20 pathnames
83 as server program arguments in
84 .Pa /etc/inetd.conf .
85 In this case access is restricted to files whose
86 names are prefixed by the one of the given directories.
87 The given directories are also treated as a search path for
88 relative filename requests.
89 .Pp
90 The
91 .Fl s
92 option provides additional security by changing
93 .Nm Ns No 's
94 root directory, thereby prohibiting accesses outside of the specified
95 .Ar directory .
96 Because
97 .Xr chroot 2
98 requires super-user privileges,
99 .Nm
100 must be run as root.
101 However, after performing the
102 .Fn chroot ,
104 will set its user id to that of the specified
105 .Ar user ,
107 .Dq nobody
108 if no
109 .Fl u
110 option is specified.
112 The options are:
113 .Bl -tag -width Ds
114 .It Fl c
115 Changes the default root directory of a connecting host via chroot based on the
116 connecting IP address.
117 This prevents multiple clients from writing to the same file at the same time.
118 If the directory does not exist, the client connection is refused.
120 .Fl s
121 option is required for
122 .Fl c
123 and the specified
124 .Ar directory
125 is used as a base.
126 .It Fl C
127 Operates the same as
128 .Fl c
129 except it falls back to
130 .Fl s Ns No 's
131 .Ar directory
132 if a directory does not exist for the client's IP.
133 .It Fl l
134 Log all requests using
135 .Xr syslog 3
136 with the facility of
137 .Dv LOG_FTP .
138 Note: Logging of
139 .Dv LOG_FTP
140 messages
141 must also be enabled in the syslog configuration file,
142 .Xr syslog.conf 5 .
143 .It Fl n
144 Suppress negative acknowledgement of requests for nonexistent
145 relative filenames.
146 .It Fl s Ar directory
147 Cause
149 to change its root directory to
150 .Pa directory .
151 After changing roots but before accepting commands,
153 will switch credentials to an unprivileged user.
154 .It Fl u Ar user
155 Switch credentials to
156 .Ar user
157 (default
158 .Dq nobody )
159 when the
160 .Fl s
161 option is used.
162 The user must be specified by name, not a numeric UID.
164 .Sh SEE ALSO
165 .Xr tftp 1 ,
166 .Xr chroot 2 ,
167 .Xr inetd 8 ,
168 .Xr syslogd 8
170 .%A K. R. Sollins
171 .%T The TFTP Protocol (Revision 2)
172 .%D July 1992
173 .%O RFC 1350, STD 33
175 .Sh HISTORY
178 utility appeared in
179 .Bx 4.2 ;
181 .Fl s
182 option was introduced in
183 .Fx 2.2 ,
185 .Fl u
186 option was introduced in
187 .Fx 4.2 ,
188 and the
189 .Fl c
190 option was introduced in
191 .Fx 4.3 .
192 .Sh BUGS
193 Files larger than 33488896 octets (65535 blocks) cannot be transferred
194 without client and server supporting blocksize negotiation (RFC 1783).
196 Many tftp clients will not transfer files over 16744448 octets (32767 blocks).