.\" Copyright 2011, Mark R. Bannister .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .TH nsswitch.conf 5 2026-02-08 "Linux man-pages 6.19" .SH "نام (NAME)" nsswitch.conf \- پرونده پیکربندی سوئیچ سرویس نام (Name Service Switch) .SH "توضیحات (DESCRIPTION)" پرونده پیکربندی سوئیچ سرویس نام (NSS یا Name Service Switch)، .IR /etc/nsswitch.conf ، توسط کتابخانه C گنو و برخی برنامه‌های دیگر استفاده می‌شود تا منابعی را که باید اطلاعات سرویس نام در دسته‌های مختلف از آن‌ها دریافت شود و همچنین ترتیب مراجعه به این منابع را تعیین کند. هر دسته از اطلاعات با نام یک پایگاه داده مشخص می‌شود. .P این پرونده یک متن ساده اسکی (ASCII) است که ستون‌های آن با نویسه‌های فاصله یا تب (tab) از یکدیگر جدا شده‌اند. ستون نخست، نام پایگاه داده را مشخص می‌کند. ستون‌های بعدی، ترتیب منابعی را که باید جستجو شوند و همچنین مجموعه محدودی از اقداماتی را که بر اساس نتیجه جستجو قابل انجام است، شرح می‌دهند. .P پایگاه‌های داده زیر توسط کتابخانه C گنو پشتیبانی و شناخته می‌شوند: .TP 12 .B aliases نام‌های مستعار ایمیل، استفاده‌شده توسط .BR getaliasent (3) و توابع مرتبط. .TP .B ethers شماره‌های اترنت (Ethernet). .TP .B group گروه‌های کاربران، استفاده‌شده توسط .BR getgrent (3) و توابع مرتبط. .TP .B hosts نام‌ها و شماره‌های میزبان، استفاده‌شده توسط .BR gethostbyname (3) و توابع مرتبط. .TP .B initgroups فهرست دسترسی گروه‌های تکمیلی که توسط تابع .BR getgrouplist (3) استفاده می‌شود. .TP .B netgroup فهرست سراسری شبکه‌ای از میزبان‌ها و کاربران، استفاده‌شده برای قواعد دسترسی. کتابخانه‌های C پیش از glibc 2.1 از netgroup فقط از طریق NIS پشتیبانی می‌کردند. .TP .B networks نام‌ها و شماره‌های شبکه، استفاده‌شده توسط .BR getnetent (3) و توابع مرتبط. .TP .B passwd گذرواژه‌های کاربران، استفاده‌شده توسط .BR getpwent (3) و توابع مرتبط. .TP .B protocols پروتکل‌های شبکه، استفاده‌شده توسط .BR getprotoent (3) و توابع مرتبط. .TP .B publickey کلیدهای عمومی و محرمانه برای Secure_RPC که توسط NFS و NIS+ استفاده می‌شوند. .TP .B rpc نام‌ها و شماره‌های فراخوانی رویه از راه دور (RPC)، استفاده‌شده توسط .BR getrpcbyname (3) و توابع مرتبط. .TP .B services سرویس‌های شبکه، استفاده‌شده توسط .BR getservent (3) و توابع مرتبط. .TP .B shadow گذرواژه‌های سایه کاربران، استفاده‌شده توسط .BR getspnam (3) و توابع مرتبط. .P کتابخانه C گنو پایگاه‌های داده با نام‌های ناشناخته را نادیده می‌گیرد. برخی از برنامه‌ها از این ویژگی برای پیاده‌سازی سازوکارهای ویژه برای پایگاه‌های داده اختصاصی خود استفاده می‌کنند. به عنوان مثال، .BR sudo (8) به پایگاه داده .B sudoers مراجعه می‌کند. واگذاری شناسه‌های کاربری/گروهی زیرمجموعه (subordinate user/group IDs) را می‌توان با استفاده از پایگاه داده .B subid پیکربندی کرد. برای جزئیات بیشتر به .BR subuid (5) و .BR subgid (5) مراجعه کنید. .P در اینجا یک نمونه از پرونده .I /etc/nsswitch.conf آمده است: .P .in +4n .EX passwd: compat group: compat shadow: compat \& hosts: dns [!UNAVAIL=return] files networks: nis [NOTFOUND=return] files ethers: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files services: nis [NOTFOUND=return] files .EE .in .P ستون نخست، نام پایگاه داده است. ستون‌های باقی‌مانده موارد زیر را مشخص می‌کنند: .IP \[bu] 3 یک یا چند مشخصه سرویس، مانند "files"، "db" یا "nis". ترتیب سرویس‌ها در هر خط مشخص می‌کند که آن سرویس‌ها به نوبت و تا زمانی که نتیجه‌ای یافت شود به چه ترتیبی مورد پرس‌وجو قرار گیرند. .IP \[bu] اقدامات اختیاری که در صورت دستیابی به یک نتیجه خاص از سرویس پیشین باید انجام شوند، به عنوان مثال "[NOTFOUND=return]". .P مشخصه‌های سرویس پشتیبانی‌شده در سیستم شما به وجود کتابخانه‌های اشتراکی وابسته بوده و به همین دلیل قابل گسترش هستند. کتابخانه‌هایی به نام .IB /lib/libnss_SERVICE.so. X سرویس نام‌برده به صورت .IR SERVICE را ارائه می‌دهند. در یک نصب استاندارد، می‌توانید از "files"، "db"، "nis" و "nisplus" استفاده کنید. برای پایگاه داده .B hosts می‌توانید علاوه بر این "dns" را نیز تعیین کنید. برای پایگاه‌های داده .BR passwd ، .BR group و .B shadow می‌توانید علاوه بر این "compat" را نیز تعیین کنید (بخش .B "حالت سازگاری (compat)" در زیر را ببینید). شماره نسخه .B X ممکن است برای glibc 2.0 برابر 1، یا برای glibc 2.1 و نسخه‌های پس از آن برابر 2 باشد. در سیستم‌هایی که کتابخانه‌های اضافی روی آن‌ها نصب شده است، ممکن است به سرویس‌های بیشتری مانند "hesiod"، "ldap"، "winbind" و "wins" نیز دسترسی داشته باشید. .P همچنین می‌توان پس از یک مشخصه سرویس، یک اقدام (action) تعیین کرد. این اقدام، رفتار سیستم پس از دستیابی به نتیجه حاصل از منبع داده پیشین را تغییر می‌دهد. موارد اقدام شکل کلی زیر را دارند: .P .RS 4 .RI [ STATUS = ACTION ] .br .RI [! STATUS = ACTION ] .RE .P که در آن: .P .RS 4 .I STATUS => .B success | .B notfound | .B unavail | .B tryagain .br .I ACTION => .B return | .B continue | .B merge .RE .P علامت ! شرط را نقیض می‌کند و با تمام نتایج ممکن به‌جز مورد مشخص‌شده مطابقت می‌یابد. حساسیت به بزرگی و کوچکی حروف در کلمات کلیدی وجود ندارد. .P مقدار .I STATUS با نتیجه تابع جستجوی فراخوانی‌شده توسط مشخصه سرویس پیشین تطبیق داده می‌شود و می‌تواند یکی از موارد زیر باشد: .RS 4 .TP 12 .B success هیچ خطایی رخ نداده و ورودی درخواستی بازگردانده شده است. اقدام پیش‌فرض برای این وضعیت "return" است. .TP .B notfound جستجو موفقیت‌آمیز بود، اما ورودی درخواستی یافت نشد. اقدام پیش‌فرض برای این وضعیت "continue" است. .TP .B unavail سرویس به‌طور دائم از دسترس خارج است. این امر می‌تواند به این معنا باشد که پرونده مورد نیاز قابل خواندن نیست، یا برای سرویس‌های شبکه به این معناست که سرور در دسترس نبوده یا اجازه پرس‌وجو نمی‌دهد. اقدام پیش‌فرض برای این وضعیت "continue" است. .TP .B tryagain سرویس به‌طور موقت در دسترس نیست. این می‌تواند به این معنا باشد که پرونده‌ای قفل شده است یا سرور در حال حاضر نمی‌تواند اتصالات بیشتری را بپذیرد. اقدام پیش‌فرض برای این وضعیت "continue" است. .RE .P مقدار .I ACTION می‌تواند یکی از موارد زیر باشد: .RS 4 .TP 12 .B return هم‌اکنون نتیجه بازگردانده شود. هیچ تابع جستجوی دیگری فراخوانی نشود. با این حال، به دلایل سازگاری، اگر این اقدام برای پایگاه داده .B group و وضعیت .B notfound انتخاب شده باشد، و پرونده پیکربندی شامل خط .B initgroups نباشد، تابع جستجوی بعدی همیشه بدون تأثیر بر نتیجه جستجو فراخوانی می‌شود. .TP .B continue تابع جستجوی بعدی فراخوانی شود. .TP .B merge .I [SUCCESS=merge] بین دو ورودی پایگاه داده استفاده می‌شود. هنگامی که یک گروه در نخستین ورودی از دو ورودی گروه پیدا شود، پردازش به سمت ورودی بعدی ادامه خواهد یافت. اگر آن گروه در ورودی بعدی نیز یافت شود (و نام گروه و GID دقیقاً مطابقت داشته باشند)، فهرست اعضای ورودی دوم به شیء گروهی که باید بازگردانده شود افزوده خواهد شد. موجود از نسخه glibc 2.24. توجه داشته باشید که ادغام برای .BR getgrent (3) انجام نخواهد شد، و اعضای تکراری نیز در صورتی که در هر دو ورودیِ در حال ادغام وجود داشته باشند، هرس (حذف) نخواهند شد. .RE .SS "حالت سازگاری (compat)" سرویس NSS "compat" شبیه به "files" است، با این تفاوت که علاوه‌براین ورودی‌های ویژه‌ای را در پرونده‌های متناظر برای اعطای دسترسی به سیستم به کاربران یا اعضای گروه‌های شبکه (netgroups) مجاز می‌داند. ورودی‌های زیر در این حالت معتبر هستند: .RS 4 .P برای پایگاه‌های داده .B passwd و .BR shadow : .RS 4 .TP 12 .BI + user شامل کردن .I user مشخص‌شده از نگاشت NIS passwd/shadow. .TP .BI +@ netgroup شامل کردن تمامی کاربران در .IR netgroup داده‌شده. .TP .BI \- user مستثنی کردن .I user مشخص‌شده از نگاشت NIS passwd/shadow. .TP .BI \-@ netgroup مستثنی کردن تمامی کاربران در .IR netgroup داده‌شده. .TP .B + شامل کردن همه کاربران از نگاشت NIS passwd/shadow، به جز کاربرانی که پیش‌تر مستثنی شده‌اند. .RE .P برای پایگاه داده .BR group : .RS 4 .TP 12 .BI + group شامل کردن .I group مشخص‌شده از نگاشت NIS group. .TP .BI \- group مستثنی کردن .I group مشخص‌شده از نگاشت NIS group. .TP .B + شامل کردن همه گروه‌ها از نگاشت NIS group، به جز گروه‌هایی که پیش‌تر مستثنی شده‌اند. .RE .RE .P به‌طور پیش‌فرض، منبع "nis" است، اما می‌توان با تعیین هر سرویس NSS به‌جز خود "compat" به عنوان منبع برای شبه‌پایگاه‌های داده .BR passwd_compat ، .BR group_compat و .BR shadow_compat ، آن را بازنویسی کرد. .SH "فایلها (FILES)" سرویسی با نام .I SERVICE توسط یک کتابخانه شیء اشتراکی با نام .IB libnss_SERVICE.so. X پیاده‌سازی می‌شود که در .IR /lib قرار دارد. .RS 4 .TP 25 .PD 0 .I /etc/nsswitch.conf پرونده پیکربندی NSS. .TP .IB /lib/libnss_compat.so. X منبع "compat" را پیاده‌سازی می‌کند. .TP .IB /lib/libnss_db.so. X منبع "db" را پیاده‌سازی می‌کند. .TP .IB /lib/libnss_dns.so. X منبع "dns" را پیاده‌سازی می‌کند. .TP .IB /lib/libnss_files.so. X منبع "files" را پیاده‌سازی می‌کند. .TP .IB /lib/libnss_hesiod.so. X منبع "hesiod" را پیاده‌سازی می‌کند. .TP .IB /lib/libnss_nis.so. X منبع "nis" را پیاده‌سازی می‌کند. .TP .IB /lib/libnss_nisplus.so. X منبع "nisplus" را پیاده‌سازی می‌کند. .PD .RE .P هنگامی که منبع "files" برای پایگاه‌های داده مربوطه تعیین شده باشد، پرونده‌های زیر خوانده می‌شوند: .RS 4 .TP 12 .PD 0 .B aliases .I /etc/aliases .TP .B ethers .I /etc/ethers .TP .B group .I /etc/group .TP .B hosts .I /etc/hosts .TP .B initgroups .I /etc/group .TP .B netgroup .I /etc/netgroup .TP .B networks .I /etc/networks .TP .B passwd .I /etc/passwd .TP .B protocols .I /etc/protocols .TP .B publickey .I /etc/publickey .TP .B rpc .I /etc/rpc .TP .B services .I /etc/services .TP .B shadow .I /etc/shadow .PD .RE .SH "یادداشتها (NOTES)" از نسخه glibc 2.33 به بعد، .\" https://sourceware.org/bugzilla/show_bug.cgi?id=12459 .B nsswitch.conf در صورت تغییر پرونده، به‌طور خودکار مجدداً بارگذاری می‌شود. در نسخه‌های پیشین، کل پرونده در هر فرایند تنها یک‌بار خوانده می‌شد. اگر پرونده بعداً تغییر می‌کرد، فرایند همچنان به استفاده از پیکربندی پیشین ادامه می‌داد. .P به‌طور سنتی، تنها یک منبع منفرد برای اطلاعات سرویس وجود داشت که اغلب در قالب یک پرونده پیکربندی واحد بود (مانند .IR /etc/passwd ). با این وجود، با رواج سایر سرویس‌های نام نظیر سرویس اطلاعات شبکه (NIS یا Network Information Service) و سرویس نام دامنه (DNS یا Domain Name Service)، روشی مورد نیاز بود که انعطاف‌پذیرتر از ترتیب‌های جستجوی ثابت کدنویسی‌شده درون کتابخانه C باشد. سازوکار سوئیچ سرویس نام (Name Service Switch) که بر اساس سازوکار مورد استفاده توسط Sun Microsystems در کتابخانه C سیستم‌عامل Solaris 2 بنا شده بود، راه‌حل تمیزتری برای این مسئله ارائه کرد. .SH "همچنین ببینید (SEE ALSO)" .BR getent (1), .BR nss (5)