agp: Remove support for Broadwell hardware
[dragonfly.git] / usr.sbin / inetd / inetd.8
blob0de296f25f39ae97a2b173d1fa5b11a555daa417
1 .\" Copyright (c) 1985, 1991, 1993, 1994
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 .\"     from: @(#)inetd.8       8.3 (Berkeley) 4/13/94
29 .\" $FreeBSD: src/usr.sbin/inetd/inetd.8,v 1.46.2.13 2003/03/12 22:08:14 trhodes Exp $
30 .\"
31 .Dd February 7, 1996
32 .Dt INETD 8
33 .Os
34 .Sh NAME
35 .Nm inetd
36 .Nd internet
37 .Dq super-server
38 .Sh SYNOPSIS
39 .Nm
40 .Op Fl d
41 .Op Fl l
42 .Op Fl w
43 .Op Fl W
44 .Op Fl c Ar maximum
45 .Op Fl C Ar rate
46 .Op Fl a Ar address | hostname
47 .Op Fl p Ar filename
48 .Op Fl R Ar rate
49 .Op Fl s Ar maximum
50 .Op Ar configuration file
51 .Sh DESCRIPTION
52 The
53 .Nm
54 utility should be run at boot time by
55 .Pa /etc/rc
56 (see
57 .Xr rc 8 ) .
58 It then listens for connections on certain
59 internet sockets.  When a connection is found on one
60 of its sockets, it decides what service the socket
61 corresponds to, and invokes a program to service the request.
62 The server program is invoked with the service socket
63 as its standard input, output and error descriptors.
64 After the program is
65 finished,
66 .Nm
67 continues to listen on the socket (except in some cases which
68 will be described below).  Essentially,
69 .Nm
70 allows running one daemon to invoke several others,
71 reducing load on the system.
72 .Pp
73 The following options are available:
74 .Bl -tag -width indent
75 .It Fl d
76 Turn on debugging.
77 .It Fl l
78 Turn on logging of successful connections.
79 .It Fl w
80 Turn on TCP Wrapping for external services.
81 See the
82 .Sx "IMPLEMENTATION NOTES"
83 section for more information on TCP Wrappers support.
84 .It Fl W
85 Turn on TCP Wrapping for internal services which are built into
86 .Nm .
87 .It Fl c Ar maximum
88 Specify the default maximum number of
89 simultaneous invocations of each service;
90 the default is unlimited.
91 May be overridden on a per-service basis with the "max-child"
92 parameter.
93 .It Fl C Ar rate
94 Specify the default maximum number of times a service can be invoked
95 from a single IP address in one minute; the default is unlimited.
96 May be overridden on a per-service basis with the
97 "max-connections-per-ip-per-minute" parameter.
98 .It Fl R Ar rate
99 Specify the maximum number of times a service can be invoked
100 in one minute; the default is 256.
101 A rate of 0 allows an unlimited number of invocations.
102 .It Fl s Ar maximum
103 Specify the default maximum number of
104 simultaneous invocations of each service from a single IP address;
105 the default is unlimited.
106 May be overridden on a per-service basis with the "max-child-per-ip"
107 parameter.
108 .It Fl a
109 Specify one specific IP address to bind to.
110 Alternatively, a hostname can be specified,
111 in which case the IPv4 or IPv6 address
112 which corresponds to that hostname is used.
113 Usually a hostname is specified when
115 is run inside a
116 .Xr jail 8 ,
117 in which case the hostname corresponds to the
118 .Xr jail 8
119 environment.
121 When hostname specification is used
122 and both IPv4 and IPv6 bindings are desired,
123 one entry with the appropriate
124 .Em protocol
125 type for each binding
126 is required for each service in
127 .Pa /etc/inetd.conf .
128 For example,
129 a TCP-based service would need two entries,
130 one using
131 .Dq tcp4
132 for the
133 .Em protocol
134 and the other using
135 .Dq tcp6 .
136 See the explanation of the
137 .Pa /etc/inetd.conf
138 .Em protocol
139 field below.
140 .It Fl p
141 Specify an alternate file in which to store the process ID.
144 Upon execution,
146 reads its configuration information from a configuration
147 file which, by default, is
148 .Pa /etc/inetd.conf .
149 There must be an entry for each field of the configuration
150 file, with entries for each field separated by a tab or
151 a space.  Comments are denoted by a
152 .Dq #
153 at the beginning
154 of a line.  There must be an entry for each field.  The
155 fields of the configuration file are as follows:
157 .Bd -unfilled -offset indent -compact
158 service name
159 socket type
160 protocol
161 {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
162 user[:group][/login-class]
163 server program
164 server program arguments
167 To specify an
168 .Tn "ONC RPC" Ns -based
169 service, the entry would contain these fields:
171 .Bd -unfilled -offset indent -compact
172 service name/version
173 socket type
174 rpc/protocol
175 user[:group][/login-class]
176 server program
177 server program arguments
180 There are two types of services that
182 can start: standard and TCPMUX.
183 A standard service has a well-known port assigned to it;
184 it may be a service that implements an official Internet standard or is a
185 .Bx Ns -specific
186 service.
187 As described in
188 .Tn RFC 1078 ,
189 TCPMUX services are nonstandard services that do not have a
190 well-known port assigned to them.
191 They are invoked from
193 when a program connects to the
194 .Dq tcpmux
195 well-known port and specifies
196 the service name.
197 This feature is useful for adding locally-developed servers.
198 TCPMUX requests are only accepted when the multiplexor service itself
199 is enabled, above and beyond and specific TCPMUX-based servers; see the
200 discussion of internal services below.
203 .Em service-name
204 entry is the name of a valid service in
205 the file
206 .Pa /etc/services ,
207 or the specification of a
209 domain socket (see below).
211 .Dq internal
212 services (discussed below), the service
213 name
214 should
215 be the official name of the service (that is, the first entry in
216 .Pa /etc/services ) .
217 When used to specify an
218 .Tn "ONC RPC" Ns -based
219 service, this field is a valid RPC service name in
220 the file
221 .Pa /etc/rpc .
222 The part on the right of the
223 .Dq /
224 is the RPC version number.
225 This
226 can simply be a single numeric argument or a range of versions.
227 A range is bounded by the low version to the high version -
228 .Dq rusers/1-3 .
229 For TCPMUX services, the value of the
230 .Em service-name
231 field consists of the string
232 .Dq tcpmux
233 followed by a slash and the
234 locally-chosen service name.
235 The service names listed in
236 .Pa /etc/services
237 and the name
238 .Dq help
239 are reserved.
240 Try to choose unique names for your TCPMUX services by prefixing them with
241 your organization's name and suffixing them with a version number.
244 .Em socket-type
245 should be one of
246 .Dq stream ,
247 .Dq dgram ,
248 .Dq raw ,
249 .Dq rdm ,
251 .Dq seqpacket ,
252 depending on whether the socket is a stream, datagram, raw,
253 reliably delivered message, or sequenced packet socket.
254 TCPMUX services must use
255 .Dq stream .
258 .Em protocol
259 must be a valid protocol or
260 .Dq unix .
261 Examples are
262 .Dq tcp
264 .Dq udp ,
265 both of which imply IPv4 for backward compatibility.
266 The names
267 .Dq tcp4
269 .Dq udp4
270 specify IPv4 only.
271 The names
272 .Dq tcp6
274 .Dq udp6
275 specify IPv6 only.
276 The names
277 .Dq tcp46
279 .Dq udp46
280 specify that the entry accepts both IPv4 and IPv6 connections
281 via a wildcard
282 .Dv AF_INET6
283 socket.
284 If it is desired that the service is reachable via T/TCP, one should
285 specify
286 .Dq tcp/ttcp ,
287 which implies IPv4 for backward compatibility.
288 The name
289 .Dq tcp4/ttcp
290 specifies IPv4 only, while
291 .Dq tcp6/ttcp
292 specifies IPv6 only.
293 The name
294 .Dq tcp46/ttcp
295 specify that the entry accepts both IPv6 and IPv6 connections
296 via a wildcard
297 .Dv AF_INET6
298 socket.
299 Rpc based services
300 (for which only IPv4 is supported at this time)
301 are specified with the
302 .Dq rpc/tcp
304 .Dq rpc/udp
305 service type.
306 TCPMUX services must use
307 .Dq tcp ,
308 .Dq tcp4 ,
309 .Dq tcp6
311 .Dq tcp46 .
314 .Em wait/nowait
315 entry specifies whether the server that is invoked by
317 will take over
318 the socket associated with the service access point, and thus whether
320 should wait for the server to exit before listening for new service
321 requests.
322 Datagram servers must use
323 .Dq wait ,
324 as they are always invoked with the original datagram socket bound
325 to the specified service address.
326 These servers must read at least one datagram from the socket
327 before exiting.
328 If a datagram server connects
329 to its peer, freeing the socket so
331 can receive further messages on the socket, it is said to be
333 .Dq multi-threaded
334 server;
335 it should read one datagram from the socket and create a new socket
336 connected to the peer.
337 It should fork, and the parent should then exit
338 to allow
340 to check for new service requests to spawn new servers.
341 Datagram servers which process all incoming datagrams
342 on a socket and eventually time out are said to be
343 .Dq single-threaded .
344 .Xr Comsat 8 ,
345 .Pq Xr biff 1
347 .Xr talkd 8
348 are both examples of the latter type of
349 datagram server.
350 .Xr Tftpd 8
351 is an example of a multi-threaded datagram server.
353 Servers using stream sockets generally are multi-threaded and
354 use the
355 .Dq nowait
356 entry.
357 Connection requests for these services are accepted by
358 .Nm ,
359 and the server is given only the newly-accepted socket connected
360 to a client of the service.
361 Most stream-based services operate in this manner.
362 Stream-based servers that use
363 .Dq wait
364 are started with the listening service socket, and must accept
365 at least one connection request before exiting.
366 Such a server would normally accept and process incoming connection
367 requests until a timeout.
368 TCPMUX services must use
369 .Dq nowait .
371 The maximum number of outstanding child processes (or
372 .Dq threads )
373 for a
374 .Dq nowait
375 service may be explicitly specified by appending a
376 .Dq /
377 followed by the number to the
378 .Dq nowait
379 keyword.
380 Normally
381 (or if a value of zero is specified) there is no maximum.
382 Otherwise,
383 once the maximum is reached, further connection attempts will be
384 queued up until an existing child process exits.
385 This also works
386 in the case of
387 .Dq wait
388 mode, although a value other than one (the
389 default) might not make sense in some cases.
390 You can also specify the maximum number of connections per minute
391 for a given IP address by appending
393 .Dq /
394 followed by the number to the maximum number of
395 outstanding child processes.
396 Once the maximum is reached, further
397 connections from this IP address will be dropped until the end of the
398 minute.
399 In addition, you can specify the maximum number of simultaneous
400 invocations of each service from a single IP address by appending a
401 .Dq /
402 followed by the number to the maximum number of outstanding child
403 processes.  Once the maximum is reached, further connections from this
404 IP address will be dropped.
407 .Em user
408 entry should contain the user name of the user as whom the server
409 should run.  This allows for servers to be given less permission
410 than root.
411 Optional
412 .Em group
413 part separated by
414 .Dq \&:
415 allows to specify group name different
416 than default group for this user.
417 Optional
418 .Em login-class
419 part separated by
420 .Dq /
421 allows to specify login class different
422 than default
423 .Dq daemon
424 login class.
427 .Em server-program
428 entry should contain the pathname of the program which is to be
429 executed by
431 when a request is found on its socket.  If
433 provides this service internally, this entry should
435 .Dq internal .
438 .Em server program arguments
439 should be just as arguments
440 normally are, starting with argv[0], which is the name of
441 the program.  If the service is provided internally, the
442 .Em service-name
443 of the service (and any arguments to it) or the word
444 .Dq internal
445 should take the place of this entry.
447 Currently, the only internal service to take arguments is
448 .Dq auth .
449 Without options, the service will always return
450 .Dq ERROR\ : HIDDEN-USER .
451 The available arguments to this service that alter its behavior are:
452 .Bl -tag -width indent
453 .It Fl d Ar fallback
454 Provide a
455 .Ar fallback
456 username.
457 If the real
458 .Dq auth
459 service is enabled
460 (with the
461 .Fl r
462 option discussed below),
463 return this username instead of an error
464 when lookups fail
465 for either socket credentials or the username.
466 If the real
467 .Dq auth
468 service is disabled,
469 return this username for every request.
470 This is primarily useful when running this service on a NAT machine.
471 .It Fl g
472 Instead of returning
473 the user's name to the ident requester,
474 report a
475 username made up of random alphanumeric characters,
476 e.g.\&
477 .Dq c0c993 .
479 .Fl g
480 flag overrides not only the user names,
481 but also any fallback name,
482 .Pa .fakeid
484 .Pa .noident
485 files.
486 .It Fl t Xo
487 .Ar sec Ns Op . Ns Ar usec
489 Specify a timeout for the service.
490 The default timeout is 10.0 seconds.
491 .It Fl r
492 Offer a real
493 .Dq auth
494 service, as per RFC 1413.
495 All the remaining flags apply only in this case.
496 .It Fl i
497 Return numeric user IDs instead of usernames.
498 .It Fl f
499 If the file
500 .Pa .fakeid
501 exists in the home directory of the identified user, report the username
502 found in that file instead of the real username.
503 If the username found in
504 .Pa .fakeid
505 is that of an existing user,
506 then the real username is reported.
507 If the
508 .Fl i
509 flag is also given then the username in
510 .Pa .fakeid
511 is checked against existing user IDs instead.
512 .It Fl F
513 same as
514 .Fl f
515 but without the restriction that the username in
516 .Pa .fakeid
517 must not match an existing user.
518 .It Fl n
519 If the file
520 .Pa .noident
521 exists in the home directory of the identified user, return
522 .Dq ERROR\ : HIDDEN-USER .
523 This overrides any
524 .Pa fakeid
525 file which might exist.
526 .It Fl o Ar osname
528 .Ar osname
529 instead of the name of the system as reported by
530 .Xr uname 3 .
535 utility also provides several other
536 .Dq trivial
537 services internally by use of
538 routines within itself.  These services are
539 .Dq echo ,
540 .Dq discard ,
541 .Dq chargen
542 (character generator),
543 .Dq daytime
544 (human readable time), and
545 .Dq time
546 (machine readable time, in the form of the number of seconds since
547 midnight, January 1, 1900).  All of these services are available in
548 both TCP and UDP versions; the UDP versions will refuse service if the
549 request specifies a reply port corresponding to any internal service.
550 (This is done as a defense against looping attacks; the remote IP address
551 is logged.)
552 For details of these services, consult the
553 appropriate
554 .Tn RFC
555 document.
557 The TCPMUX-demultiplexing service is also implemented as an internal service.
558 For any TCPMUX-based service to function, the following line must be included
560 .Pa inetd.conf :
561 .Bd -literal -offset indent
562 tcpmux  stream  tcp     nowait  root    internal
565 When given the
566 .Fl l
567 option
569 will log an entry to syslog each time a connection is accepted, noting the
570 service selected and the IP-number of the remote requester if available.
571 Unless otherwise specified in the configuration file,
572 and in the absence of the
573 .Fl W
575 .Fl w
576 options,
578 will log to the
579 .Dq daemon
580 facility.
584 utility rereads its configuration file when it receives a hangup signal,
585 .Dv SIGHUP .
586 Services may be added, deleted or modified when the configuration file
587 is reread.
588 Except when started in debugging mode,
590 records its process ID in the file
591 .Pa /var/run/inetd.pid
592 to assist in reconfiguration.
593 .Sh IMPLEMENTATION NOTES
594 .Ss TCP Wrappers
595 When given the
596 .Fl w
597 option,
599 will wrap all services specified as
600 .Dq stream nowait
602 .Dq dgram
603 except for
604 .Dq internal
605 services.
606 If the
607 .Fl W
608 option is given, such
609 .Dq internal
610 services will be wrapped.
611 If both options are given, wrapping for both
612 internal and external services will be enabled.
613 Either wrapping option
614 will cause failed connections to be logged to the
615 .Dq auth
616 syslog facility.
617 Adding the
618 .Fl l
619 flag to the wrapping options will include successful connections in the
620 logging to the
621 .Dq auth
622 facility.
624 Note that
626 only wraps requests for a
627 .Dq wait
628 service while no servers are available to service requests.
629 Once a
630 connection to such a service has been allowed,
632 has no control
633 over subsequent connections to the service until no more servers
634 are left listening for connection requests.
636 When wrapping is enabled, the
637 .Pa tcpd
638 daemon is not required, as that functionality is builtin.
639 For more information on TCP Wrappers, see the relevant documentation
640 .Pq Xr hosts_access 5 .
641 When reading that document, keep in mind that
642 .Dq internal
643 services have no associated daemon name.
644 Therefore, the service name
645 as specified in
646 .Pa inetd.conf
647 should be used as the daemon name for
648 .Dq internal
649 services.
650 .Ss TCPMUX
651 .Tn RFC 1078
652 describes the TCPMUX protocol:
653 ``A TCP client connects to a foreign host on TCP port 1.  It sends the
654 service name followed by a carriage-return line-feed <CRLF>.  The
655 service name is never case sensitive.  The server replies with a
656 single character indicating positive (+) or negative (\-)
657 acknowledgment, immediately followed by an optional message of
658 explanation, terminated with a <CRLF>.  If the reply was positive,
659 the selected protocol begins; otherwise the connection is closed.''
660 The program is passed the TCP connection as file descriptors 0 and 1.
662 If the TCPMUX service name begins with a
663 .Dq + ,
665 returns the positive reply for the program.
666 This allows you to invoke programs that use stdin/stdout
667 without putting any special server code in them.
669 The special service name
670 .Dq help
671 causes
673 to list TCPMUX services in
674 .Pa inetd.conf .
675 .Ss IPsec
676 The implementation includes a tiny hack
677 to support IPsec policy settings for each socket.
678 A special form of comment line, starting with
679 .Dq Li #@ ,
680 is interpreted as a policy specifier.
681 Everything after the
682 .Dq Li #@
683 will be used as an IPsec policy string,
684 as described in
685 .Xr ipsec_set_policy 3 .
686 Each
687 policy specifier is applied to all the following lines in
688 .Pa inetd.conf
689 until the next policy specifier.
690 An empty policy specifier resets the IPsec policy.
692 If an invalid IPsec policy specifier appears in
693 .Pa inetd.conf ,
695 will provide an error message via the
696 .Xr syslog 3
697 interface and abort execution.
698 .Ss Ux Domain Sockets
699 In addition to running services on IP sockets,
701 can also manage
703 domain sockets.
704 To do this you specify a
705 .Em protocol
707 .Dq unix
708 and specify the
710 domain socket as the
711 .Em service-name .
713 .Em service-type
714 may be
715 .Dq stream
717 .Dq dgram .
718 The specification of the socket must be
719 an absolute path name,
720 optionally prefixed by an owner and mode
721 of the form
722 .Em :user:group:mode: .
723 The specification:
725 .Dl ":news:daemon:220:/var/run/sock"
727 creates a socket owned
728 by user
729 .Dq news
730 in group
731 .Dq daemon
732 with permissions allowing only that user and group to connect.
733 The default owner is the user that
735 is running as.
736 The default mode only allows the socket's owner to connect.
738 .Sy WARNING :
739 while creating
741 domain socket,
743 must change the ownership and permissions on the socket.
744 This can only be done securely if
745 the directory in which the socket is created
746 is writable only by root.
748 .Em NOT
751 to create sockets in world writable directories,
752 such as
753 .Pa /tmp ,
754 instead use
755 .Pa /var/run
756 or a similar directory.
758 Internal services may be run on
760 domain sockets, in the usual way.
761 In this case
762 the name of the internal service
763 is determined using
764 the last component of the socket's pathname.
765 .Sh FILES
766 .Bl -tag -width /var/run/inetd.pid -compact
767 .It Pa /etc/inetd.conf
768 configuration file
769 .It Pa /etc/rpc
770 translation of service names to RPC program numbers
771 .It Pa /etc/services
772 translation of service names to port numbers
773 .It Pa /var/run/inetd.pid
774 the pid of the currently running
777 .Sh EXAMPLES
778 Here are several example service entries for the various types of services:
779 .Bd -literal
780 ftp          stream  tcp   nowait root  /usr/libexec/ftpd        ftpd -l
781 ntalk        dgram   udp   wait   root  /usr/libexec/ntalkd      ntalkd
782 telnet       stream  tcp6  nowait root  /usr/libexec/telnetd  telnetd
783 shell        stream  tcp46  nowait root  /usr/libexec/rshd rshd
784 tcpmux/+date stream  tcp   nowait guest /bin/date                date
785 tcpmux/phonebook stream tcp nowait guest /usr/local/bin/phonebook phonebook
786 rstatd/1-3   dgram   rpc/udp wait root  /usr/libexec/rpc.rstatd  rpc.rstatd
787 /var/run/echo stream unix  nowait root  internal
788 #@ ipsec ah/require
789 chargen      stream  tcp   nowait root  internal
792 .Sh ERROR MESSAGES
795 server
796 logs error messages using
797 .Xr syslog 3 .
798 Important error messages and their explanations are:
800 .Bl -ohang -compact
801 .It Xo
802 .Ar service Ns / Ns Ar protocol
803 .No "server failing (looping), service terminated."
805 The number of requests for the specified service in the past minute
806 exceeded the limit.
807 The limit exists to prevent a broken program
808 or a malicious user from swamping the system.
809 This message may occur for several reasons:
810 .Bl -enum -offset indent
812 There are many hosts requesting the service within a short time period.
814 A broken client program is requesting the service too frequently.
816 A malicious user is running a program to invoke the service in
817 a denial-of-service attack.
819 The invoked service program has an error that causes clients
820 to retry quickly.
823 Use the
824 .Fl R Ar rate
825 option,
826 as described above, to change the rate limit.
827 Once the limit is reached, the service will be
828 reenabled automatically in 10 minutes.
830 .It Xo
831 .Ar service Ns / Ns Ar protocol :
832 .No \&No such user
833 .Ar user ,
834 .No service ignored
836 .It Xo
837 .Ar service Ns / Ns Ar protocol :
838 .No getpwnam :
839 .Ar user :
840 .No \&No such user
842 No entry for
843 .Ar user
844 exists in the
845 .Xr passwd 5
846 database.
847 The first message
848 occurs when
850 (re)reads the configuration file.
851 The second message occurs when the
852 service is invoked.
854 .It Xo
855 .Ar service :
856 .No can't set uid
857 .Ar uid
859 .It Xo
860 .Ar service :
861 .No can't set gid
862 .Ar gid
864 The user or group ID for the entry's
865 .Ar user
866 field is invalid.
868 .It "setsockopt(SO_PRIVSTATE): Operation not supported"
871 utility attempted to renounce the privileged state associated with a
872 socket but was unable to.
874 .Sh SEE ALSO
875 .Xr ipsec_set_policy 3 ,
876 .Xr hosts_access 5 ,
877 .Xr hosts_options 5 ,
878 .Xr login.conf 5 ,
879 .Xr passwd 5 ,
880 .Xr rpc 5 ,
881 .Xr services 5 ,
882 .Xr comsat 8 ,
883 .Xr fingerd 8 ,
884 .Xr ftpd 8 ,
885 .Xr rlogind 8 ,
886 .Xr rpcbind 8 ,
887 .Xr rshd 8 ,
888 .Xr telnetd 8 ,
889 .Xr tftpd 8
891 .%A Michael C. St. Johns
892 .%T Identification Protocol
893 .%O RFC 1413
895 .Sh HISTORY
898 utility appeared in
899 .Bx 4.3 .
900 TCPMUX is based on code and documentation by Mark Lottor.
901 Support for
902 .Tn "ONC RPC"
903 based services is modeled after that
904 provided by
905 .Tn SunOS
906 4.1.
907 The IPsec hack was contributed by the KAME project in 1999.
910 TCP Wrappers support first appeared in
911 .Fx 3.2 .