'\" -*- coding: utf-8 -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH nslcd.conf 5 "Feb 2025" "Version 0.9.13" "System Manager's Manual" .SH "نام (NAME)" nslcd.conf \- پرونده پیکربندی دیمن سرویس نام LDAP .SH "توضیحات (DESCRIPTION)" بسته \fInss-pam-ldapd\fR امکان استفاده از سرورهای دایرکتوری LDAP را به عنوان منبع اصلی اطلاعات سرویس نام فراهم می‌کند. (اطلاعات سرویس نام معمولاً شامل کاربران، میزبان‌ها، گروه‌ها و دیگر داده‌هایی است که از قدیم در پرونده‌های متنی ساده یا NIS ذخیره می‌شدند.) .PP پرونده \*(T<\fInslcd.conf\fR\*(T> حاوی اطلاعات پیکربندی برای اجرای \fBnslcd\fR است (نگاه کنید به \fBnslcd\fR(8)). این پرونده شامل گزینه‌هایی در هر خط است که نحوه نگاشت جستجوهای NSS و کنش‌های PAM به جستجوهای LDAP را تعریف می‌کنند. .SH "گزینه‌ها (OPTIONS)" .SS "گزینه‌های زمان اجرا (RUNTIME OPTIONS)" .TP \*(T<\fBthreads\fR\*(T> \fINUM\fR تعداد ریسمان‌هایی را مشخص می‌کند که برای رسیدگی به درخواست‌ها و انجام پرس‌وجوهای LDAP راه‌اندازی می‌شوند. هر ریسمان یک اتصال جداگانه به سرور LDAP باز می‌کند. پیش‌فرض، راه‌اندازی ۵ ریسمان است. .TP \*(T<\fBuid\fR\*(T> \fIUID\fR شناسه کاربری (UID) را که دیمن باید با آن اجرا شود مشخص می‌کند. این شناسه می‌تواند عددی یا یک مقدار نمادین باشد. اگر هیچ UID مشخص نشود، تلاشی برای تغییر کاربر انجام نخواهد شد. توجه داشته باشید که باید از مقادیری استفاده کنید که برای تحلیل نیازی به LDAP نداشته باشند. .TP \*(T<\fBgid\fR\*(T> \fIGID\fR شناسه گروهی (GID) را که دیمن باید با آن اجرا شود مشخص می‌کند. این شناسه می‌تواند عددی یا یک مقدار نمادین باشد. اگر هیچ GID مشخص نشود، تلاشی برای تغییر گروه انجام نخواهد شد. توجه داشته باشید که باید از مقادیری استفاده کنید که برای تحلیل نیازی به LDAP نداشته باشند. .TP \*(T<\fBlog\fR\*(T> \fISCHEME\fR [\fILEVEL\fR] نحوه ثبت گزارش را کنترل می‌کند. آرگومان \fISCHEME\fR می‌تواند \*(T، \*(T یا یک مسیر فایل مطلق باشد. آرگومان \fILEVEL\fR اختیاری است و سطح گزارش را مشخص می‌کند. سطح گزارش می‌تواند یکی از موارد زیر باشد: \*(T، \*(T، \*(T، \*(T، \*(T یا \*(T. سطح گزارش پیش‌فرض \*(T است. تمام پیام‌های دارای سطح گزارش مشخص‌شده یا بالاتر ثبت می‌شوند. این گزینه می‌تواند چندین بار مشخص شود. در صورت عدم تعیین این گزینه، \*(T لحاظ می‌شود. .SS "گزینه‌های عمومی اتصال (GENERAL CONNECTION OPTIONS)" .TP \*(T<\fBuri\fR\*(T> \fIURI\fR ... شناسه منبع یکنواخت (URI) سرور LDAP را برای اتصال مشخص می‌کند. طرح URI می‌تواند \*(T، \*(T یا \*(T باشد که به ترتیب LDAP بر بستر TCP، IPC یا SSL را مشخص می‌کنند (در صورتی که توسط کتابخانه LDAP پشتیبانی شوند). همچنین مقدار \*(T می‌تواند برای تلاش جهت جستجوی سرور با استفاده از رکوردهای SRV سامانه DNS به کار رود. به‌طور پیش‌فرض از دامنه فعلی استفاده می‌شود، اما می‌توان با ساختار \*(T دامنه دیگری را پرس‌وجو کرد. برای تبدیل رکوردهای SRV پورت ۳۸۹ به یک URI از نوع \*(T، می‌توان از \*(T استفاده کرد. هنگام استفاده از طرح \*(T، باید از \*(T<%2f\*(T> برای گریز از اسلش‌ها استفاده شود (مانند \*(T)، اگرچه در بیشتر مواقع به این کار نیازی نیست. این گزینه می‌تواند چندین بار و/یا با چند URI در یک خط که با فاصله از هم جدا شده‌اند، مشخص شود. معمولاً فقط از سرور اول استفاده می‌شود و سرورهای بعدی به عنوان پشتیبان عمل می‌کنند (گزینه \*(T<\fBbind_timelimit\fR\*(T> را در زیر ببینید). اگر از جستجوهای LDAP برای تحلیل نام میزبان استفاده می‌شود، هر نام میزبان باید به عنوان یک آدرس IP یا نامی مشخص شود که بدون استفاده از LDAP قابل تحلیل باشد. .TP \*(T<\fBldap_version\fR\*(T> \fIVERSION\fR نسخه پروتکل LDAP مورد استفاده را مشخص می‌کند. پیش‌فرض، استفاده از حداکثر نسخه پشتیبانی‌شده توسط کتابخانه LDAP است. .TP \*(T<\fBbinddn\fR\*(T> \fIDN\fR نام متمایز (DN) را که با آن برای جستجو به سرور دایرکتوری متصل (bind) می‌شود، مشخص می‌کند. پیش‌فرض، اتصال ناشناس است. .TP \*(T<\fBbindpw\fR\*(T> \fIPASSWORD\fR اطلاعات هویتی (گذرواژه) را که با آن متصل می‌شود مشخص می‌کند. این گزینه فقط زمانی کاربرد دارد که همراه با \*(T<\fBbinddn\fR\*(T> در بالا استفاده شود. اگر این گزینه را تنظیم کنید، باید تغییر مجوزهای دسترسی پرونده \*(T<\fInslcd.conf\fR\*(T> را مد نظر قرار دهید تا فقط به کاربر ریشه دسترسی داده شود. .TP \*(T<\fBrootpwmoddn\fR\*(T> \fIDN\fR نام متمایز (DN) را مشخص می‌کند که هنگام تلاش کاربر ریشه برای تغییر گذرواژه کاربر با استفاده از ماژول PAM به کار می‌رود. توجه داشته باشید که در حال حاضر این DN باید به عنوان یک مدخل واقعی در دایرکتوری LDAP وجود داشته باشد. .TP \*(T<\fBrootpwmodpw\fR\*(T> \fIPASSWORD\fR اطلاعات هویتی (گذرواژه) برای اتصال را مشخص می‌کند در صورتی که کاربر ریشه بخواهد گذرواژه کاربری را تغییر دهد. این گزینه فقط زمانی کاربرد دارد که با \*(T<\fBrootpwmoddn\fR\*(T> در بالا به کار رود. اگر این گزینه مشخص نشود، ماژول PAM این گذرواژه را از کاربر درخواست می‌کند. اگر این گزینه را تنظیم کنید، باید تغییر مجوزهای دسترسی پرونده \*(T<\fInslcd.conf\fR\*(T> را مد نظر قرار دهید تا فقط به کاربر ریشه دسترسی داده شود. .SS "گزینه‌های احراز هویت SASL (SASL AUTHENTICATION OPTIONS)" .TP \*(T<\fBsasl_mech\fR\*(T> \fIMECHANISM\fR سازوکار SASL را که باید هنگام انجام احراز هویت SASL استفاده شود مشخص می‌کند. .TP \*(T<\fBsasl_realm\fR\*(T> \fIREALM\fR قلمرو SASL را برای استفاده در هنگام انجام احراز هویت SASL مشخص می‌کند. .TP \*(T<\fBsasl_authcid\fR\*(T> \fIAUTHCID\fR شناسه احراز هویت را برای استفاده در هنگام انجام احراز هویت SASL مشخص می‌کند. .TP \*(T<\fBsasl_authzid\fR\*(T> \fIAUTHZID\fR شناسه مجوزدهی را برای استفاده در هنگام انجام احراز هویت SASL مشخص می‌کند. باید در یکی از قالب‌های: dn: یا u: مشخص شود. .TP \*(T<\fBsasl_secprops\fR\*(T> \fIPROPERTIES\fR ویژگی‌های امنیتی Cyrus SASL را مشخص می‌کند. مقادیر مجاز در صفحه راهنمای \fBldap.conf\fR(5) توضیح داده شده‌اند. .TP \*(T<\fBsasl_canonicalize\fR\*(T> yes|no تعیین می‌کند که آیا نام میزبان سرور LDAP باید استانداردسازی شود یا خیر. اگر روی yes تنظیم شود، کتابخانه LDAP یک جستجوی معکوس نام میزبان انجام می‌دهد. به‌طور پیش‌فرض، انجام شدن یا نشدن این بررسی به عهده کتابخانه LDAP گذاشته شده است. .SS "گزینه‌های احراز هویت کربروس (KERBEROS AUTHENTICATION OPTIONS)" .TP \*(T<\fBkrb5_ccname\fR\*(T> \fINAME\fR نام را برای حافظه پنهان اطلاعات هویتی کربروس GSS-API تنظیم می‌کند. .SS "گزینه‌های جستجو/نگاشت (SEARCH/MAPPING OPTIONS)" .TP \*(T<\fBbase\fR\*(T> [\fIMAP\fR] \fIDN\fR نام متمایز (DN) را برای استفاده به عنوان پایه جستجو مشخص می‌کند. این گزینه می‌تواند چندین بار ارائه شود و تمام پایه‌های مشخص‌شده جستجو خواهند شد. یک پایه جستجوی سراسری یا یک پایه ویژه MAP می‌تواند مشخص شود. اگر پایه‌های جستجوی ویژه MAP تعریف نشده باشند، از پایه‌های سراسری استفاده می‌شود. اگر به جای DN، مقدار \fIDOMAIN\fR مشخص شود، از دامنه DNS میزبان برای ساخت پایه جستجو استفاده می‌شود. مقدار \fI""\fR می‌تواند برای نشان دادن یک پایه جستجوی خالی استفاده شود (گیومه‌ها در موارد دیگر برای مقادیر base پشتیبانی نمی‌شوند و تمام پیکربندی‌های سرور LDAP از این پشتیبانی نمی‌کنند). اگر این مقدار تعریف نشود، تلاشی برای جستجوی آن در سرور LDAP پیکربندی‌شده انجام می‌شود. اگر سرور LDAP در حین راه‌اندازی در دسترس نباشد، \fBnslcd\fR راه‌اندازی نخواهد شد. .TP \*(T<\fBscope\fR\*(T> [\fIMAP\fR] sub[tree]|one[level]|base|children محدوده جستجو را مشخص می‌کند (subtree، onelevel، base یا children). محدوده پیش‌فرض subtree است؛ محدوده base تقریباً هیچ‌گاه برای جستجوهای سرویس نام مفید نیست؛ محدوده children در تمام سرورها پشتیبانی نمی‌شود. .TP \*(T<\fBderef\fR\*(T> never|searching|finding|always سیاست ارجاع‌زدایی از نام‌های مستعار را مشخص می‌کند. سیاست پیش‌فرض هرگز ارجاع‌زدایی نکردن از نام‌های مستعار است. .TP \*(T<\fBreferrals\fR\*(T> yes|no مشخص می‌کند که آیا دنبال کردن خودکار ارجاع‌ها باید فعال باشد یا خیر. رفتار پیش‌فرض، دنبال کردن ارجاع‌ها است. .TP \*(T<\fBfilter\fR\*(T> \fIMAP\fR \fIFILTER\fR پارامتر \fIFILTER\fR یک فیلتر جستجوی LDAP برای استفاده در یک نگاشت مشخص است. فیلتر پیش‌فرض یک جستجوی پایه روی objectClass برای آن نگاشت است (مثلاً \*(T<(objectClass=posixAccount)\*(T>). .TP \*(T<\fBmap\fR\*(T> \fIMAP\fR \fIATTRIBUTE\fR \fINEWATTRIBUTE\fR این گزینه امکان جستجوی ویژگی‌های سفارشی را به جای ویژگی‌های پیش‌فرض RFC 2307 فراهم می‌کند. پارامتر \fIMAP\fR می‌تواند یکی از نگاشت‌های پشتیبانی‌شده در زیر باشد. پارامتر \fIATTRIBUTE\fR همان ویژگی استفاده‌شده در RFC 2307 است (مثلاً \*(T، \*(T، \*(T و غیره). پارامتر \fINEWATTRIBUTE\fR می‌تواند نام هر ویژگی موجود در دایرکتوری باشد. اگر \fINEWATTRIBUTE\fR درون گیومه (") به صورت \fI"EXPRESSION"\fR قرار گیرد، به عنوان یک عبارت در نظر گرفته می‌شود که برای ایجاد مقدار واقعی مورد استفاده ارزیابی خواهد شد. برای جزئیات بیشتر به بخش عبارت‌های نگاشت ویژگی در زیر مراجعه کنید. تنها برخی از ویژگی‌ها برای مدخل‌های group، passwd و shadow می‌توانند با یک عبارت نگاشت شوند (زیرا سایر ویژگی‌ها ممکن است در فیلترهای جستجو استفاده شوند). برای مدخل‌های group فقط ویژگی \*(T می‌تواند با یک عبارت نگاشت شود. برای مدخل‌های passwd ویژگی‌های زیر می‌توانند با یک عبارت نگاشت شوند: \*(T، \*(T، \*(T، \*(T و \*(T. برای مدخل‌های shadow ویژگی‌های زیر می‌توانند با یک عبارت نگاشت شوند: \*(T، \*(T، \*(T، \*(T، \*(T، \*(T، \*(T و \*(T. ویژگی‌های \*(T و \*(T در نگاشت‌های \*(T و \*(T می‌توانند به \*(T و به دنبال آن SID دامنه نگاشت شوند تا شناسه‌های کاربری و گروهی عددی از SID استخراج شوند (مانند \*(T). به‌طور پیش‌فرض تمام ویژگی‌های \*(T به گذرواژه غیرقابل تطبیق ("*") نگاشت می‌شوند تا از نشت تصادفی اطلاعات گذرواژه جلوگیری شود. .SS "گزینه‌های زمان‌بندی/اتصال مجدد (TIMING/RECONNECT OPTIONS)" .TP \*(T<\fBbind_timelimit\fR\*(T> \fISECONDS\fR محدودیت زمانی (به ثانیه) را هنگام اتصال به سرور دایرکتوری مشخص می‌کند. این با محدودیت زمانی مشخص‌شده در \*(T<\fBtimelimit\fR\*(T> متفاوت است و فقط بر برقراری اتصال تأثیر می‌گذارد. توجه داشته باشید که همه کتابخانه‌های کلاینت LDAP از تنظیم مهلت زمانی اتصال پشتیبانی نمی‌کنند. مقدار پیش‌فرض \*(T<\fBbind_timelimit\fR\*(T> برابر ۱۰ ثانیه است. .TP \*(T<\fBtimelimit\fR\*(T> \fISECONDS\fR محدودیت زمانی (به ثانیه) را برای انتظار جهت دریافت پاسخ از سرور LDAP مشخص می‌کند. مقدار صفر (0)، که پیش‌فرض است، به معنی انتظار نامحدود برای تکمیل جستجوها است. .TP \*(T<\fBidle_timelimit\fR\*(T> \fISECONDS\fR دوره عدم فعالیت (به ثانیه) را مشخص می‌کند که پس از آن اتصال به سرور LDAP بسته می‌شود. پیش‌فرض این است که اتصالات منقضی نشوند. .TP \*(T<\fBreconnect_sleeptime\fR\*(T> \fISECONDS\fR تعداد ثانیه‌های توقف را هنگامی که اتصال به تمام سرورهای LDAP ناموفق باشد، مشخص می‌کند. به‌طور پیش‌فرض ۱ ثانیه بین اولین شکست و اولین تلاش مجدد فاصله گذاشته می‌شود. .TP \*(T<\fBreconnect_retrytime\fR\*(T> \fISECONDS\fR زمانی را مشخص می‌کند که پس از آن سرور LDAP به عنوان سرور کاملاً غیرقابل دسترس در نظر گرفته می‌شود. پس از رسیدن به این زمان، تلاش‌های مجدد تنها یک‌بار در این دوره زمانی انجام خواهند شد. مقدار پیش‌فرض ۱۰ ثانیه است. .PP توجه داشته باشید که منطق اتصال مجدد همان‌طور که در بالا توضیح داده شد، سازوکاری است که بین \fBnslcd\fR و سرور LDAP استفاده می‌شود. سازوکار بین کتابخانه‌های کلاینت NSS و PAM از یک سو و \fBnslcd\fR از سوی دیگر ساده‌تر است و دارای یک مهلت زمانی کامپایل‌شده ثابت ۱۰ ثانیه‌ای برای نوشتن در \fBnslcd\fR و مهلت زمانی ۶۰ ثانیه‌ای برای خواندن پاسخ‌ها است. خود \fBnslcd\fR دارای مهلت زمانی خواندن ۰٫۵ ثانیه و مهلت زمانی نوشتن ۶۰ ثانیه است. .SS "گزینه‌های SSL/TLS (SSL/TLS OPTIONS)" .TP \*(T<\fBssl\fR\*(T> on|off|start_tls مشخص می‌کند که آیا از SSL/TLS استفاده شود یا خیر (پیش‌فرض، عدم استفاده است). اگر \fIstart_tls\fR مشخص شود، به جای LDAP خام بر بستر SSL از StartTLS استفاده می‌شود. همه کتابخانه‌های کلاینت LDAP از هر دو مورد SSL و StartTLS و تمام گزینه‌های پیکربندی مرتبط پشتیبانی نمی‌کنند. .TP \*(T<\fBtls_reqcert\fR\*(T> never|allow|try|demand|hard مشخص می‌کند چه بررسی‌هایی روی گواهی ارائه‌شده توسط سرور انجام شود. معنای مقادیر در صفحه راهنمای \fBldap.conf\fR(5) شرح داده شده است. در صورت فعال بودن اعتبارسنجی همتا، دست‌کم یکی از گزینه‌های \*(T<\fBtls_cacertdir\fR\*(T> و \*(T<\fBtls_cacertfile\fR\*(T> الزامی است. .TP \*(T<\fBtls_cacertdir\fR\*(T> \fIPATH\fR دایرکتوری حاوی گواهی‌های X.509 را برای احراز هویت همتا مشخص می‌کند. این پارامتر هنگام استفاده از GnuTLS نادیده گرفته می‌شود. در دبیان، OpenLDAP با GnuTLS پیوند یافته است. .TP \*(T<\fBtls_cacertfile\fR\*(T> \fIPATH\fR مسیر گواهی X.509 را برای احراز هویت همتا مشخص می‌کند. .TP \*(T<\fBtls_randfile\fR\*(T> \fIPATH\fR مسیر منبع آنتروپی را مشخص می‌کند. این پارامتر هنگام استفاده از GnuTLS نادیده گرفته می‌شود. در دبیان، OpenLDAP با GnuTLS پیوند یافته است. .TP \*(T<\fBtls_ciphers\fR\*(T> \fICIPHERS\fR رمزهای مورداستفاده برای TLS را مشخص می‌کند. برای اطلاعات بیشتر به مستندات پیاده‌سازی TLS خود مراجعه کنید. .TP \*(T<\fBtls_cert\fR\*(T> \fIPATH\fR مسیر پرونده حاوی گواهی محلی را برای احراز هویت TLS کلاینت مشخص می‌کند. .TP \*(T<\fBtls_key\fR\*(T> \fIPATH\fR مسیر پرونده حاوی کلید خصوصی را برای احراز هویت TLS کلاینت مشخص می‌کند. .TP \*(T<\fBtls_reqsan\fR\*(T> never|allow|try|demand|hard نحوه بررسی نام جایگزین موضوع (SAN) سرور را در گواهی ارائه‌شده از سوی سرور مشخص می‌کند. معنای مقادیر در صفحه راهنمای \fBldap.conf\fR(5) شرح داده شده است. .TP \*(T<\fBtls_crlcheck\fR\*(T> none|peer|all مشخص می‌کند که آیا فهرست ابطال گواهی (CRL) متعلق به CA باید برای بررسی ابطال نشدن گواهی‌های سرور استفاده شود یا خیر. معنای مقادیر در صفحه راهنمای \fBldap.conf\fR(5) شرح داده شده است. .TP \*(T<\fBtls_crlfile\fR\*(T> \fIPATH\fR مسیر پرونده حاوی فهرست ابطال گواهی (CRL) را برای بررسی گواهی‌های سرور مشخص می‌کند. معنای مقادیر در صفحه راهنمای \fBldap.conf\fR(5) شرح داده شده است. .SS "سایر گزینه‌ها (OTHER OPTIONS)" .TP \*(T<\fBpagesize\fR\*(T> \fINUMBER\fR این گزینه را روی عددی بزرگ‌تر از ۰ تنظیم کنید تا نتایج صفحه‌بندی‌شده طبق RFC2696 از سرور LDAP درخواست شود. پیش‌فرض (0) عدم درخواست نتایج صفحه‌بندی‌شده است. این برای سرورهای LDAP که حاوی مدخل‌های زیادی هستند (مثلاً بیش از ۵۰۰ مورد) و تعداد مدخل‌های بازگردانده‌شده در یک درخواست را محدود می‌کنند، مفید است. برای سرورهای OpenLDAP ممکن است نیاز باشد \*(T<\fBsizelimit size.prtotal=unlimited\fR\*(T> را تنظیم کنید تا امکان بازگرداندن مدخل‌های بیشتر در چندین صفحه فراهم شود. .TP \*(T<\fBnss_initgroups_ignoreusers\fR\*(T> user1,user2,... این گزینه از جستجوهای عضویت گروهی از طریق LDAP برای کاربران مشخص‌شده جلوگیری می‌کند. این می‌تواند در صورت در دسترس نبودن سرور LDAP مفید باشد. این گزینه می‌تواند چندین بار مشخص شود. همچنین، مقدار \*(T می‌تواند استفاده شود. با آن مقدار، nslcd در هنگام راه‌اندازی فهرست کاملی از کاربران غیر LDAP می‌سازد. .TP \*(T<\fBnss_min_uid\fR\*(T> \fIUID\fR این گزینه تضمین می‌کند که کاربران LDAP با شناسه کاربری عددی کمتر از مقدار مشخص‌شده نادیده گرفته شوند. همچنین درخواست‌ها برای کاربرانی با شناسه کاربری کمتر نادیده گرفته می‌شوند. .TP \*(T<\fBnss_uid_offset\fR\*(T> \fINUMBER\fR این گزینه آفستی را مشخص می‌کند که به تمام شناسه‌های کاربری عددی LDAP افزوده می‌شود. این می‌تواند برای جلوگیری از تداخل شناسه کاربری با کاربران محلی، یا هنگام استفاده از ویژگی‌های \*(T به دلایل سازگاری به کار رود. مقدار گزینه \*(T<\fBnss_min_uid\fR\*(T> پس از اعمال این آفست ارزیابی می‌شود. .TP \*(T<\fBnss_gid_offset\fR\*(T> \fINUMBER\fR این گزینه آفستی را مشخص می‌کند که به تمام شناسه‌های گروهی عددی LDAP افزوده می‌شود. این می‌تواند برای جلوگیری از تداخل شناسه کاربری با گروه‌های محلی، یا هنگام استفاده از ویژگی‌های \*(T به دلایل سازگاری به کار رود. .TP \*(T<\fBnss_nested_groups\fR\*(T> yes|no اگر این گزینه تنظیم شود، ویژگی \*(T یک گروه ممکن است به گروه دیگری اشاره کند. اعضای گروه‌های تو در تو در گروه سطح بالاتر نیز بازگردانده می‌شوند و گروه‌های والد هنگام یافتن گروه‌ها برای یک کاربر مشخص بازگردانده می‌شوند. پیش‌فرض این است که جستجوهای اضافی برای گروه‌های تو در تو انجام نشود. .TP \*(T<\fBnss_getgrent_skipmembers\fR\*(T> yes|no اگر این گزینه تنظیم شود، فهرست اعضای گروه هنگام جستجوی گروه‌ها دریافت نمی‌شود. جستجوها برای یافتن اینکه یک کاربر به کدام گروه‌ها تعلق دارد همچنان کارایی خواهند داشت، بنابراین کاربر به احتمال زیاد هنگام ورود گروه‌های درست را دریافت می‌کند. این می‌تواند در سیستم‌هایی با گروه‌های بسیار بزرگ سرعت را بهبود بخشد. نکته منفی آن، بازگرداندن اطلاعات ناسازگار درباره عضویت در گروه است که ممکن است برخی برنامه‌ها را سردرگم کند. این گزینه برای اکثر پیکربندی‌ها توصیه نمی‌شود. .TP \*(T<\fBnss_disable_enumeration\fR\*(T> yes|no اگر این گزینه تنظیم شود، توابعی که باعث بارگذاری تمام مدخل‌های کاربر/گروه از دایرکتوری می‌شوند (getpwent()، getgrent()، setspent()) موفق به انجام این کار نخواهند شد. برنامه‌هایی که به خواندن ترتیبی تمام کاربران و/یا گروه‌ها وابسته‌اند ممکن است به درستی کار نکنند. این می‌تواند بار سرور LDAP را در شرایطی که تعداد زیادی کاربر و/یا گروه وجود دارد به طور چشمگیری کاهش دهد. این معمولاً در شرایطی استفاده می‌شود که دسترسی کاربر/برنامه برای شمارش کل دایرکتوری نامطلوب است و تغییر رفتار کاربر/برنامه ممکن نیست. این گزینه برای بیشتر پیکربندی‌ها توصیه نمی‌شود. .TP \*(T<\fBvalidnames\fR\*(T> \fIREGEX\fR این گزینه می‌تواند برای تعیین نحوه تأیید نام‌های کاربر و گروه در سیستم استفاده شود. این الگو برای بررسی تمام نام‌های کاربر و گروه که درخواست می‌شوند و از LDAP بازگردانده می‌شوند، به کار می‌رود. عبارت منظم باید به عنوان یک عبارت منظم گسترده POSIX مشخص شود. خود عبارت باید با نویسه‌های اسلش (/) جدا شود و پرچم 'i' می‌تواند به انتها اضافه شود تا نشان دهد که تطابق باید غیرحساس به بزرگی و کوچکی حروف باشد. مقدار پیش‌فرض این است: \*(T .TP \*(T<\fBignorecase\fR\*(T> yes|no این گزینه مشخص می‌کند که آیا جستجوها برای نگاشت‌های group، netgroup، passwd، protocols، rpc، services و shadow با استفاده از تطابق غیرحساس به بزرگی و کوچکی حروف انجام شود یا خیر. تنظیم این گزینه روی \*(T می‌تواند سیستم را در معرض آسیب‌پذیری‌های دور زدن مجوزدهی قرار دهد و آسیب‌پذیری‌های مسمومیت حافظه پنهان nscd را ایجاد کند که منجر به منع سرویس می‌شوند. پیش‌فرض، انجام فیلتر کردن حساس به بزرگی و کوچکی حروف برای نتایج جستجوی LDAP در نگاشت‌های فوق است. .TP \*(T<\fBpam_authc_ppolicy\fR\*(T> yes|no این گزینه مشخص می‌کند که آیا کنترل‌های سیاست گذرواژه هنگام احراز هویت کاربر از سرور LDAP درخواست و مدیریت شوند یا خیر. به‌طور پیش‌فرض، کنترل‌ها در صورت موجود بودن درخواست و مدیریت می‌شوند. .TP \*(T<\fBpam_authc_search\fR\*(T> \fIFILTER\fR به‌طور پیش‌فرض \fBnslcd\fR یک جستجوی LDAP را با اطلاعات هویتی کاربر پس از BIND (احراز هویت) انجام می‌دهد تا اطمینان حاصل شود که عملیات BIND موفق بوده است. جستجوی پیش‌فرض یک بررسی ساده است تا مشخص شود آیا DN کاربر وجود دارد یا خیر. می‌توان یک فیلتر جستجو مشخص کرد تا در عوض استفاده شود. همان جایگزینی‌هایی که در گزینه \*(T<\fBpam_authz_search\fR\*(T> آمده است انجام خواهد شد و جستجو باید دست‌کم یک مدخل بازگرداند. مقدار \*(T می‌تواند برای اجبار جستجوی پیش‌فرض برای DN کاربر استفاده شود. مقدار \*(T می‌تواند برای نشان دادن اینکه هیچ جستجویی پس از BIND انجام نشود استفاده شود. توجه داشته باشید که برخی از سرورهای LDAP همیشه کد خطای درستی را در نتیجه یک عملیات BIND ناموفق بازنمی‌گردانند (مثلاً هنگامی که یک گذرواژه خالی ارائه می‌شود). .TP \*(T<\fBpam_authz_search\fR\*(T> \fIFILTER\fR این گزینه امکان تنظیم دقیق و انعطاف‌پذیر بررسی مجوزدهی را فراهم می‌کند. فیلتر جستجوی مشخص‌شده اجرا می‌شود و در صورت تطابق هر مدخلی، دسترسی داده می‌شود، در غیر این صورت دسترسی رد می‌شود. فیلتر جستجو می‌تواند شامل ارجاعات متغیر زیر باشد: \*(T<$username\*(T>، \*(T<$service\*(T>، \*(T<$ruser\*(T>، \*(T<$rhost\*(T>، \*(T<$tty\*(T>، \*(T<$hostname\*(T>، \*(T<$fqdn\*(T>، \*(T<$domain\*(T>، \*(T<$dn\*(T> و \*(T<$uid\*(T>. این ارجاعات در فیلتر جستجو با استفاده از همان ساختاری که در بخش عبارت‌های نگاشت ویژگی در زیر توضیح داده شده، جایگزین می‌شوند. به عنوان مثال، برای بررسی اینکه آیا کاربر دارای مقدار مناسب \*(T در صورت وجود این ویژگی است (این تقریباً گزینه \*(T<\fBpam_check_service_attr\fR\*(T> را در pam_ldap شرکت PADL شبیه‌سازی می‌کند): .nf \*(T<(&(objectClass=posixAccount)(uid=$username)(|(authorizedService=$service)(!(authorizedService=*))))\*(T> .fi گزینه \*(T<\fBpam_check_host_attr\fR\*(T> را می‌توان با عبارت زیر شبیه‌سازی کرد: .nf \*(T<(&(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\e\e*)))\*(T> .fi این گزینه می‌تواند چندین بار مشخص شود و تمام جستجوهای مشخص‌شده باید دست‌کم یک مدخل بازگردانند تا دسترسی داده شود. .TP \*(T<\fBpam_password_prohibit_message\fR\*(T> "\fIMESSAGE\fR" اگر این گزینه تنظیم شود، تغییر گذرواژه با استفاده از pam_ldap رد می‌شود و پیام مشخص‌شده در عوض به کاربر نمایش داده خواهد شد. از این پیام می‌توان برای هدایت کاربر به روشی جایگزین جهت تغییر گذرواژه‌اش استفاده کرد. .TP \*(T<\fBreconnect_invalidate\fR\*(T> \fIDB\fR,\fIDB\fR,... اگر این گزینه تنظیم شود، \fBnslcd\fR تلاش می‌کند تا حافظه‌های پنهان خارجی مشخص‌شده را هنگام راه‌اندازی و هر زمان که اتصال به سرور LDAP پس از یک خطا دوباره برقرار شود، پاک کند. پارامتر \fIDB\fR می‌تواند به یکی از نگاشت‌های nsswitch اشاره کند، که در این حالت با \fBnscd\fR تماس گرفته می‌شود تا حافظه پنهان خود را برای پایگاه داده مشخص‌شده پاک کند. اگر \fIDB\fR برابر \*(T باشد، با \fBnfsidmap\fR تماس گرفته می‌شود تا حافظه پنهان خود را پاک کند. استفاده از این گزینه تضمین می‌کند که حافظه‌های پنهان خارجی از اطلاعات نادرست (معمولاً عدم وجود کاربران) که ممکن است به دلیل در دسترس نبودن سرور LDAP ایجاد شده باشد، پاک شوند. .TP \*(T<\fBcache\fR\*(T> \fICACHE\fR \fITIME\fR [\fITIME\fR] مدت زمانی را که مدخل‌ها در حافظه پنهان داخلی مشخص‌شده نگهداری می‌شوند، پیکربندی می‌کند. اولین مقدار \fITIME\fR زمان نگهداری مدخل‌های یافت‌شده را در حافظه پنهان مشخص می‌کند. دومین مقدار \fITIME\fR زمان به‌خاطر سپردن اینکه یک مدخل خاص یافت نشد را مشخص می‌کند. اگر پارامتر دوم ارائه نشود، همانند پارامتر اول در نظر گرفته می‌شود. مقادیر زمانی به صورت یک عدد و به دنبال آن \*(T برای ثانیه، \*(T برای دقیقه، \*(T برای ساعت یا \*(T برای روز مشخص می‌شوند. برای غیرفعال کردن حافظه پنهان از \*(T<0\*(T> یا \*(T استفاده کنید. در حال حاضر، فقط حافظه پنهان \*(T پشتیبانی می‌شود که برای به خاطر سپردن جستجوهای DN به نام کاربری در هنگام استفاده از ویژگی \*(T به کار می‌رود. مقدار زمانی پیش‌فرض برای این حافظه پنهان \*(T<15m\*(T> است. .SH "نگاشت‌های پشتیبانی‌شده (SUPPORTED MAPS)" نگاشت‌های زیر پشتیبانی می‌شوند. در گزینه‌های بالا از آن‌ها به عنوان \fIMAP\fR یاد شده است. .TP alias[es] نام‌های مستعار رایانامه (ایمیل). توجه داشته باشید که اکثر سرورهای رایانامه از رابط NSS برای درخواست نام‌های مستعار استفاده نمی‌کنند و پرونده \*(T<\fI/etc/aliases\fR\*(T> را خودشان پردازش می‌کنند. .TP ether[s] شماره‌های اترنت (آدرس‌های مک). .TP group گروه‌های پازیکس (Posix). .TP host[s] نام‌های میزبان. .TP netgroup گروه‌های میزبان و کاربر مورداستفاده برای کنترل دسترسی. .TP network[s] شماره‌های شبکه. .TP passwd کاربران پازیکس (Posix). .TP protocol[s] تعاریف پروتکل (مانند موارد موجود در \*(T<\fI/etc/protocols\fR\*(T>). .TP rpc نام‌ها و شماره‌های فراخوانی روال از راه دور (RPC). .TP service[s] نام‌ها و شماره‌های سرویس‌های شبکه. .TP shadow اطلاعات سایه (shadow) گذرواژه کاربر. .SH "عبارت‌های نگاشت ویژگی (ATTRIBUTE MAPPING EXPRESSIONS)" برای برخی از ویژگی‌ها می‌توان از یک عبارت نگاشت برای ساخت مقدار نهایی استفاده کرد. این کار در حال حاضر فقط برای ویژگی‌هایی امکان‌پذیر است که نیازی به استفاده در فیلترهای جستجو ندارند. این عبارت‌ها زیرمجموعه‌ای از عبارت‌های رشته‌ای داخل گیومه دوگانه در پوسته بورن (POSIX) هستند. به جای جایگزینی متغیر، جستجوهای ویژگی روی مدخل جاری انجام شده و مقدار ویژگی جایگزین می‌شود. عبارت‌های زیر پشتیبانی می‌شوند: .TP \*(T<"${attr}"\*(T> (یا به طور خلاصه \*(T<"$attr"\*(T>) مقدار ویژگی را جایگزین می‌کند .TP \*(T<"${attr:\-word}"\*(T> (استفاده از پیش‌فرض) مقدار ویژگی را جایگزین می‌کند یا اگر ویژگی تنظیم نشده یا خالی باشد، کلمه word را جایگزین می‌کند .TP \*(T<"${attr:+word}"\*(T> (استفاده از جایگزین) در صورتی که ویژگی تنظیم شده باشد، \*(T را جایگزین می‌کند، در غیر این صورت رشته خالی جایگزین می‌شود .TP \*(T<"${attr:offset:length}"\*(T> به تعداد \*(T نویسه (در واقع بایت) را با شروع از موقعیت \*(T (که شمارش آن از صفر آغاز می‌شود) جایگزین می‌کند؛ در صورتی که رشته جایگزین‌شده بیش از حد طولانی باشد، کوتاه می‌شود؛ به ویژه، اگر \*(T برابر صفر باشد یا \*(T خارج از رشته اصلی قرار گیرد، طول آن می‌تواند صفر باشد .TP \*(T<"${attr#word}"\*(T> کوتاه‌ترین تطابق ممکن از \*(T را از سمت چپ مقدار ویژگی حذف می‌کند .TP \*(T<"${attr##word}"\*(T> طولانی‌ترین تطابق ممکن از \*(T را از سمت چپ مقدار ویژگی حذف می‌کند (فقط در \fBpynslcd\fR) .TP \*(T<"${attr%word}"\*(T> کوتاه‌ترین تطابق ممکن از \*(T را از سمت راست مقدار ویژگی حذف می‌کند (فقط در \fBpynslcd\fR) .TP \*(T<"${attr%%word}"\*(T> طولانی‌ترین تطابق ممکن از \*(T را از سمت راست مقدار ویژگی حذف می‌کند (فقط در \fBpynslcd\fR) .PP در \fBnslcd\fR تنها عبارت تطابق # پشتیبانی می‌شود و آن هم فقط با نماد عام ? عمل می‌کند. پیاده‌سازی \fBpynslcd\fR از تطابق کامل پشتیبانی می‌کند. .PP نویسه‌های گیومه (\*(T<"\*(T>)، دلار (\*(T<$\*(T>) و بک‌اسلش (\*(T<\e\*(T>) باید با یک بک‌اسلش (\*(T<\e\*(T>) گریز (اسکیپ) داده شوند. .PP این عبارت‌ها بررسی می‌شوند تا ویژگی‌های مناسب به طور خودکار از LDAP واکشی شوند. چند مثال برای نشان دادن نحوه استفاده از این عبارت‌ها در نگاشت ویژگی: .TP \*(T استفاده از ویژگی \*(T، با استفاده از مقدار 0 به عنوان پیش‌فرض .TP \*(T استفاده از ویژگی \*(T برای ساخت مقدار \*(T در صورتی که آن ویژگی موجود نباشد .TP \*(T اگر ویژگی \*(T تنظیم شده باشد، ۱۰۰ بازگردانده می‌شود، در غیر این صورت مقدار خالی می‌ماند .TP \*(T پیشوند {crypt} را از ویژگی userPassword حذف می‌کند و مقدار خام هش را بازمی‌گرداند .SH "فایل‌ها (FILES)" .TP \*(T<\fI/etc/nslcd.conf\fR\*(T> پرونده اصلی پیکربندی .TP \*(T<\fI/etc/nsswitch.conf\fR\*(T> پرونده پیکربندی سوئیچ سرویس نام (Name Service Switch) .SH "همچنین ببینید (SEE ALSO)" \fBnslcd\fR(8), \fBnsswitch.conf\fR(5) .SH "نویسندگان (AUTHORS)" این راهنما توسط Arthur de Jong نوشته شده است و بر اساس راهنمای \fBnss_ldap\fR(5) توسعه‌یافته توسط شرکت .PADL Software Pty Ltd می‌باشد.