ACCESS.CONF(5) Linux-PAM Manual ACCESS.CONF(5)

access.conf - پرونده جدول کنترل دسترسی ورود به سیستم

پروندهٔ /etc/security/access.conf ترکیب‌های (user/group، host)، (user/group، network/netmask)، (user/group، tty)، (user/group، X-$DISPLAY-value) یا (user/group، pam-service-name) را مشخص می‌کند که ورود به سیستم برای آن‌ها پذیرفته یا رد خواهد شد.

هنگامی که شخصی وارد سیستم می‌شود، پروندهٔ access.conf برای یافتن نخستین مدخلی که با ترکیب (user/group، host) یا (user/group، network/netmask) مطابقت دارد، یا در مورد ورودهای غیرشبکه‌ای، نخستین مدخلی که با ترکیب (user/group، tty) همخوانی دارد، یا در حالت ورودهای غیرشبکه‌ای بدون tty، نخستین مدخلی که با ترکیب (user/group، X-$DISPLAY-value) یا (user/group، pam-service-name/) مطابقت دارد، پیمایش می‌شود. فیلد مجوزهای آن مدخل جدول تعیین می‌کند که ورود پذیرفته یا رد شود.

هر خط از جدول کنترل دسترسی ورود دارای سه فیلد است که با نویسهٔ ":" (دونقطه) از یکدیگر جدا می‌شوند:

permission:users/groups:origins

فیلد نخست، یعنی فیلد permission، می‌تواند نویسهٔ «+» (به‌علاوه) برای اعطای دسترسی یا نویسهٔ «-» (منها) برای سلب دسترسی باشد.

فیلد دوم، یعنی فیلد users/group، باید فهرستی از یک یا چند نام کاربری، نام گروه، uid، gid، یا ALL (که همیشه مطابقت دارد) باشد. برای تمایز میان مدخل‌های کاربر و گروه، مدخل‌های گروه باید با پرانتز نوشته شوند، مانند (group) یا (gid).

فیلد سوم، یعنی فیلد origins، باید فهرستی از یک یا چند نام tty (برای ورودهای غیرشبکه‌ای)، مقادیر X $DISPLAY یا نام‌های سرویس PAM (برای ورودهای غیرشبکه‌ای بدون tty)، نام‌های میزبان، نام‌های دامنه (که با «.» آغاز می‌شوند)، نشانی‌های میزبان، شماره‌های شبکهٔ اینترنتی (که با «.» پایان می‌یابند)، نشانی‌های شبکهٔ اینترنتی همراه با ماسک شبکه (که ماسک شبکه می‌تواند یک عدد دهدهی یا یک نشانی اینترنتی نیز باشد)، ALL (که همیشه مطابقت دارد) یا LOCAL باشد. کلمهٔ کلیدی LOCAL زمانی همخوانی دارد که کاربر بدون اتصال شبکه‌ای متصل شود (مانند su، login). یک اتصال از طریق دستگاه loopback (مانند ssh user@localhost) یک اتصال شبکه‌ای در نظر گرفته می‌شود، بنابراین کلمهٔ کلیدی LOCAL با آن مطابقت ندارد.

در صورت پشتیبانی سیستم، می‌توانید از @netgroupname در الگوهای میزبان یا کاربر استفاده کنید. نحوِ @@netgroupname تنها در الگوی کاربر پشتیبانی می‌شود و باعث می‌شود نام میزبان سیستم محلی علاوه بر نام کاربر به فراخوانی تطبیق netgroup ارسال گردد. این ویژگی ممکن است روی برخی از پیاده‌سازی‌های libc به‌درستی کار نکند و سبب شود تطبیق همواره ناموفق باشد.

عملگر EXCEPT امکان نوشتن قواعد بسیار فشرده را فراهم می‌سازد.

اگر nodefgroup تنظیم نشده باشد، در صورتی که نامی با کاربر واردشده مطابقت نداشته باشد، پروندهٔ گروه‌ها جستجو می‌شود. تنها گروه‌هایی تطبیق داده می‌شوند که کاربران به‌صراحت در آن‌ها فهرست شده باشند. با این حال، ماژول PAM به شناسهٔ گروه اصلی (primary group id) کاربر توجهی نمی‌کند.

نویسهٔ «#» در ابتدای خط (بدون فاصله در ابتدا) می‌تواند برای نشانه‌گذاری آن خط به‌عنوان خط توضیحات استفاده شود.

این‌ها چند خط نمونه هستند که ممکن است در /etc/security/access.conf مشخص شوند.

کاربر root باید مجاز به دسترسی از طریق cron، پایانهٔ X11 :0، tty1، ...، tty5، tty6 باشد.

+:root:crond :0 tty1 tty2 tty3 tty4 tty5 tty6

کاربر root باید مجاز به دسترسی از میزبان‌هایی باشد که این نشانی‌های IPv4 را دارند. این بدان معنا نیست که اتصال حتماً باید یک اتصال IPv4 باشد؛ اتصال IPv6 از میزبانی با یکی از این نشانی‌های IPv4 نیز کار می‌کند.

+:root:192.168.200.1 192.168.200.4 192.168.200.9

+:root:127.0.0.1

کاربر root باید از شبکهٔ 192.168.201. دسترسی داشته باشد، جایی که عبارت از طریق تطبیق رشته‌ای ارزیابی خواهد شد. اما بهتر است به‌جای آن از network/netmask استفاده شود. همان معنای 192.168.201. عبارت است از 192.168.201.0/24 یا 192.168.201.0/255.255.255.0.

+:root:192.168.201.

کاربر root باید بتواند از میزبان‌های foo1.bar.org و foo2.bar.org دسترسی داشته باشد (این مورد نیز از تطبیق رشته‌ای استفاده می‌کند).

+:root:foo1.bar.org foo2.bar.org

کاربر root باید بتواند از دامنهٔ foo.bar.org دسترسی داشته باشد (این مورد نیز از تطبیق رشته‌ای استفاده می‌کند).

+:root:.foo.bar.org

کاربر root باید از دسترسی از تمامی منابع دیگر محروم شود.

-:root:ALL

کاربری با uid 1003 و گروهی با gid 1000 باید مجاز به دسترسی از تمامی منابع دیگر باشند.

+:(1000) 1003:ALL

کاربر foo و اعضای نت‌گروه admins باید مجاز به دسترسی از تمامی منابع باشند. این تنها در صورتی کار خواهد کرد که سرویس netgroup در دسترس باشد.

+:@admins foo:ALL

کاربر john و foo باید از نشانی میزبان IPv6 دسترسی داشته باشند.

+:john foo:2001:db8:0:101::1

کاربر john و foo باید از نشانی میزبان پیوند-محلی IPv6 دسترسی داشته باشند.

+:john foo:fe80::de95:818c:1b55:7e42%eth1

کاربر john باید از net/mask در IPv6 دسترسی داشته باشد.

+:john:2001:db8:0:101::/64

اعضای گروه wheel باید مجاز به دسترسی از تمامی منابع باشند.

+:(wheel):ALL

ورود از طریق کنسول برای همه غیرفعال شود، به‌جز حساب‌های shutdown، sync و تمامی حساب‌های دیگری که عضو گروه wheel هستند.

-:ALL EXCEPT (wheel) shutdown sync:LOCAL

تمام کاربران دیگر باید از دسترسی از تمامی منابع محروم شوند.

-:ALL:ALL

جداکننده‌های پیش‌فرض آیتم‌های فهرست در یک فیلد، نویسه‌های فاصله، ',' و تب (tabulator) هستند. بدین ترتیب، برای راحتی کار، اگر فاصله‌هایی در آغاز و پایان فیلدها قرار گیرند نادیده گرفته می‌شوند. با این حال، اگر جداکنندهٔ فهرست با گزینهٔ listsep تغییر یابد، فاصله‌ها بخشی از خودِ آیتم خواهند شد و به احتمال زیاد خط نادیده گرفته خواهد شد. به همین دلیل، قرار دادن فاصله در اطراف نویسه‌های ':' توصیه نمی‌شود.

یک نشانی میزبان پیوند-محلی IPv6 باید حاوی شناسهٔ رابط باشد. شبکه/ماسک‌شبکهٔ پیوند-محلی IPv6 پشتیبانی نمی‌شود.

نام‌های میزبان باید به صورت Fully-Qualified Host Name (FQHN) نوشته شوند تا از سردرگمی با نام دستگاه‌ها یا نام‌های سرویس PAM جلوگیری شود.

pam_access(8)، pam.d(5)، pam(8)

راهنمای اصلی login.access(5) توسط Guido van Rooij تهیه شده بود که برای بازتاب ارتباط با پروندهٔ پیکربندی پیش‌فرض به access.conf(5) تغییر نام یافت.

توضیحات نشانی شبکه / ماسک شبکه و متن مثال‌ها توسط Mike Becher <mike.becher@lrz-muenchen.de> ارائه شد.

01/26/2026 [FIXME: source]