### Узоры

Язык управления доступом реализует следующие шаблоны:

- Строка, которая начинается с «.» персонаж. Имя хоста сопоставляется, если последние компоненты его имени соответствуют указанному шаблону. Например, шаблон «.tue.nl» соответствует имени хоста «wzv.win.tue.nl».
- Строка, которая заканчивается на «.» персонаж. Адрес хоста сопоставляется, если его первые числовые поля соответствуют заданной строке. Например, шаблон «131.155». соответствует адресу (почти) каждого хоста в сети Эйндховенского университета (131.155.xx).
- Строка, начинающаяся с символа '@', обрабатывается как имя сетевой группы NIS (ранее YP). Имя хоста сопоставляется, если оно является членом хоста указанной сетевой группы. Соответствия сетевых групп не поддерживаются для имен процессов демона или для имен пользователей клиента.
- Выражение в форме «nnnn / mmmm» интерпретируется как пара «сеть / маска». Адрес хоста IPv4 сопоставляется, если значение «net» равно побитовому И адреса и «маски». Например, шаблон net/mask '131.155.72.0/255.255.254.0' соответствует каждому адресу в диапазоне от 131.155.72.0 до 131.155.73.255.
- Выражение вида '[n: n: n: n: n: n: n: n] / m' интерпретируется как пара '[net]/prefixlen'. Адрес хоста IPv6 сопоставляется, если «префиксные» биты «net» равны «префиксальным» битам адреса. Например, шаблон [net]/prefixlen '[3ffe: 505: 2: 1 ::]/64' соответствует каждому адресу в диапазоне '3ffe: 505: 2: 1:'? через '3ffe: 505: 2: 1: FFFF: FFFF: FFFF: FFFF'.
- Строка, которая начинается с символа «/», обрабатывается как имя файла. Имя хоста или адрес совпадают, если оно соответствует какому-либо имени хоста или шаблону адреса, указанному в названном файле. Формат файла - ноль или более строк с нулями или более имен хостов или шаблонов адресов, разделенных пробелами. Шаблон имени файла можно использовать везде, где можно использовать имя хоста или шаблон адреса.
- Подстановочные знаки '*' и '?' может использоваться для сопоставления имен хостов или IP-адресов. Этот метод сопоставления нельзя использовать вместе с сопоставлением «net/mask», сопоставление имени хоста начинается с «.» или сопоставление IP-адреса, заканчивающееся на «.».

### Wildcards

Язык управления доступом поддерживает явные подстановочные знаки:

ВСЕ | Универсальный шаблон, всегда совпадает.
МЕСТНЫЙ | Соответствует любому хосту, имя которого не содержит символ точки.
НЕИЗВЕСТНЫЙ | Соответствует любому пользователю, имя которого неизвестно, и соответствует любому хосту, имя или адрес которого неизвестны. Этот шаблон следует использовать с осторожностью: имена хостов могут быть недоступны из-за временных проблем с сервером имен. Сетевой адрес будет недоступен, когда программное обеспечение не может определить, к какому типу сети оно обращается.
ИЗВЕСТНЫЙ | Соответствует любому пользователю, имя которого известно, и соответствует любому хосту, имя и адрес которого известны. Этот шаблон следует использовать с осторожностью: имена хостов могут быть недоступны из-за временных проблем с сервером имен. Сетевой адрес будет недоступен, когда программное обеспечение не может определить, к какому типу сети оно обращается.
PARANOID | Соответствует любому хосту, имя которого не совпадает с его адресом. Когда tcpd создается с параметром -DPARANOID (режим по умолчанию), он отбрасывает запросы от таких клиентов даже перед просмотром таблиц контроля доступа. Сборка без -DPARANOID, когда вы хотите больше контроля над такими запросами.

### операторы

ИСКЛЮЧЕНИЕ Предполагаемое использование имеет вид: 'list_1 EXCEPT list_2'; эта конструкция соответствует всему, что соответствует list_1, если не соответствует list_2. Оператор EXCEPT может использоваться в daemon_lists и client_lists. Оператор EXCEPT может быть вложенным: если язык управления разрешит использование скобок, то 'EXCEPT b EXCEPT c' будет анализироваться как '(EXCEPT (b EXCEPT c))'.

### Команды оболочки

Если первое согласованное правило контроля доступа содержит команду оболочки, эта команда подвергается% замены (см. следующий раздел). Результат выполняется дочерним процессом /bin/sh со стандартным вводом, выводом и ошибкой, связанной с /dev/null. Укажите «&» в конце команды, если вы не хотите ждать, пока она не завершится.

Команды оболочки не должны полагаться на параметр PATH в inetd. Вместо этого им следует использовать абсолютные пути или начинать с явного выражения PATH = что угодно.

### % Расширения

В командах оболочки доступны следующие расширения:

%a (%A) | Адрес хоста клиента (сервера).
%с | Информация о клиенте: user@host, user@address, имя хоста или просто адрес, в зависимости от объема доступной информации.
%d | Имя процесса демона (значение argv[0]).
%h (%H) | Имя или адрес хоста клиента (сервера), если имя хоста недоступно.
%n (%N) | Имя хоста клиента (сервера) (или «неизвестно», или «параноик»).
%p | Идентификатор процесса демона.
%s | Информация о сервере: daemon@host, daemon@address или просто имя демона, в зависимости от объема доступной информации.
%u | Имя пользователя клиента (или «неизвестно»).
%% | Расширяется до одного%? персонаж.

Символы в%расширениях, которые могут запутать оболочку, заменяются символами подчеркивания.