Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
TFTPD(8)		  BSD System Manager's Manual		      TFTPD(8)

     tftpd -- Internet Trivial File Transfer Protocol server

     /usr/libexec/tftpd	[-cClnw] [-s directory]	[-u user] [-U umask]
			[directory ...]

     The tftpd utility is a server which supports the Internet Trivial File
     Transfer Protocol (RFC 1350).  The	TFTP server operates at	the port indi-
     cated in the `tftp' service description; see services(5).	The server is
     normally started by inetd(8).

     The use of	tftp(1)	does not require an account or password	on the remote
     system.  Due to the lack of authentication	information, tftpd will	allow
     only publicly readable files to be	accessed.  Files containing the	string
     ``/../'' or starting with ``../'' are not allowed.	 Files may be written
     only if they already exist	and are	publicly writable.  Note that this ex-
     tends the concept of "public" to include all users	on all hosts that can
     be	reached	through	the network; this may not be appropriate on all	sys-
     tems, and its implications	should be considered before enabling tftp ser-
     vice.  The	server should have the user ID with the	lowest possible	privi-

     Access to files may be restricted by invoking tftpd with a	list of	direc-
     tories by including up to 20 pathnames as server program arguments	in
     /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 relative filename requests.

     The -s option provides additional security	by changing tftpd's root di-
     rectory, thereby prohibiting accesses outside of the specified directory.
     Because chroot(2) requires	super-user privileges, tftpd must be run as
     root.  However, after performing the chroot(), tftpd will set its user id
     to	that of	the specified user, or "nobody"	if no -u option	is specified.

     The options are:

     -c	     Changes the default root directory	of a connecting	host via ch-
	     root 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
	     -s	option is required for -c and the specified directory is used
	     as	a base.

     -C	     Operates the same as -c except it falls back to -s's directory if
	     a directory does not exist	for the	client's IP.

     -l	     Log all requests using syslog(3) with the facility	of LOG_FTP.
	     Note: Logging of LOG_FTP messages must also be enabled in the
	     syslog configuration file,	syslog.conf(5).

     -n	     Suppress negative acknowledgement of requests for nonexistent
	     relative filenames.

     -s	directory
	     Cause tftpd to change its root directory to directory.  After
	     changing roots but	before accepting commands, tftpd will switch
	     credentials to an unprivileged user.

     -u	user
	     Switch credentials	to user	(default "nobody") when	the -s option
	     is	used.  The user	must be	specified by name, not a numeric UID.

     -U	umask
	     Set the umask for newly created files.  The default is 022
	     (S_IWGRP |	S_IWOTH).

     -w	     Allow writes requests to create new files.	 By default tftpd re-
	     quires that the file specified in a write request exist.

     tftp(1), chroot(2), inetd(8), syslogd(8)

     K.	R. Sollins, The	TFTP Protocol (Revision	2), July 1992, RFC 1350, STD

     The tftpd utility appeared	in 4.2BSD; the -s option was introduced	in
     FreeBSD 2.2, the -u option	was introduced in FreeBSD 4.2, and the -c op-
     tion was introduced in FreeBSD 4.3.

     Files larger than 33488896	octets (65535 blocks) cannot be	transferred
     without client and	server supporting blocksize negotiation	(RFC1783).

     Many tftp clients will not	transfer files over 16744448 octets (32767

BSD			      September	14, 2000			   BSD


Want to link to this manual page? Use this URL:

home | help