128 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH TCPD 8
 | 
						|
.SH NAME
 | 
						|
tcpd, tcpdp \- waits for a TCP connection request and starts a server
 | 
						|
.SH SYNOPSIS
 | 
						|
.B tcpd
 | 
						|
.RB [ \-d ]
 | 
						|
.RB [ \-m 
 | 
						|
.I maxclients
 | 
						|
]
 | 
						|
.I service
 | 
						|
.I program
 | 
						|
.RB [ arg ...
 | 
						|
]
 | 
						|
.SH DESCRIPTION
 | 
						|
.de SP
 | 
						|
.if t .sp 0.4
 | 
						|
.if n .sp
 | 
						|
..
 | 
						|
.B Tcpd
 | 
						|
is a daemon, that is, a user-space program that is normally started when the 
 | 
						|
operating system is started and that normally does not terminate until the 
 | 
						|
system is shut down.
 | 
						|
Conceptually, you can think of
 | 
						|
.B tcpd
 | 
						|
as doing nothing but listening to a port for a connection attempt. Several 
 | 
						|
copies of 
 | 
						|
.B tcpd
 | 
						|
will typically be started, one for each service that is to be provided. 
 | 
						|
When a connection is detected the tcpd for that port 
 | 
						|
.IR fork s
 | 
						|
and then the child process 
 | 
						|
.IR exec s
 | 
						|
an instance of the server for that port.
 | 
						|
.P
 | 
						|
The above description is simplified. 
 | 
						|
Normally two versions of the tcpd.c source code are compiled. 
 | 
						|
.B Tcpd
 | 
						|
is the one that waits for a connection. When a connection occurs 
 | 
						|
.B tcpd 
 | 
						|
.IR fork s. 
 | 
						|
If 
 | 
						|
.B tcpd
 | 
						|
was started with options or if the child detects that the access 
 | 
						|
control file 
 | 
						|
.IR /etc/serv.access 
 | 
						|
exists, the child will 
 | 
						|
.IR exec 
 | 
						|
its paranoid twin,
 | 
						|
.B tcpdp,
 | 
						|
which checks that the connection attempt is from an allowed node or network,
 | 
						|
or that it is not from a disallowed node or network. 
 | 
						|
.B Tcpdp
 | 
						|
also tries to look up the name corresponding to an IP address, and denies 
 | 
						|
the connection if a name cannot be found. Finally, 
 | 
						|
.B tcpdp
 | 
						|
determines whether the connection is supposed to be logged. 
 | 
						|
If all is well, the child 
 | 
						|
.B tcpd
 | 
						|
or
 | 
						|
.B tcpdp
 | 
						|
then 
 | 
						|
.IR exec s 
 | 
						|
the server for the service with any arguments specified on the command line 
 | 
						|
for that server.
 | 
						|
.SH OPTIONS
 | 
						|
.TP
 | 
						|
.B \-d 
 | 
						|
turn on debugging.
 | 
						|
.TP
 | 
						|
.B \-m
 | 
						|
allow no more than the specified 
 | 
						|
.IR maxclients 
 | 
						|
to start.
 | 
						|
.SH EXAMPLES
 | 
						|
.de EX
 | 
						|
.TP 20
 | 
						|
\\fB\\$1\\fR
 | 
						|
# \\$2
 | 
						|
..
 | 
						|
.TP 20
 | 
						|
.B tcpd telnet in.telnetd &
 | 
						|
# wait for a telnet connection on the normal port
 | 
						|
.TP 20
 | 
						|
.B tcpd 8000 in.httpd /etc/httpd8000.conf &
 | 
						|
# wait for web page request on port 8000 and use a custom config file for the in.httpd program.
 | 
						|
.P
 | 
						|
Note that command lines must be terminated with "&" to return control to the
 | 
						|
calling process, leaving the daemon executing as a background process. 
 | 
						|
.P
 | 
						|
The above examples show how tcpd might be invoked from /etc/rc or
 | 
						|
another script that runs during system initialization.  You will also
 | 
						|
see this in the supplied startup scripts:
 | 
						|
.TP 20
 | 
						|
.B daemonize tcpd shell in.rshd
 | 
						|
# daemonize is a shell function that tests whether a daemon is present and starts it if so, using the & to start it in the background.
 | 
						|
.P
 | 
						|
Another case that should be mentioned is that when a system administrator
 | 
						|
wants to start (or restart) a daemon from a command line,
 | 
						|
.BR intr (8)
 | 
						|
should be used, like this:
 | 
						|
.TP 20
 | 
						|
.B intr -d tcpd telnet in.telnetd &
 | 
						|
# remove the daemon from a process group and connect its input to /dev/null and its output to /dev/log.   
 | 
						|
.SH FILES
 | 
						|
.TP 25n
 | 
						|
.B /etc/serv.access
 | 
						|
The access control file.
 | 
						|
.SH "SEE ALSO"
 | 
						|
.BR execve (2),
 | 
						|
.BR fork (2),
 | 
						|
.BR intr (8),
 | 
						|
.BR serv.access (5).
 | 
						|
.SH NOTES
 | 
						|
That daemons cannot daemonize themselves is a way in which Minix differs from
 | 
						|
most other Unix-like systems. 
 | 
						|
.P
 | 
						|
Allowing access to your system from the net is dangerous. Be sure you 
 | 
						|
know what you are doing. Be sure the owner of your net knows what you are 
 | 
						|
doing. Don't enable services you don't need.  Enable logging and look at your
 | 
						|
logs.
 | 
						|
.SH BUGS
 | 
						|
None known, let us know...
 | 
						|
.SH AUTHOR
 | 
						|
Kees J. Bot <kjb@cs.vu.nl>
 | 
						|
.P
 | 
						|
Man page by Al Woodhull <asw@woodhull.com> 
 | 
						|
.\" rev 2006-06-02
 |