TCP Wrappers

Patterns

The access control language implements the following patterns:

Wildcards

The access control language supports explicit wildcards:
ALLThe universal wildcard, always matches.
LOCALMatches any host whose name does not contain a dot character.
UNKNOWN Matches any user whose name is unknown, and matches any host whose name or address are unknown. This pattern should be used with care: host names may be unavailable due to temporary name server problems. A network address will be unavailable when the software cannot figure out what type of network it is talking to.
KNOWNMatches any user whose name is known, and matches any host whose name and address are known. This pattern should be used with care: host names may be unavailable due to temporary name server problems. A network address will be unavailable when the software cannot figure out what type of network it is talking to.
PARANOID Matches any host whose name does not match its address. When tcpd is built with -DPARANOID (default mode), it drops requests from such clients even before looking at the access control tables. Build without -DPARANOID when you want more control over such requests.

Operators

EXCEPT Intended use is of the form: 'list_1 EXCEPT list_2'; this construct matches anything that matches list_1 unless it matches list_2. The EXCEPT operator can be used in daemon_lists and in client_lists. The EXCEPT operator can be nested: if the control language would permit the use of parentheses, 'a EXCEPT b EXCEPT c' would parse as '(a EXCEPT (b EXCEPT c))'.

Shell Commands

If the first-matched access control rule contains a shell command, that command is subjected to % substitutions (see next section). The result is exe- cuted by a /bin/sh child process with standard input, output and error connected to /dev/null. Specify an '&' at the end of the command if you do not want to wait until it has completed.

Shell commands should not rely on the PATH setting of the inetd. Instead, they should use absolute path names, or they should begin with an explicit PATH=what- ever statement.

% Expansions

The following expansions are available within shell commands:
%a (%A)The client (server) host address.
%cClient information: user@host, user@address, a host name, or just an address, depending on how much information is available.
%dThe daemon process name (argv[0] value).
%h (%H)The client (server) host name or address, if the host name is unavailable.
%n (%N)The client (server) host name (or "unknown" or "paranoid").
%pThe daemon process id.
%sServer information: daemon@host, daemon@address, or just a daemon name, depending on how much information is available.
%uThe client user name (or "unknown").
%%Expands to a single '%? character.
Characters in % expansions that may confuse the shell are replaced by underscores.