| nslcd.conf(5) | System Manager's Manual | nslcd.conf(5) |
نام (NAME)
nslcd.conf - پرونده پیکربندی دیمن سرویس نام LDAP
توضیحات (DESCRIPTION)
بسته nss-pam-ldapd امکان استفاده از سرورهای دایرکتوری LDAP را به عنوان منبع اصلی اطلاعات سرویس نام فراهم میکند. (اطلاعات سرویس نام معمولاً شامل کاربران، میزبانها، گروهها و دیگر دادههایی است که از قدیم در پروندههای متنی ساده یا NIS ذخیره میشدند.)
پرونده nslcd.conf حاوی اطلاعات پیکربندی برای اجرای nslcd است (نگاه کنید به nslcd(8)). این پرونده شامل گزینههایی در هر خط است که نحوه نگاشت جستجوهای NSS و کنشهای PAM به جستجوهای LDAP را تعریف میکنند.
گزینهها (OPTIONS)
گزینههای زمان اجرا (RUNTIME OPTIONS)
- threads NUM
- تعداد ریسمانهایی را مشخص میکند که برای رسیدگی به درخواستها و انجام پرسوجوهای LDAP راهاندازی میشوند. هر ریسمان یک اتصال جداگانه به سرور LDAP باز میکند. پیشفرض، راهاندازی ۵ ریسمان است.
- uid UID
- شناسه کاربری (UID) را که دیمن باید با آن اجرا شود مشخص میکند. این شناسه میتواند عددی یا یک مقدار نمادین باشد. اگر هیچ UID مشخص نشود، تلاشی برای تغییر کاربر انجام نخواهد شد. توجه داشته باشید که باید از مقادیری استفاده کنید که برای تحلیل نیازی به LDAP نداشته باشند.
- gid GID
- شناسه گروهی (GID) را که دیمن باید با آن اجرا شود مشخص میکند. این شناسه میتواند عددی یا یک مقدار نمادین باشد. اگر هیچ GID مشخص نشود، تلاشی برای تغییر گروه انجام نخواهد شد. توجه داشته باشید که باید از مقادیری استفاده کنید که برای تحلیل نیازی به LDAP نداشته باشند.
- log SCHEME [LEVEL]
- نحوه ثبت گزارش را کنترل میکند. آرگومان SCHEME میتواند none، syslog یا یک مسیر فایل مطلق باشد. آرگومان LEVEL اختیاری است و سطح گزارش را مشخص میکند. سطح گزارش میتواند یکی از موارد زیر باشد: crit، error، warning، notice، info یا debug. سطح گزارش پیشفرض info است. تمام پیامهای دارای سطح گزارش مشخصشده یا بالاتر ثبت میشوند. این گزینه میتواند چندین بار مشخص شود. در صورت عدم تعیین این گزینه، syslog info لحاظ میشود.
گزینههای عمومی اتصال (GENERAL CONNECTION OPTIONS)
- uri URI ...
- شناسه منبع
یکنواخت (URI)
سرور LDAP را
برای اتصال
مشخص
میکند. طرح
URI میتواند
ldap، ldapi یا ldaps باشد
که به ترتیب
LDAP بر بستر TCP، IPC
یا SSL را مشخص
میکنند (در
صورتی که
توسط
کتابخانه LDAP
پشتیبانی
شوند).
همچنین مقدار DNS میتواند برای تلاش جهت جستجوی سرور با استفاده از رکوردهای SRV سامانه DNS به کار رود. بهطور پیشفرض از دامنه فعلی استفاده میشود، اما میتوان با ساختار DNS:DOMAIN دامنه دیگری را پرسوجو کرد. برای تبدیل رکوردهای SRV پورت ۳۸۹ به یک URI از نوع ldaps://، میتوان از DNSLDAPS استفاده کرد.
هنگام استفاده از طرح ldapi، باید از %2f برای گریز از اسلشها استفاده شود (مانند ldapi://%2fvar%2frun%2fslapd%2fldapi/)، اگرچه در بیشتر مواقع به این کار نیازی نیست.
این گزینه میتواند چندین بار و/یا با چند URI در یک خط که با فاصله از هم جدا شدهاند، مشخص شود. معمولاً فقط از سرور اول استفاده میشود و سرورهای بعدی به عنوان پشتیبان عمل میکنند (گزینه bind_timelimit را در زیر ببینید).
اگر از جستجوهای LDAP برای تحلیل نام میزبان استفاده میشود، هر نام میزبان باید به عنوان یک آدرس IP یا نامی مشخص شود که بدون استفاده از LDAP قابل تحلیل باشد.
- ldap_version VERSION
- نسخه پروتکل LDAP مورد استفاده را مشخص میکند. پیشفرض، استفاده از حداکثر نسخه پشتیبانیشده توسط کتابخانه LDAP است.
- binddn DN
- نام متمایز (DN) را که با آن برای جستجو به سرور دایرکتوری متصل (bind) میشود، مشخص میکند. پیشفرض، اتصال ناشناس است.
- bindpw PASSWORD
- اطلاعات هویتی (گذرواژه) را که با آن متصل میشود مشخص میکند. این گزینه فقط زمانی کاربرد دارد که همراه با binddn در بالا استفاده شود. اگر این گزینه را تنظیم کنید، باید تغییر مجوزهای دسترسی پرونده nslcd.conf را مد نظر قرار دهید تا فقط به کاربر ریشه دسترسی داده شود.
- rootpwmoddn DN
- نام متمایز
(DN) را مشخص
میکند که
هنگام تلاش
کاربر ریشه
برای تغییر
گذرواژه
کاربر با
استفاده از
ماژول PAM به
کار میرود.
توجه داشته باشید که در حال حاضر این DN باید به عنوان یک مدخل واقعی در دایرکتوری LDAP وجود داشته باشد.
- rootpwmodpw PASSWORD
- اطلاعات هویتی (گذرواژه) برای اتصال را مشخص میکند در صورتی که کاربر ریشه بخواهد گذرواژه کاربری را تغییر دهد. این گزینه فقط زمانی کاربرد دارد که با rootpwmoddn در بالا به کار رود. اگر این گزینه مشخص نشود، ماژول PAM این گذرواژه را از کاربر درخواست میکند. اگر این گزینه را تنظیم کنید، باید تغییر مجوزهای دسترسی پرونده nslcd.conf را مد نظر قرار دهید تا فقط به کاربر ریشه دسترسی داده شود.
گزینههای احراز هویت SASL (SASL AUTHENTICATION OPTIONS)
- sasl_mech MECHANISM
- سازوکار SASL را که باید هنگام انجام احراز هویت SASL استفاده شود مشخص میکند.
- sasl_realm REALM
- قلمرو SASL را برای استفاده در هنگام انجام احراز هویت SASL مشخص میکند.
- sasl_authcid AUTHCID
- شناسه احراز هویت را برای استفاده در هنگام انجام احراز هویت SASL مشخص میکند.
- sasl_authzid AUTHZID
- شناسه مجوزدهی را برای استفاده در هنگام انجام احراز هویت SASL مشخص میکند. باید در یکی از قالبهای: dn:<distinguished name> یا u:<username> مشخص شود.
- sasl_secprops PROPERTIES
- ویژگیهای امنیتی Cyrus SASL را مشخص میکند. مقادیر مجاز در صفحه راهنمای ldap.conf(5) توضیح داده شدهاند.
- sasl_canonicalize yes|no
- تعیین میکند که آیا نام میزبان سرور LDAP باید استانداردسازی شود یا خیر. اگر روی yes تنظیم شود، کتابخانه LDAP یک جستجوی معکوس نام میزبان انجام میدهد. بهطور پیشفرض، انجام شدن یا نشدن این بررسی به عهده کتابخانه LDAP گذاشته شده است.
گزینههای احراز هویت کربروس (KERBEROS AUTHENTICATION OPTIONS)
- krb5_ccname NAME
- نام را برای حافظه پنهان اطلاعات هویتی کربروس GSS-API تنظیم میکند.
گزینههای جستجو/نگاشت (SEARCH/MAPPING OPTIONS)
- base [MAP] DN
- نام متمایز
(DN) را برای
استفاده به
عنوان پایه
جستجو مشخص
میکند. این
گزینه
میتواند
چندین بار
ارائه شود و
تمام
پایههای
مشخصشده
جستجو
خواهند شد.
یک پایه جستجوی سراسری یا یک پایه ویژه MAP میتواند مشخص شود. اگر پایههای جستجوی ویژه MAP تعریف نشده باشند، از پایههای سراسری استفاده میشود.
اگر به جای DN، مقدار DOMAIN مشخص شود، از دامنه DNS میزبان برای ساخت پایه جستجو استفاده میشود. مقدار "" میتواند برای نشان دادن یک پایه جستجوی خالی استفاده شود (گیومهها در موارد دیگر برای مقادیر base پشتیبانی نمیشوند و تمام پیکربندیهای سرور LDAP از این پشتیبانی نمیکنند).
اگر این مقدار تعریف نشود، تلاشی برای جستجوی آن در سرور LDAP پیکربندیشده انجام میشود. اگر سرور LDAP در حین راهاندازی در دسترس نباشد، nslcd راهاندازی نخواهد شد.
- scope [MAP] sub[tree]|one[level]|base|children
- محدوده جستجو را مشخص میکند (subtree، onelevel، base یا children). محدوده پیشفرض subtree است؛ محدوده base تقریباً هیچگاه برای جستجوهای سرویس نام مفید نیست؛ محدوده children در تمام سرورها پشتیبانی نمیشود.
- deref never|searching|finding|always
- سیاست ارجاعزدایی از نامهای مستعار را مشخص میکند. سیاست پیشفرض هرگز ارجاعزدایی نکردن از نامهای مستعار است.
- referrals yes|no
- مشخص میکند که آیا دنبال کردن خودکار ارجاعها باید فعال باشد یا خیر. رفتار پیشفرض، دنبال کردن ارجاعها است.
- filter MAP FILTER
- پارامتر FILTER یک فیلتر جستجوی LDAP برای استفاده در یک نگاشت مشخص است. فیلتر پیشفرض یک جستجوی پایه روی objectClass برای آن نگاشت است (مثلاً (objectClass=posixAccount)).
- map MAP ATTRIBUTE NEWATTRIBUTE
- این گزینه
امکان
جستجوی
ویژگیهای
سفارشی را
به جای
ویژگیهای
پیشفرض RFC 2307
فراهم
میکند.
پارامتر MAP
میتواند
یکی از
نگاشتهای
پشتیبانیشده
در زیر
باشد.
پارامتر ATTRIBUTE
همان ویژگی
استفادهشده
در RFC 2307 است
(مثلاً userPassword،
ipProtocolNumber، macAddress و
غیره).
پارامتر NEWATTRIBUTE میتواند نام هر ویژگی موجود در دایرکتوری باشد.
اگر NEWATTRIBUTE درون گیومه (") به صورت "EXPRESSION" قرار گیرد، به عنوان یک عبارت در نظر گرفته میشود که برای ایجاد مقدار واقعی مورد استفاده ارزیابی خواهد شد. برای جزئیات بیشتر به بخش عبارتهای نگاشت ویژگی در زیر مراجعه کنید.
تنها برخی از ویژگیها برای مدخلهای group، passwd و shadow میتوانند با یک عبارت نگاشت شوند (زیرا سایر ویژگیها ممکن است در فیلترهای جستجو استفاده شوند). برای مدخلهای group فقط ویژگی userPassword میتواند با یک عبارت نگاشت شود. برای مدخلهای passwd ویژگیهای زیر میتوانند با یک عبارت نگاشت شوند: userPassword، gidNumber، gecos، homeDirectory و loginShell. برای مدخلهای shadow ویژگیهای زیر میتوانند با یک عبارت نگاشت شوند: userPassword، shadowLastChange، shadowMin، shadowMax، shadowWarning، shadowInactive، shadowExpire و shadowFlag.
ویژگیهای uidNumber و gidNumber در نگاشتهای passwd و group میتوانند به objectSid و به دنبال آن SID دامنه نگاشت شوند تا شناسههای کاربری و گروهی عددی از SID استخراج شوند (مانند objectSid:S-1-5-21-3623811015-3361044348-30300820).
بهطور پیشفرض تمام ویژگیهای userPassword به گذرواژه غیرقابل تطبیق ("*") نگاشت میشوند تا از نشت تصادفی اطلاعات گذرواژه جلوگیری شود.
گزینههای زمانبندی/اتصال مجدد (TIMING/RECONNECT OPTIONS)
- bind_timelimit SECONDS
- محدودیت زمانی (به ثانیه) را هنگام اتصال به سرور دایرکتوری مشخص میکند. این با محدودیت زمانی مشخصشده در timelimit متفاوت است و فقط بر برقراری اتصال تأثیر میگذارد. توجه داشته باشید که همه کتابخانههای کلاینت LDAP از تنظیم مهلت زمانی اتصال پشتیبانی نمیکنند. مقدار پیشفرض bind_timelimit برابر ۱۰ ثانیه است.
- timelimit SECONDS
- محدودیت زمانی (به ثانیه) را برای انتظار جهت دریافت پاسخ از سرور LDAP مشخص میکند. مقدار صفر (0)، که پیشفرض است، به معنی انتظار نامحدود برای تکمیل جستجوها است.
- idle_timelimit SECONDS
- دوره عدم فعالیت (به ثانیه) را مشخص میکند که پس از آن اتصال به سرور LDAP بسته میشود. پیشفرض این است که اتصالات منقضی نشوند.
- reconnect_sleeptime SECONDS
- تعداد ثانیههای توقف را هنگامی که اتصال به تمام سرورهای LDAP ناموفق باشد، مشخص میکند. بهطور پیشفرض ۱ ثانیه بین اولین شکست و اولین تلاش مجدد فاصله گذاشته میشود.
- reconnect_retrytime SECONDS
- زمانی را مشخص میکند که پس از آن سرور LDAP به عنوان سرور کاملاً غیرقابل دسترس در نظر گرفته میشود. پس از رسیدن به این زمان، تلاشهای مجدد تنها یکبار در این دوره زمانی انجام خواهند شد. مقدار پیشفرض ۱۰ ثانیه است.
توجه داشته باشید که منطق اتصال مجدد همانطور که در بالا توضیح داده شد، سازوکاری است که بین nslcd و سرور LDAP استفاده میشود. سازوکار بین کتابخانههای کلاینت NSS و PAM از یک سو و nslcd از سوی دیگر سادهتر است و دارای یک مهلت زمانی کامپایلشده ثابت ۱۰ ثانیهای برای نوشتن در nslcd و مهلت زمانی ۶۰ ثانیهای برای خواندن پاسخها است. خود nslcd دارای مهلت زمانی خواندن ۰٫۵ ثانیه و مهلت زمانی نوشتن ۶۰ ثانیه است.
گزینههای SSL/TLS (SSL/TLS OPTIONS)
- ssl on|off|start_tls
- مشخص میکند که آیا از SSL/TLS استفاده شود یا خیر (پیشفرض، عدم استفاده است). اگر start_tls مشخص شود، به جای LDAP خام بر بستر SSL از StartTLS استفاده میشود. همه کتابخانههای کلاینت LDAP از هر دو مورد SSL و StartTLS و تمام گزینههای پیکربندی مرتبط پشتیبانی نمیکنند.
- tls_reqcert never|allow|try|demand|hard
- مشخص میکند چه بررسیهایی روی گواهی ارائهشده توسط سرور انجام شود. معنای مقادیر در صفحه راهنمای ldap.conf(5) شرح داده شده است. در صورت فعال بودن اعتبارسنجی همتا، دستکم یکی از گزینههای tls_cacertdir و tls_cacertfile الزامی است.
- tls_cacertdir PATH
- دایرکتوری حاوی گواهیهای X.509 را برای احراز هویت همتا مشخص میکند. این پارامتر هنگام استفاده از GnuTLS نادیده گرفته میشود. در دبیان، OpenLDAP با GnuTLS پیوند یافته است.
- tls_cacertfile PATH
- مسیر گواهی X.509 را برای احراز هویت همتا مشخص میکند.
- tls_randfile PATH
- مسیر منبع آنتروپی را مشخص میکند. این پارامتر هنگام استفاده از GnuTLS نادیده گرفته میشود. در دبیان، OpenLDAP با GnuTLS پیوند یافته است.
- tls_ciphers CIPHERS
- رمزهای مورداستفاده برای TLS را مشخص میکند. برای اطلاعات بیشتر به مستندات پیادهسازی TLS خود مراجعه کنید.
- tls_cert PATH
- مسیر پرونده حاوی گواهی محلی را برای احراز هویت TLS کلاینت مشخص میکند.
- tls_key PATH
- مسیر پرونده حاوی کلید خصوصی را برای احراز هویت TLS کلاینت مشخص میکند.
- tls_reqsan never|allow|try|demand|hard
- نحوه بررسی نام جایگزین موضوع (SAN) سرور را در گواهی ارائهشده از سوی سرور مشخص میکند. معنای مقادیر در صفحه راهنمای ldap.conf(5) شرح داده شده است.
- tls_crlcheck none|peer|all
- مشخص میکند که آیا فهرست ابطال گواهی (CRL) متعلق به CA باید برای بررسی ابطال نشدن گواهیهای سرور استفاده شود یا خیر. معنای مقادیر در صفحه راهنمای ldap.conf(5) شرح داده شده است.
- tls_crlfile PATH
- مسیر پرونده حاوی فهرست ابطال گواهی (CRL) را برای بررسی گواهیهای سرور مشخص میکند. معنای مقادیر در صفحه راهنمای ldap.conf(5) شرح داده شده است.
سایر گزینهها (OTHER OPTIONS)
- pagesize NUMBER
- این گزینه
را روی عددی
بزرگتر از
۰ تنظیم
کنید تا
نتایج
صفحهبندیشده
طبق RFC2696 از
سرور LDAP
درخواست
شود.
پیشفرض (0)
عدم
درخواست
نتایج
صفحهبندیشده
است.
این برای سرورهای LDAP که حاوی مدخلهای زیادی هستند (مثلاً بیش از ۵۰۰ مورد) و تعداد مدخلهای بازگرداندهشده در یک درخواست را محدود میکنند، مفید است. برای سرورهای OpenLDAP ممکن است نیاز باشد sizelimit size.prtotal=unlimited را تنظیم کنید تا امکان بازگرداندن مدخلهای بیشتر در چندین صفحه فراهم شود.
- nss_initgroups_ignoreusers user1,user2,...
- این گزینه
از
جستجوهای
عضویت
گروهی از
طریق LDAP برای
کاربران
مشخصشده
جلوگیری
میکند. این
میتواند
در صورت در
دسترس
نبودن سرور
LDAP مفید باشد.
این گزینه
میتواند
چندین بار
مشخص شود.
همچنین، مقدار ALLLOCAL میتواند استفاده شود. با آن مقدار، nslcd در هنگام راهاندازی فهرست کاملی از کاربران غیر LDAP میسازد.
- nss_min_uid UID
- این گزینه تضمین میکند که کاربران LDAP با شناسه کاربری عددی کمتر از مقدار مشخصشده نادیده گرفته شوند. همچنین درخواستها برای کاربرانی با شناسه کاربری کمتر نادیده گرفته میشوند.
- nss_uid_offset NUMBER
- این گزینه
آفستی را
مشخص
میکند که
به تمام
شناسههای
کاربری
عددی LDAP
افزوده
میشود. این
میتواند
برای
جلوگیری از
تداخل
شناسه
کاربری با
کاربران
محلی، یا
هنگام
استفاده از
ویژگیهای
objectSid به دلایل
سازگاری به
کار رود.
مقدار گزینه nss_min_uid پس از اعمال این آفست ارزیابی میشود.
- nss_gid_offset NUMBER
- این گزینه آفستی را مشخص میکند که به تمام شناسههای گروهی عددی LDAP افزوده میشود. این میتواند برای جلوگیری از تداخل شناسه کاربری با گروههای محلی، یا هنگام استفاده از ویژگیهای objectSid به دلایل سازگاری به کار رود.
- nss_nested_groups yes|no
- اگر این گزینه تنظیم شود، ویژگی member یک گروه ممکن است به گروه دیگری اشاره کند. اعضای گروههای تو در تو در گروه سطح بالاتر نیز بازگردانده میشوند و گروههای والد هنگام یافتن گروهها برای یک کاربر مشخص بازگردانده میشوند. پیشفرض این است که جستجوهای اضافی برای گروههای تو در تو انجام نشود.
- nss_getgrent_skipmembers yes|no
- اگر این
گزینه
تنظیم شود،
فهرست
اعضای گروه
هنگام
جستجوی
گروهها
دریافت
نمیشود.
جستجوها
برای یافتن
اینکه یک
کاربر به
کدام
گروهها
تعلق دارد
همچنان
کارایی
خواهند
داشت،
بنابراین
کاربر به
احتمال
زیاد هنگام
ورود
گروههای
درست را
دریافت
میکند.
این میتواند در سیستمهایی با گروههای بسیار بزرگ سرعت را بهبود بخشد. نکته منفی آن، بازگرداندن اطلاعات ناسازگار درباره عضویت در گروه است که ممکن است برخی برنامهها را سردرگم کند. این گزینه برای اکثر پیکربندیها توصیه نمیشود.
- nss_disable_enumeration yes|no
- اگر این
گزینه
تنظیم شود،
توابعی که
باعث
بارگذاری
تمام
مدخلهای
کاربر/گروه
از
دایرکتوری
میشوند
(getpwent()، getgrent()، setspent())
موفق به
انجام این
کار
نخواهند شد.
برنامههایی
که به
خواندن
ترتیبی
تمام
کاربران
و/یا
گروهها
وابستهاند
ممکن است به
درستی کار
نکنند.
این میتواند بار سرور LDAP را در شرایطی که تعداد زیادی کاربر و/یا گروه وجود دارد به طور چشمگیری کاهش دهد. این معمولاً در شرایطی استفاده میشود که دسترسی کاربر/برنامه برای شمارش کل دایرکتوری نامطلوب است و تغییر رفتار کاربر/برنامه ممکن نیست. این گزینه برای بیشتر پیکربندیها توصیه نمیشود.
- validnames REGEX
- این گزینه
میتواند
برای تعیین
نحوه تأیید
نامهای
کاربر و
گروه در
سیستم
استفاده
شود. این
الگو برای
بررسی تمام
نامهای
کاربر و
گروه که
درخواست
میشوند و
از LDAP
بازگردانده
میشوند،
به کار
میرود.
عبارت منظم باید به عنوان یک عبارت منظم گسترده POSIX مشخص شود. خود عبارت باید با نویسههای اسلش (/) جدا شود و پرچم 'i' میتواند به انتها اضافه شود تا نشان دهد که تطابق باید غیرحساس به بزرگی و کوچکی حروف باشد. مقدار پیشفرض این است: /^[a-z0-9._@$()]([a-z0-9._@$() \\~-]*[a-z0-9._@$()~-])?$/i
- ignorecase yes|no
- این گزینه مشخص میکند که آیا جستجوها برای نگاشتهای group، netgroup، passwd، protocols، rpc، services و shadow با استفاده از تطابق غیرحساس به بزرگی و کوچکی حروف انجام شود یا خیر. تنظیم این گزینه روی yes میتواند سیستم را در معرض آسیبپذیریهای دور زدن مجوزدهی قرار دهد و آسیبپذیریهای مسمومیت حافظه پنهان nscd را ایجاد کند که منجر به منع سرویس میشوند. پیشفرض، انجام فیلتر کردن حساس به بزرگی و کوچکی حروف برای نتایج جستجوی LDAP در نگاشتهای فوق است.
- pam_authc_ppolicy yes|no
- این گزینه مشخص میکند که آیا کنترلهای سیاست گذرواژه هنگام احراز هویت کاربر از سرور LDAP درخواست و مدیریت شوند یا خیر. بهطور پیشفرض، کنترلها در صورت موجود بودن درخواست و مدیریت میشوند.
- pam_authc_search FILTER
- بهطور
پیشفرض nslcd
یک جستجوی LDAP
را با
اطلاعات
هویتی
کاربر پس از
BIND (احراز
هویت) انجام
میدهد تا
اطمینان
حاصل شود که
عملیات BIND
موفق بوده
است. جستجوی
پیشفرض یک
بررسی ساده
است تا مشخص
شود آیا DN
کاربر وجود
دارد یا
خیر.
میتوان یک فیلتر جستجو مشخص کرد تا در عوض استفاده شود. همان جایگزینیهایی که در گزینه pam_authz_search آمده است انجام خواهد شد و جستجو باید دستکم یک مدخل بازگرداند.
مقدار BASE میتواند برای اجبار جستجوی پیشفرض برای DN کاربر استفاده شود.
مقدار NONE میتواند برای نشان دادن اینکه هیچ جستجویی پس از BIND انجام نشود استفاده شود. توجه داشته باشید که برخی از سرورهای LDAP همیشه کد خطای درستی را در نتیجه یک عملیات BIND ناموفق بازنمیگردانند (مثلاً هنگامی که یک گذرواژه خالی ارائه میشود).
- pam_authz_search FILTER
- این گزینه
امکان
تنظیم دقیق
و
انعطافپذیر
بررسی
مجوزدهی را
فراهم
میکند.
فیلتر
جستجوی
مشخصشده
اجرا
میشود و در
صورت تطابق
هر مدخلی،
دسترسی
داده
میشود، در
غیر این
صورت
دسترسی رد
میشود.
فیلتر جستجو میتواند شامل ارجاعات متغیر زیر باشد: $username، $service، $ruser، $rhost، $tty، $hostname، $fqdn، $domain، $dn و $uid. این ارجاعات در فیلتر جستجو با استفاده از همان ساختاری که در بخش عبارتهای نگاشت ویژگی در زیر توضیح داده شده، جایگزین میشوند.
به عنوان مثال، برای بررسی اینکه آیا کاربر دارای مقدار مناسب authorizedService در صورت وجود این ویژگی است (این تقریباً گزینه pam_check_service_attr را در pam_ldap شرکت PADL شبیهسازی میکند):
(&(objectClass=posixAccount)(uid=$username)(|(authorizedService=$service)(!(authorizedService=*))))
گزینه pam_check_host_attr را میتوان با عبارت زیر شبیهسازی کرد:
(&(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\\*)))
این گزینه میتواند چندین بار مشخص شود و تمام جستجوهای مشخصشده باید دستکم یک مدخل بازگردانند تا دسترسی داده شود.
- pam_password_prohibit_message "MESSAGE"
- اگر این گزینه تنظیم شود، تغییر گذرواژه با استفاده از pam_ldap رد میشود و پیام مشخصشده در عوض به کاربر نمایش داده خواهد شد. از این پیام میتوان برای هدایت کاربر به روشی جایگزین جهت تغییر گذرواژهاش استفاده کرد.
- reconnect_invalidate DB,DB,...
- اگر این
گزینه
تنظیم شود،
nslcd تلاش
میکند تا
حافظههای
پنهان
خارجی
مشخصشده
را هنگام
راهاندازی
و هر زمان
که اتصال به
سرور LDAP پس از
یک خطا
دوباره
برقرار
شود، پاک
کند.
پارامتر DB میتواند به یکی از نگاشتهای nsswitch اشاره کند، که در این حالت با nscd تماس گرفته میشود تا حافظه پنهان خود را برای پایگاه داده مشخصشده پاک کند. اگر DB برابر nfsidmap باشد، با nfsidmap تماس گرفته میشود تا حافظه پنهان خود را پاک کند.
استفاده از این گزینه تضمین میکند که حافظههای پنهان خارجی از اطلاعات نادرست (معمولاً عدم وجود کاربران) که ممکن است به دلیل در دسترس نبودن سرور LDAP ایجاد شده باشد، پاک شوند.
- cache CACHE TIME [TIME]
- مدت زمانی
را که
مدخلها در
حافظه
پنهان
داخلی
مشخصشده
نگهداری
میشوند،
پیکربندی
میکند.
اولین مقدار TIME زمان نگهداری مدخلهای یافتشده را در حافظه پنهان مشخص میکند. دومین مقدار TIME زمان بهخاطر سپردن اینکه یک مدخل خاص یافت نشد را مشخص میکند. اگر پارامتر دوم ارائه نشود، همانند پارامتر اول در نظر گرفته میشود.
مقادیر زمانی به صورت یک عدد و به دنبال آن s برای ثانیه، m برای دقیقه، h برای ساعت یا d برای روز مشخص میشوند. برای غیرفعال کردن حافظه پنهان از 0 یا off استفاده کنید.
در حال حاضر، فقط حافظه پنهان dn2uid پشتیبانی میشود که برای به خاطر سپردن جستجوهای DN به نام کاربری در هنگام استفاده از ویژگی member به کار میرود. مقدار زمانی پیشفرض برای این حافظه پنهان 15m است.
نگاشتهای پشتیبانیشده (SUPPORTED MAPS)
نگاشتهای زیر پشتیبانی میشوند. در گزینههای بالا از آنها به عنوان MAP یاد شده است.
- alias[es]
- نامهای مستعار رایانامه (ایمیل). توجه داشته باشید که اکثر سرورهای رایانامه از رابط NSS برای درخواست نامهای مستعار استفاده نمیکنند و پرونده /etc/aliases را خودشان پردازش میکنند.
- ether[s]
- شمارههای اترنت (آدرسهای مک).
- group
- گروههای پازیکس (Posix).
- host[s]
- نامهای میزبان.
- netgroup
- گروههای میزبان و کاربر مورداستفاده برای کنترل دسترسی.
- network[s]
- شمارههای شبکه.
- passwd
- کاربران پازیکس (Posix).
- protocol[s]
- تعاریف پروتکل (مانند موارد موجود در /etc/protocols).
- rpc
- نامها و شمارههای فراخوانی روال از راه دور (RPC).
- service[s]
- نامها و شمارههای سرویسهای شبکه.
- shadow
- اطلاعات سایه (shadow) گذرواژه کاربر.
عبارتهای نگاشت ویژگی (ATTRIBUTE MAPPING EXPRESSIONS)
برای برخی از ویژگیها میتوان از یک عبارت نگاشت برای ساخت مقدار نهایی استفاده کرد. این کار در حال حاضر فقط برای ویژگیهایی امکانپذیر است که نیازی به استفاده در فیلترهای جستجو ندارند. این عبارتها زیرمجموعهای از عبارتهای رشتهای داخل گیومه دوگانه در پوسته بورن (POSIX) هستند. به جای جایگزینی متغیر، جستجوهای ویژگی روی مدخل جاری انجام شده و مقدار ویژگی جایگزین میشود. عبارتهای زیر پشتیبانی میشوند:
- "${attr}" (یا به طور خلاصه "$attr")
- مقدار ویژگی را جایگزین میکند
- "${attr:-word}"
- (استفاده از پیشفرض) مقدار ویژگی را جایگزین میکند یا اگر ویژگی تنظیم نشده یا خالی باشد، کلمه word را جایگزین میکند
- "${attr:+word}"
- (استفاده از جایگزین) در صورتی که ویژگی تنظیم شده باشد، word را جایگزین میکند، در غیر این صورت رشته خالی جایگزین میشود
- "${attr:offset:length}"
- به تعداد length نویسه (در واقع بایت) را با شروع از موقعیت offset (که شمارش آن از صفر آغاز میشود) جایگزین میکند؛ در صورتی که رشته جایگزینشده بیش از حد طولانی باشد، کوتاه میشود؛ به ویژه، اگر length برابر صفر باشد یا offset خارج از رشته اصلی قرار گیرد، طول آن میتواند صفر باشد
- "${attr#word}"
- کوتاهترین تطابق ممکن از word را از سمت چپ مقدار ویژگی حذف میکند
- "${attr##word}"
- طولانیترین تطابق ممکن از word را از سمت چپ مقدار ویژگی حذف میکند (فقط در pynslcd)
- "${attr%word}"
- کوتاهترین تطابق ممکن از word را از سمت راست مقدار ویژگی حذف میکند (فقط در pynslcd)
- "${attr%%word}"
- طولانیترین تطابق ممکن از word را از سمت راست مقدار ویژگی حذف میکند (فقط در pynslcd)
در nslcd تنها عبارت تطابق # پشتیبانی میشود و آن هم فقط با نماد عام ? عمل میکند. پیادهسازی pynslcd از تطابق کامل پشتیبانی میکند.
نویسههای گیومه (")، دلار ($) و بکاسلش (\) باید با یک بکاسلش (\) گریز (اسکیپ) داده شوند.
این عبارتها بررسی میشوند تا ویژگیهای مناسب به طور خودکار از LDAP واکشی شوند. چند مثال برای نشان دادن نحوه استفاده از این عبارتها در نگاشت ویژگی:
- map shadow shadowFlag "${shadowFlag:-0}"
- استفاده از ویژگی shadowFlag، با استفاده از مقدار 0 به عنوان پیشفرض
- map passd homeDirectory "${homeDirectory:-/home/$uid}"
- استفاده از ویژگی uid برای ساخت مقدار homeDirectory در صورتی که آن ویژگی موجود نباشد
- map shadow shadowExpire "${isDisabled:+100}"
- اگر ویژگی isDisabled تنظیم شده باشد، ۱۰۰ بازگردانده میشود، در غیر این صورت مقدار خالی میماند
- map shadow userPassword "${userPassword#{crypt\}}"
- پیشوند {crypt} را از ویژگی userPassword حذف میکند و مقدار خام هش را بازمیگرداند
فایلها (FILES)
- /etc/nslcd.conf
- پرونده اصلی پیکربندی
- /etc/nsswitch.conf
- پرونده پیکربندی سوئیچ سرویس نام (Name Service Switch)
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
این راهنما توسط Arthur de Jong <arthur@arthurdejong.org> نوشته شده است و بر اساس راهنمای nss_ldap(5) توسعهیافته توسط شرکت .PADL Software Pty Ltd میباشد.
| Feb 2025 | Version 0.9.13 |