]> git.saurik.com Git - apple/network_cmds.git/blobdiff - tftpd.tproj/tftpd.8
network_cmds-85.tar.gz
[apple/network_cmds.git] / tftpd.tproj / tftpd.8
index 430c1c403c9b9e222ba9b628d771f85d700b3234..76896c401b6eefbb1c2f2355eb48a9c17c533f8d 100644 (file)
 .\" SUCH DAMAGE.
 .\"
 .\"    @(#)tftpd.8     8.1 (Berkeley) 6/4/93
+.\" $FreeBSD: src/libexec/tftpd/tftpd.8,v 1.15 2001/07/15 07:53:42 dd Exp $
 .\"
-.Dd June 4, 1993
+.Dd September 14, 2000
 .Dt TFTPD 8
-.Os BSD 4.2
+.Os
 .Sh NAME
 .Nm tftpd
-.Nd
-Internet Trivial File Transfer Protocol server
+.Nd Internet Trivial File Transfer Protocol server
 .Sh SYNOPSIS
-.Nm tftpd
-.Op Fl l
-.Op Fl n
+.Nm /usr/libexec/tftpd
+.Op Fl cCln
+.Op Fl s Ar directory
+.Op Fl u Ar user
 .Op Ar directory ...
 .Sh DESCRIPTION
 .Nm Tftpd
 is a server which supports the
 Internet Trivial File Transfer
-Protocol (\c
-.Tn RFC 783).
+Protocol
+.Pq Tn RFC 1350 .
 The
 .Tn TFTP
 server operates
@@ -63,11 +64,12 @@ The server is normally started by
 The use of
 .Xr tftp 1
 does not require an account or password on the remote system.
-Due to the lack of authentication information, 
-.Nm tftpd
+Due to the lack of authentication information,
+.Nm
 will allow only publicly readable files to be
 accessed.
-Files containing the string ``/\|\fB.\|.\fP\|/'' are not allowed.
+Files containing the string ``/\|\fB.\|.\fP\|/'' or starting with
+``\|\fB.\|.\fP\|/'' are not allowed.
 Files may be written only if they already exist and are publicly writable.
 Note that this extends the concept of
 .Dq public
@@ -78,29 +80,119 @@ should be considered before enabling tftp service.
 The server should have the user ID with the lowest possible privilege.
 .Pp
 Access to files may be restricted by invoking
-.Nm tftpd
+.Nm
 with a list of directories by including up to 20 pathnames
 as server program arguments in
 .Pa /etc/inetd.conf .
 In this case access is restricted to files whose
 names are prefixed by the one of the given directories.
-The given directories are also treated as a search path for 
+The given directories are also treated as a search path for
 relative filename requests.
 .Pp
+The
+.Fl s
+option provides additional security by changing
+.Nm Ns No 's
+root directory, thereby prohibiting accesses outside of the specified
+.Ar directory .
+Because
+.Xr chroot 2
+requires super-user privileges,
+.Nm
+must be run as root.
+However, after performing the
+.Fn chroot ,
+.Nm
+will set its user id to that of the specified
+.Ar user ,
+or
+.Dq nobody
+if no
+.Fl u
+option is specified.
+.Pp
 The options are:
 .Bl -tag -width Ds
+.It Fl c
+Changes the default root directory of a connecting host via chroot based on the
+connecting IP address.
+This prevents multiple clients from writing to the same file at the same time.
+If the directory does not exist, the client connection is refused.
+The
+.Fl s
+option is required for
+.Fl c
+and the specified
+.Ar directory
+is used as a base.
+.It Fl C
+Operates the same as
+.Fl c
+except it falls back to
+.Fl s Ns No 's
+.Ar directory
+if a directory does not exist for the client's IP.
 .It Fl l
-Logs all requests using
-.Xr syslog 3 .
+Log all requests using
+.Xr syslog 3
+with the facility of
+.Dv LOG_FTP .
+Note: Logging of
+.Dv LOG_FTP
+messages
+must also be enabled in the syslog configuration file,
+.Xr syslog.conf 5 .
 .It Fl n
-Suppresses negative acknowledgement of requests for nonexistent
+Suppress negative acknowledgement of requests for nonexistent
 relative filenames.
+.It Fl s Ar directory
+Cause
+.Nm
+to change its root directory to
+.Pa directory .
+After changing roots but before accepting commands,
+.Nm
+will switch credentials to an unprivileged user.
+.It Fl u Ar user
+Switch credentials to
+.Ar user
+(default
+.Dq nobody )
+when the
+.Fl s
+option is used.
+The user must be specified by name, not a numeric UID.
 .El
 .Sh SEE ALSO
 .Xr tftp 1 ,
-.Xr inetd 8
+.Xr chroot 2 ,
+.Xr inetd 8 ,
+.Xr syslogd 8
+.Rs
+.%A K. R. Sollins
+.%T The TFTP Protocol (Revision 2)
+.%D July 1992
+.%O RFC 1350, STD 33
+.Re
 .Sh HISTORY
 The
 .Nm
 command appeared in
-.Bx 4.2 .
+.Bx 4.2 ;
+the
+.Fl s
+option was introduced in
+.Fx 2.2 ,
+the
+.Fl u
+option was introduced in
+.Fx 4.2 ,
+and the
+.Fl c
+option was introduced in
+.Fx 4.3 .
+.Sh BUGS
+Files larger than 33488896 octets (65535 blocks) cannot be transferred
+without client and server supporting blocksize negotiation (RFC1783).
+.Pp
+Many tftp clients will not transfer files over 16744448 octets (32767 blocks).