### 模式

訪問控制語言實現以下模式：

- 以“。”開頭的字符串。字符。如果主機名的最後一部分與指定的模式匹配，則匹配該主機名。例如，模式“ .tue.nl”與主機名“ wzv.win.tue.nl”匹配。
- 以“。”結尾的字符串。字符。如果主機地址的第一個數字字段與給定的字符串匹配，則匹配該主機地址。例如，模式“ 131.155”。與（幾乎）埃因霍溫大學網絡（131.155.xx）上每個主機的地址匹配。
- 以'@'字符開頭的字符串被視為NIS（以前稱為YP）網絡組名稱。如果主機名是指定網絡組的主機成員，則匹配該主機名。守護進程名稱或客戶端用戶名稱不支持Netgroup匹配。
- “ nnnn / mmmm”形式的表達式被解釋為“ net/mask”對。如果“ net”等於地址和“掩碼”的按位與，則匹配IPv4主機地址。例如，網絡/掩碼模式“ 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”對。如果“ net”的“ prefixlen”位等於該地址的“ prefixlen”位，則匹配IPv6主機地址。例如，[net] /前綴模式“ [3ffe：505：2：1 ::]/64”會匹配“ 3ffe：505：2：1：”範圍內的每個地址？到'3ffe：505：2：1：ffff：ffff：ffff：ffff'。
- 以'/'字符開頭的字符串被視為文件名。如果主機名或地址與命名文件中列出的任何主機名或地址模式匹配，則匹配該主機名或地址。文件格式為零或更多行，零或多個主機名或地址模式用空格分隔。文件名模式可以在任何可以使用主機名或地址模式的地方使用。
- 通配符“ *”和“？”可以用來匹配主機名或IP地址。這種匹配方法不能與“ net/mask”匹配，以“。”開頭的主機名匹配一起使用。或以“。”結尾的IP地址匹配。

### 通配符

訪問控制語言支持顯式通配符：

所有 | 通用通配符始終匹配。
本地 | 匹配名稱不包含點字符的任何主機。
未知 | 匹配名稱未知的任何用戶，並匹配名稱或地址未知的任何主機。請謹慎使用此模式：由於臨時名稱服務器問題，主機名可能不可用。當軟件無法確定正在與之通信的網絡類型時，網絡地址將不可用。
知道的 | 匹配名稱已知的任何用戶，以及名稱和地址已知的任何主機。請謹慎使用此模式：由於臨時名稱服務器問題，主機名可能不可用。當軟件無法確定正在與之通信的網絡類型時，網絡地址將不可用。
泛醇 | 匹配名稱不匹配其地址的任何主機。使用-DPARANOID（默認模式）構建tcpd時，即使在查看訪問控製表之前，它也會丟棄來自此類客戶端的請求。當您想要對此類請求進行更多控制時，不使用-DPARANOID進行構建。

### 經營者

EXCEPT預期用途的格式為：“ list_1 EXCEPT list_2”；除非與list_2匹配，否則此構造匹配與list_1匹配的任何內容。可以在daemon_lists和client_lists中使用EXCEPT運算符。 EXCEPT運算符可以嵌套：如果控制語言允許使用括號，則'a EXCEPT b EXCEPT c'將解析為'（a EXCEPT（b EXCEPT c））'。

### Shell命令

如果第一個匹配的訪問控制規則包含shell命令，則該命令將受% 替換（請參閱下一節）。結果由/bin/sh子進程執行，其標準輸入，輸出和錯誤連接到/dev/null。如果您不想等到命令結束，請在命令末尾指定“＆”。

Shell命令不應依賴inetd的PATH設置。相反，它們應使用絕對路徑名，或者應以顯式PATH = whatever語句開頭。

### % 擴展

Shell命令中提供以下擴展：

%a（%A） | 客戶端（服務器）主機地址。
%c | 客戶信息：user@host，user@address，主機名或僅是地址，具體取決於可用的信息量。
%d | 守護進程名稱（argv[0]值）。
%h（%H） | 客戶端（服務器）的主機名或地址（如果主機名不可用）。
%n（%N） | 客戶端（服務器）主機名（或“未知”或“偏執狂”）。
%p | 守護進程ID。
%s | 服務器信息：daemon@host，daemon@address或僅是守護程序名稱，具體取決於可用的信息量。
%u | 客戶端用戶名（或“未知”）。
%% | 擴展為單個'%？字符。

下劃線會替換%擴展名中可能會引起外殼混亂的字符。