### Patronen

De taal voor toegangscontrole implementeert de volgende patronen:

- Een tekenreeks die begint met een '.' karakter. Een hostnaam komt overeen als de laatste componenten van de naam overeenkomen met het opgegeven patroon. Het patroon '.tue.nl' komt bijvoorbeeld overeen met de hostnaam 'wzv.win.tue.nl'.
- Een tekenreeks die eindigt op een '.' karakter. Een hostadres komt overeen als de eerste numerieke velden overeenkomen met de opgegeven tekenreeks. Bijvoorbeeld het patroon '131.155'. komt overeen met het adres van (bijna) elke host op het netwerk van de TU Eindhoven (131.155.xx).
- Een tekenreeks die begint met een '@'-teken wordt behandeld als een NIS-netwerknaam (voorheen YP). Een hostnaam komt overeen als het een hostlid is van de opgegeven netgroep. Netgroepovereenkomsten worden niet ondersteund voor namen van daemon-processen of voor gebruikersnamen van clients.
- Een uitdrukking met de vorm 'nnnn / mmmm' wordt geïnterpreteerd als een 'net/mask'-paar. Een IPv4-hostadres komt overeen als 'net' gelijk is aan de bitsgewijze EN van het adres en het 'masker'. Het net/maskerpatroon '131.155.72.0/255.255.254.0' komt bijvoorbeeld overeen met elk adres in het bereik '131.155.72.0' tot en met '131.155.73.255'.
- Een uitdrukking met de vorm '[n: n: n: n: n: n: n: n] / m' wordt geïnterpreteerd als een '[net]/prefixlen'-paar. Een IPv6-hostadres komt overeen als 'prefixlen'-bits van' net 'gelijk zijn aan de' prefixlen'-bits van het adres. Het patroon [net]/prefixlen '[3ffe: 505: 2: 1 ::]/64' komt bijvoorbeeld overeen met elk adres in het bereik '3ffe: 505: 2: 1:'? door '3ffe: 505: 2: 1: ffff: ffff: ffff: ffff'.
- Een tekenreeks die begint met een '/' teken, wordt behandeld als een bestandsnaam. Een hostnaam of adres komt overeen als het overeenkomt met een hostnaam of adrespatroon in het genoemde bestand. Het bestandsformaat is nul of meer regels met nul of meer hostnaam- of adrespatronen gescheiden door witruimte. Een bestandsnaampatroon kan overal worden gebruikt waar een hostnaam of adrespatroon kan worden gebruikt.
- Wildcards '*' en '?' kan worden gebruikt om hostnamen of IP-adressen te matchen. Deze methode van matchen kan niet worden gebruikt in combinatie met 'net/mask'-matching, hostnaam-matching beginnend met'. ' of IP-adresovereenkomst die eindigt op '.'.

### Wildcards

De taal voor toegangscontrole ondersteunt expliciete jokertekens:

ALLEMAAL | De universele wildcard, komt altijd overeen.
LOKAAL | Komt overeen met elke host wiens naam geen puntteken bevat.
ONBEKEND | Komt overeen met elke gebruiker wiens naam onbekend is, en komt overeen met elke host wiens naam of adres onbekend is. Dit patroon moet met zorg worden gebruikt: hostnamen zijn mogelijk niet beschikbaar vanwege tijdelijke naamserverproblemen. Een netwerkadres is niet beschikbaar wanneer de software niet kan achterhalen met welk type netwerk het communiceert.
BEKEND | Komt overeen met elke gebruiker wiens naam bekend is, en komt overeen met elke host wiens naam en adres bekend zijn. Dit patroon moet met zorg worden gebruikt: hostnamen zijn mogelijk niet beschikbaar vanwege tijdelijke naamserverproblemen. Een netwerkadres is niet beschikbaar wanneer de software niet kan achterhalen met welk type netwerk het communiceert.
PARANOÏDE | Komt overeen met elke host wiens naam niet overeenkomt met zijn adres. Wanneer tcpd is gebouwd met -DPARANOID (standaardmodus), worden verzoeken van dergelijke clients verwijderd, zelfs voordat naar de toegangscontroletabellen wordt gekeken. Bouw zonder -DPARANOID als u meer controle wilt over dergelijke verzoeken.

### Exploitanten

BEHALVE Beoogd gebruik heeft de vorm: 'lijst_1 BEHALVE lijst_2'; deze constructie komt overeen met alles dat overeenkomt met list_1, tenzij het overeenkomt met list_2. De BEHALVE-operator kan worden gebruikt in daemon_lists en in client_lists. De operator BEHALVE kan worden genest: als de controletaal het gebruik van haakjes toestaat, zou 'a BEHALVE b BEHALVE c' worden geparseerd als '(a BEHALVE (b BEHALVE c))'.

### Shell-opdrachten

Als de eerst overeenkomende regel voor toegangsbeheer een shell-opdracht bevat, wordt die opdracht onderworpen aan% vervangingen (zie volgende sectie). Het resultaat wordt uitgevoerd door een /bin/sh-kindproces met standaardinvoer, uitvoer en fout verbonden met /dev/null. Geef aan het einde van de opdracht een '&' op als u niet wilt wachten totdat deze is voltooid.

Shell-opdrachten mogen niet afhankelijk zijn van de PATH-instelling van de inetd. In plaats daarvan moeten ze absolute padnamen gebruiken, of ze moeten beginnen met een expliciete PATH = what- ever-statement.

### % Uitbreidingen

De volgende uitbreidingen zijn beschikbaar binnen shell-opdrachten:

%a (%A) | Het client (server) hostadres.
%c | Klantinformatie: gebruiker @ host, gebruiker @ adres, een hostnaam of alleen een adres, afhankelijk van hoeveel informatie er beschikbaar is.
%d | De daemon procesnaam (argv[0] waarde).
%h (%H) | De hostnaam of het adres van de client (server), als de hostnaam niet beschikbaar is.
%n (%N) | De client (server) hostnaam (of "onbekend" of "paranoïde").
%p | De daemon-proces-id.
%s | Serverinformatie: daemon@host, daemon @ -adres of alleen een daemon-naam, afhankelijk van hoeveel informatie beschikbaar is.
%u | De gebruikersnaam van de klant (of "onbekend").
%% | Breidt uit tot één '%? karakter.

Tekens in%uitbreidingen die de shell kunnen verwarren, worden vervangen door onderstrepingstekens.