### الگوهای

زبان کنترل دسترسی الگوهای زیر را پیاده سازی می کند:

- رشته ای که با "شروع می شود". شخصیت. اگر آخرین مؤلفه های نام آن با الگوی مشخص شده مطابقت داشته باشد ، یک میزبان مطابقت دارد. به عنوان مثال ، الگوی ".tue.nl" با نام میزبان "wzv.win.tue.nl" مطابقت دارد.
- رشته ای که با "" پایان می یابد. شخصیت. اگر اولین فیلدهای عددی آن با رشته داده شده مطابقت داشته باشد ، آدرس میزبان مطابقت دارد. به عنوان مثال ، الگوی '131.155'. با آدرس (تقریبا) هر میزبان در شبکه دانشگاه آیندهوون (131.155.xx) مطابقت دارد.
- رشته ای که با یک شخصیت "@" شروع می شود ، به عنوان یک نام شبکه NIS (سابقاً YP) رفتار می شود. اگر عضو میزبان گروه مشخص شده باشد ، یک میزبان مطابقت دارد. مسابقات Netgroup برای نام فرآیند Daemon یا نام کاربر مشتری پشتیبانی نمی شوند.
- عبارتی از فرم "nnnn / mmmm" به عنوان یک جفت "خالص / ماسک" تعبیر می شود. آدرس میزبان 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" تعبیر می شود. آدرس میزبان IPv6 در صورتی برابر است که بیت های 'prefixlen' از شبکه برابر با بیت های 'prefixlen' از آدرس باشد. به عنوان مثال ، الگوی [net]/prefixlen '[3ffe: 505: 2: 1 ::]]/64 "با هر آدرس در محدوده" 3ffe: 505: 2: 1: "مطابقت دارد؟ از طریق '3ffe: 505: 2: 1: ffff: ffff: ffff: ffff'.
- رشته ای که با کاراکتر '/' شروع می شود به عنوان یک نام پرونده رفتار می شود. اگر نام یا میزبان یا الگوی آدرس ذکر شده در پرونده نامگذاری شده با یک نام میزبان یا آدرس مطابقت داشته باشد. قالب پرونده صفر یا بیشتر است با صفر یا بیشتر نام میزبان یا الگوهای آدرس جدا شده توسط فضای سفید. الگوی نام پرونده را می توان در هر جایی که از نام میزبان یا الگوی آدرس استفاده شود ، قابل استفاده است.
- کارتهای وحشی '*' و '؟' می توان برای مطابقت با نام های میزبان یا آدرس های IP استفاده کرد. این روش تطبیق نمی تواند در رابطه با تطبیق "خالص / ماسک" ، تطبیق نام میزبان با "استفاده شود." یا آدرس IP تکمیل شده با "."

### کارتهای وحشی

زبان کنترل دسترسی از کارتهای واضح صریح پشتیبانی می کند:

همه | کارت وحشی جهانی ، همیشه مطابقت دارد.
محلی | با هر میزبان که نام آن دارای یک شخصیت dot نباشد مطابقت دارد.
ناشناس | با هر کاربر که نام آن ناشناخته است ، مطابقت دارد و با هر میزبان که نام یا آدرس آن ناشناخته باشد مطابقت دارد. این الگوی باید با احتیاط استفاده شود: ممکن است نام میزبان به دلیل مشکلات موقتی سرور نام در دسترس نباشد. اگر نرم افزار نتواند تشخیص دهد با چه نوع شبکه ای صحبت می کند ، آدرس شبکه در دسترس نخواهد بود.
شناخته شده | با هر کاربر که نام آن شناخته شده است مطابقت دارد و با هر میزبان که نام و آدرس آن شناخته شده باشد مطابقت دارد. این الگوی باید با احتیاط استفاده شود: ممکن است نام میزبان به دلیل مشکلات موقتی سرور نام در دسترس نباشد. اگر نرم افزار نتواند تشخیص دهد با چه نوع شبکه ای صحبت می کند ، آدرس شبکه در دسترس نخواهد بود.
PARANOID | با هر میزبان که نام آن با آدرس آن مطابقت ندارد مطابقت دارد. هنگامی که tcpd با -DPARANOID (حالت پیش فرض) ساخته شده است ، حتی قبل از مراجعه به جداول کنترل دسترسی ، درخواست های این قبیل مشتری ها را کاهش می دهد. وقتی می خواهید کنترل بیشتری در مورد چنین درخواست هایی داشته باشید ، بدون -PARANOID بسازید.

### عملگرها

بجز استفاده در نظر گرفته شده است به شکل: list_1 جز list_2 '؛ این سازه با هر آنچه مطابقت دارد با لیست_1 مطابقت دارد مگر اینکه با لیست_2 مطابقت داشته باشد. اپراتور EXCEPT را می توان در لیست های Daemon_list و در لیست های client_l استفاده کرد. عملگر EXCEPT را می توان توقیف کرد: اگر زبان کنترل اجازه استفاده از پرانتز را می داد ، "EXCEPT b EXCEPT c" مانند "تجزیه می شود" (EXCEPT (b EXCEPT c)) ".

### دستورات شل

اگر قانون کنترل دسترسی همسان اول حاوی یک فرمان پوسته باشد ، آن دستور تحت٪ تعویض ها (بخش بعدی را ببینید). نتیجه توسط فرآیند کودک /bin/sh با ورودی ، خروجی و خطای استاندارد متصل به /dev/null حاصل می شود. اگر نمی خواهید منتظر بمانید تا پایان یابد ، "&" را در انتهای فرمان مشخص کنید.

دستورات شل نباید به تنظیمات PATH اینت اعتماد کند. در عوض ، آنها باید از نام های مسیری مطلق استفاده کنند ، یا باید با یک عبارت صریح PATH = هر چه شروع می شوند.

### %بسط

موارد زیر در دستورات پوسته موجود است:

%a (%A) | آدرس میزبان مشتری (سرور).
%c | اطلاعات مشتری: بسته به میزان اطلاعات در دسترس کاربر: کاربر @ میزبان ، آدرس کاربر @ ، نام میزبان یا فقط یک آدرس.
%d | نام فرآیند Daemon (مقدار argv[0]).
%h (%H) | اگر نام میزبان در دسترس نباشد ، نام یا آدرس میزبان مشتری (سرور) می باشد.
%n (%N) | نام میزبان مشتری (سرور) (یا "ناشناخته" یا "پارانوئید").
%p | شناسه پردازش Daemon.
%s | اطلاعات سرور: بستگی به میزان اطلاعات در دسترس ، daemon@host ، آدرس daemon @ یا فقط نام Daemon.
%u | نام کاربر مشتری (یا "ناشناخته").
%% | به یک '%گسترش می یابد؟ شخصیت.

کاراکترهای٪%گسترش یافته که ممکن است پوسته را اشتباه ببخشند ، زیرنویس ها جایگزین می شوند.