.lf 1 "- .TH SLAPD.CONF 5 "2026/03/09" "OpenLDAP 2.6.13" .\" Copyright 1998-2026 The OpenLDAP Foundation All Rights Reserved. .\" Copying restrictions apply. See COPYRIGHT/LICENSE. .\" $OpenLDAP$ .SH "نام (NAME)" slapd.conf \- فایل پیکربندی برای slapd، دیمن مستقل LDAP .SH "خلاصه دستور (SYNOPSIS)" /etc/openldap/slapd.conf .SH "توضیحات (DESCRIPTION)" فایل .B /etc/openldap/slapd.conf حاوی اطلاعات پیکربندی برای دیمن .BR slapd (8) است. این فایل پیکربندی همچنین توسط ابزارهای SLAPD شامل .BR slapacl (8)، .BR slapadd (8)، .BR slapauth (8)، .BR slapcat (8)، .BR slapdn (8)، .BR slapindex (8)، .BR slapmodify (8) و .BR slaptest (8) استفاده می‌شود. .LP فایل .B slapd.conf شامل مجموعه‌ای از گزینه‌های پیکربندی سراسری است که برای .B slapd به‌طور کلی (از جمله تمام بک‌اندها) اعمال می‌شوند، و به دنبال آن صفر یا چند تعریف بک‌اند پایگاه‌داده که حاوی اطلاعات خاص یک نمونه بک‌اند هستند می‌آید. گزینه‌های پیکربندی به حروف بزرگ و کوچک حساس نیستند (case-insensitive)؛ اما مقدار آن‌ها، مورد به مورد، ممکن است به حروف بزرگ و کوچک حساس باشد. .LP قالب کلی .B slapd.conf به شرح زیر است: .LP .nf # comment - these options apply to every database # first database definition & configuration options database # subsequent database definitions & configuration options ... .fi .LP می‌توان هر تعداد بخش خاص بک‌اند را که لازم است قرار داد. گزینه‌های سراسری را می‌توان در یک بک‌اند لغو کرد (برای گزینه‌هایی که بیش از یک بار ظاهر می‌شوند، آخرین باری که در فایل .B slapd.conf آمده‌اند استفاده می‌شود). .LP اگر خطی با نویسه فاصله آغاز شود، به عنوان ادامه خط قبلی در نظر گرفته می‌شود. هیچ خط فیزیکی نباید بیش از ۲۰۰۰ بایت طول داشته باشد. .LP خطوط خالی و خطوط توضیحات که با نویسه `#' آغاز می‌شوند نادیده گرفته می‌شوند. توجه: خطوط ادامه قبل از پردازش توضیحات باز می‌شوند (unwrap می‌شوند). .LP آرگومان‌ها در خطوط پیکربندی با فاصله از هم جدا می‌شوند. اگر یک آرگومان حاوی فاصله باشد، آرگومان باید درون علامت نقل‌قول دوتایی قرار گیرد. اگر آرگومان حاوی یک علامت نقل‌قول دوتایی (`"') یا نویسه بک‌اسلش (`\\') باشد، باید پیش از آن نویسه یک بک‌اسلش قرار داده شود. .LP گزینه‌های پیکربندی خاصِ موجود، در ادامه در بخش‌های گزینه‌های پیکربندی سراسری، گزینه‌های عمومی بک‌اند، و گزینه‌های عمومی پایگاه‌داده مورد بحث قرار گرفته‌اند. گزینه‌های خاص بک‌اند در صفحات راهنمای .B slapd\-(5) مورد بحث قرار گرفته‌اند. برای جزئیات بیشتر در مورد فایل پیکربندی slapd به «راهنمای مدیر OpenLDAP» مراجعه کنید. .SH "گزینه‌های پیکربندی سراسری (GLOBAL CONFIGURATION OPTIONS)" گزینه‌های تشریح‌شده در این بخش برای تمام بک‌اندها اعمال می‌شوند، مگر اینکه صریحاً در تعریف یک بک‌اند بازنویسی شده باشند. آرگومان‌هایی که باید با متن واقعی جایگزین شوند داخل علامت‌های <> نشان داده شده‌اند. .TP .B access to "[ by ]+" اعطای دسترسی (مشخص‌شده با ) به مجموعه‌ای از مدخل‌ها و/یا مشخصه‌ها (مشخص‌شده با ) توسط یک یا چند درخواست‌کننده (مشخص‌شده با ). اگر هیچ کنترل دسترسی وجود نداشته باشد، خط‌مشی پیش‌فرض به هر کسی اجازه می‌دهد هر چیزی را بخواند اما به‌روزرسانی‌ها را به rootdn محدود می‌کند. (به عنوان مثال، "access to * by * read"). کاربر rootdn همواره می‌تواند همه‌چیز را بخواند و بنویسد! برای جزئیات بیشتر به .BR slapd.access (5) و «راهنمای مدیر OpenLDAP» مراجعه کنید. .TP .B allow مجموعه‌ای از قابلیت‌ها را (که با فاصله از هم جدا شده‌اند) برای مجاز بودن مشخص می‌کند (پیش‌فرض هیچ‌کدام است). .B bind_v2 پذیرش درخواست‌های بایند LDAPv2 را مجاز می‌کند. توجه داشته باشید که .BR slapd (8) به‌طور واقعی LDAPv2 (استاندارد RFC 1777 که اکنون تاریخی RFC 3494 است) را پیاده‌سازی نمی‌کند. .B bind_anon_cred بایند ناشناس را هنگامی که اطلاعات اعتبارسنجی خالی نیستند (مثلاً هنگامی که DN خالی است) مجاز می‌سازد. .B bind_anon_dn بایند احرازهویت‌نشده (ناشناس) را هنگامی که DN خالی نیست مجاز می‌سازد. .B update_anon پردازش عملیات به‌روزرسانی احرازهویت‌نشده (ناشناس) را مجاز می‌کند (مشروط به کنترل‌های دسترسی و سایر محدودیت‌های مدیریتی). .B proxy_authz_anon پردازش کنترل احراز هویت وکالتی احرازهویت‌نشده (ناشناس) را مجاز می‌کند (مشروط به کنترل‌های دسترسی، اعطای مجوز و سایر محدودیت‌های مدیریتی). .TP .B argsfile نام (مطلق) فایلی که خط فرمان سرور .B slapd (نام برنامه و گزینه‌ها) را در خود نگه می‌دارد. .TP .B attributeoptions [option-name]... گزینه‌های مشخصه برچسب‌گذاری یا پیشوندهای برچسب/محدوده گزینه را تعریف می‌کند. گزینه‌ها نباید به `\-' ختم شوند؛ پیشوندها باید به `\-' ختم شوند. پیشوند `lang\-' از پیش تعریف شده است. اگر از دستورالعمل .B attributeoptions استفاده کنید، `lang\-' دیگر تعریف‌شده نخواهد بود و اگر می‌خواهید تعریف شود باید آن را صریحاً مشخص کنید. توصیف یک مشخصه با یک گزینه برچسب‌گذاری، یک زیرنوع از آن توصیف مشخصه بدون گزینه است. به جز این، گزینه‌های تعریف‌شده به این روش معنای خاص دیگری ندارند. پیشوندهای تعریف‌شده به این روش مانند گزینه‌های `lang\-' عمل می‌کنند: آن‌ها یک پیشوند برای گزینه‌های برچسب‌گذاری که با آن پیشوند شروع می‌شوند تعریف می‌کنند. به این معنی که اگر پیشوند `x\-foo\-' را تعریف کنید، می‌توانید از گزینه `x\-foo\-bar' استفاده کنید. علاوه بر این، در یک جستجو یا مقایسه، یک پیشوند یا نام محدوده (با یک `\-' پایانی) با تمام گزینه‌هایی که با آن نام شروع می‌شوند، و همچنین با گزینه دارای نام محدوده بدون `\-' پایانی مطابقت دارد. یعنی `x\-foo\-bar\-' با `x\-foo\-bar' و `x\-foo\-bar\-baz' تطابق پیدا می‌کند. استاندارد RFC 4520 گزینه‌هایی را که با `x\-' شروع می‌شوند برای آزمایش‌های خصوصی رزرو کرده است. سایر گزینه‌ها باید در IANA ثبت شوند، به بخش ۳.۵ از RFC 4520 مراجعه کنید. همچنین OpenLDAP گزینه `binary' را به‌طور توکار دارد، اما این یک گزینه انتقال است، نه گزینه برچسب‌گذاری. .HP .hy 0 .B attributetype "(\ \ [NAME\ ]\ [DESC\ ]\ [OBSOLETE]\ [SUP\ ]\ [EQUALITY\ ]\ [ORDERING\ ]\ [SUBSTR\ ]\ [SYNTAX\ ]\ [SINGLE\-VALUE]\ [COLLECTIVE]\ [NO\-USER\-MODIFICATION]\ [USAGE\ ]\ )" .RS یک نوع مشخصه را با استفاده از نحو LDAPv3 تعریف‌شده در RFC 4512 مشخص می‌کند. تجزیه‌کننده slapd با مجاز دانستن استفاده از شکل‌های رشته‌ای و همچنین OIDهای عددی برای OID مشخصه و OID نحو مشخصه، تعریف RFC 4512 را گسترش می‌دهد. (به توضیحات .B objectidentifier مراجعه کنید.) .RE .TP .B authid\-rewrite توسط چارچوب احراز هویت برای تبدیل نام‌های کاربری ساده به یک DN در LDAP برای اهداف مجوزدهی استفاده می‌شود. هدف آن مشابه هدف .BR authz-regexp (در زیر ببینید) است. پیشوند \fIauthid\-\fP با مجموعه‌ای از قوانین مشابه موارد شرح‌داده‌شده در .BR slapo\-rwm (5) برای بازنویسی داده‌ها دنبال می‌شود (پیشوند \fIrwm\-\fP را با \fIauthid\-\fP جایگزین کنید). قوانین .B authid\-rewrite و .B authz\-regexp نباید با یکدیگر ترکیب شوند. .TP .B authz\-policy برای تعیین قوانینی که باید برای احراز هویت وکالتی (Proxy Authorization) استفاده شوند به‌کار می‌رود. احراز هویت وکالتی به کلاینت اجازه می‌دهد تا با استفاده از اطلاعات اعتبارسنجی یک کاربر با سرور احراز هویت کند، اما هویت متفاوتی را برای اهداف اعطای مجوز و کنترل دسترسی تعیین نماید. این سازوکار اساساً به کاربر A امکان می‌دهد تا با گذرواژه کاربر A به عنوان کاربر B وارد سیستم شود. فلگ .B none احراز هویت وکالتی را غیرفعال می‌کند. این تنظیم پیش‌فرض است. فلگ .B from از قوانین موجود در مشخصه .I authzFrom مربوط به DN مجوزدهی استفاده خواهد کرد. فلگ .B to از قوانین موجود در مشخصه .I authzTo مربوط به DN احراز هویت استفاده خواهد کرد. فلگ .BR any ، یک نام مستعار برای مقدار منسوخ‌شده .BR both ، هر یک از موارد بالا را که زودتر موفق شود مجاز می‌داند (که با ترتیب .BR to ، .B from بررسی می‌شود). فلگ .B all نیازمند موفقیت هر دو مجوزدهی است. .LP .RS این قوانین، سازوکارهایی برای تعیین این هستند که کدام هویت‌ها مجاز به انجام احراز هویت وکالتی هستند. مشخصه .I authzFrom در یک مدخل مشخص می‌کند که چه کاربران دیگری مجاز به ورود وکالتی به این مدخل هستند. مشخصه .I authzTo در یک مدخل مشخص می‌کند که این کاربر می‌تواند به عنوان چه کاربران دیگری مجوز بگیرد. استفاده از قوانین .I authzTo در صورتی که کاربران مجاز به نوشتن مقادیر دلخواه در این مشخصه باشند می‌تواند به راحتی مورد سوءاستفاده قرار گیرد. به‌طور کلی مشخصه .I authzTo باید با فهرست‌های کنترل دسترسی (ACL) محافظت شود به‌طوری که تنها کاربران ممتاز بتوانند آن را تغییر دهند. مقدار .I authzFrom و .I authzTo یک .B هویت یا مجموعه‌ای از هویت‌ها را توصیف می‌کند؛ این مقدار می‌تواند پنج شکل داشته باشد: .RS .TP .B ldap:///??[]? .RE .RS .B dn[.]: .RE .RS .B u[.[/]]: .RE .RS .B group[/objectClass[/attributeType]]: .RE .RS .B .RE .RS .B :={exact|onelevel|children|subtree|regex} .RE شکل اول یک .B URI معتبر LDAP است که در آن بخش‌های .IR : ، بخش .I و بخش .I باید غایب باشند، تا جستجو به‌صورت محلی بر روی .I authzFrom یا .IR authzTo انجام شود. .LP شکل دوم یک .BR DN است. اصلاح‌کننده‌های اختیاری .B dnstyle شامل .IR exact ، .IR onelevel ، .IR children و .I subtree تطابق‌های دقیق، یک‌سطحی، فرزندان و زیردرخت را ارائه می‌دهند که باعث می‌شوند .I بر اساس قوانین عادی‌سازی DN نرمال شود. اصلاح‌کننده ویژه .B dnstyle به نام .I regex باعث می‌شود که .I به‌عنوان یک عبارت منظم («توسعه‌یافته») POSIX در نظر گرفته شود، همان‌طور که در .BR regex (7) و/یا .BR re_format (7) مورد بحث قرار گرفته است. الگوی .I * به معنای هر DN غیرناشناس است. .LP شکل سوم یک .BR id مربوط به SASL است. فیلدهای اختیاری .I و .I امکان تعیین یک .BR مکانیزم SASL، و در نهایت یک .BR قلمرو (realm) SASL را برای مکانیزم‌هایی که از آن پشتیبانی می‌کنند فراهم می‌سازند. نیاز به امکان تعیین مکانیزم هنوز مورد بحث است، و کاربران اکیداً از تکیه بر این قابلیت منع می‌شوند. .LP شکل چهارم مشخصه یک گروه است. این شکل از کلیدواژه .BR group تشکیل شده که به‌صورت اختیاری با تعیین .B objectClass و .BR attributeType گروه همراه می‌شود. مقدار پیش‌فرض .B objectClass برابر .IR groupOfNames است. مقدار پیش‌فرض .B attributeType برابر .IR member است. گروه با DN معادل .B با دامنه پایه (base scope) و فیلتر روی .BR objectClass مشخص‌شده جستجو می‌شود. مقادیر .B attributeType حاصل برای DN اظهارشده جستجو می‌شوند. .LP شکل پنجم برای سازگاری با گذشته ارائه شده است. اگر هیچ نوع هویتی ارائه نشود، یعنی فقط .B حضور داشته باشد، یک .I DN دقیق فرض می‌شود؛ در نتیجه، .B تحت عادی‌سازی DN قرار می‌گیرد. .LP از آنجا که تفسیر .I authzFrom و .I authzTo می‌تواند بر امنیت تأثیر بگذارد، به کاربران اکیداً توصیه می‌شود که صریحاً نوع تعیین هویت مورد استفاده را مشخص کنند. زیرمجموعه‌ای از این قوانین می‌تواند به‌عنوان آرگومان سوم در دستورالعمل .B authz\-regexp (در زیر ببینید) استفاده شود؛ به‌ویژه شکل‌های .IR URI ، به شرطی که دقیقاً به یک مدخل ختم شود، و شکل‌های .IR dn.exact: . .RE .TP .B authz\-regexp توسط چارچوب احراز هویت برای تبدیل نام‌های کاربری ساده، مانند موارد ارائه‌شده توسط زیرسیستم SASL، یا استخراج‌شده از گواهی‌ها در صورت SASL EXTERNAL مبتنی بر گواهی، یا ارائه‌شده در کنترل «احراز هویت وکالتی‌شده» RFC 4370، به یک DN در LDAP برای اهداف صدور مجوز استفاده می‌شود. توجه داشته باشید که DN حاصل برای معتبر شناخته شدن نیازی به ارجاع به یک مدخل موجود ندارد. هنگامی که یک درخواست مجوز از زیرسیستم SASL دریافت می‌شود، مقادیر .BR USERNAME ، .BR REALM و .B MECHANISM مربوط به SASL، در صورت موجود بودن اخذ شده و در یک نام به شکل زیر ترکیب می‌شوند: .RS .RS .TP .B UID=[[,CN=],CN=],CN=auth .RE این نام سپس با عبارت منظم («توسعه‌یافته») POSIX در .B match مقایسه می‌شود و اگر تطابق موفقیت‌آمیز باشد، نام با رشته .B replace جایگزین می‌شود. اگر رشته‌های عام (wildcard) در عبارت منظم .B match وجود داشته باشند که در پرانتز قرار گرفته‌اند، مثلاً: .RS .TP .B UID=([^,]*),CN=.* .RE آنگاه بخشی از نام که با نویسه عام تطابق یافته در متغیر نگه‌دارنده شماره‌دار $1 ذخیره می‌شود. اگر رشته‌های عام دیگری در پرانتز وجود داشته باشند، رشته‌های منطبق در $2، $3، تا $9 قرار می‌گیرند. سپس این نگه‌دارنده‌ها می‌توانند در رشته .B replace استفاده شوند، مثلاً: .RS .TP .B UID=$1,OU=Accounts,DC=example,DC=com .RE نام جایگزین‌شده می‌تواند یک DN باشد، یعنی رشته‌ای با پیشوند "dn:"، یا یک URI مربوط به LDAP. اگر دومی باشد، سرور از این URI برای جستجو در پایگاه(های) داده خود استفاده می‌کند و اگر جستجو دقیقاً یک مدخل را بازگرداند، نام با DN آن مدخل جایگزین می‌شود. URI مربوط به LDAP نباید هیچ مؤلفه hostport، attrs، یا extensions داشته باشد، اما فیلتر اجباری است، مثلاً: .RS .TP .B ldap:///OU=Accounts,DC=example,DC=com??one?(UID=$1) .RE بخش پروتکل URI باید دقیقاً .BR ldap باشد. توجه داشته باشید که این جستجو مشروط به کنترل‌های دسترسی است. به‌طور خاص، هویت احراز هویت باید دسترسی "auth" را در موضوع داشته باشد. چندین گزینه .B authz\-regexp می‌تواند در فایل پیکربندی برای امکان تطابق و جایگزینی چندگانه ارائه شود. الگوهای تطابق به ترتیبی که در فایل ظاهر می‌شوند بررسی می‌شوند و با رسیدن به اولین تطابق موفق متوقف می‌گردند. .\".B Caution: .\".Because the plus sign + is a character recognized by the regular expression engine, .\".and it will appear in names that include a REALM, be careful to escape the .\".plus sign with a backslash \\+ to remove the character's special meaning. .RE .TP .B concurrency سطح همروندی مورد نظر را مشخص می‌کند. به‌عنوان یک راهنمایی (hint) به سیستم نخ‌های زیرین ارائه می‌شود. پیش‌فرض این است که هیچ راهنمایی ارائه نشود. این تنظیم تنها در برخی پلتفرم‌ها که در آن‌ها تناظر یک‌به‌یک بین نخ‌های کاربر و نخ‌های هسته وجود ندارد معنادار است. .TP .B conn_max_pending حداکثر تعداد درخواست‌های معلق برای یک نشست ناشناس را مشخص می‌کند. اگر درخواست‌ها سریع‌تر از توانایی پردازش سرور ارسال شوند، تا این سقف در صف قرار می‌گیرند. اگر از این حد فراتر رود، نشست بسته می‌شود. پیش‌فرض 100 است. .TP .B conn_max_pending_auth حداکثر تعداد درخواست‌های معلق برای یک نشست احرازهویت‌شده را مشخص می‌کند. پیش‌فرض 1000 است. .TP .B defaultsearchbase یک پایه جستجوی پیش‌فرض را برای زمانی مشخص می‌کند که کلاینت درخواست جستجوی غیرپایه‌ای (non-base) را با یک DN پایه خالی ارسال می‌کند. درخواست‌های جستجو در دامنه پایه با DN پایه خالی تحت تأثیر قرار نمی‌گیرند. .TP .B disallow مجموعه‌ای از قابلیت‌ها را (که با فاصله از هم جدا شده‌اند) برای غیرمجاز کردن مشخص می‌کند (پیش‌فرض هیچ‌کدام است). .B bind_anon پذیرش درخواست‌های بایند ناشناس را غیرفعال می‌کند. توجه داشته باشید که این تنظیم مانع از دسترسی ناشناس به دایرکتوری نمی‌شود (به "require authc" مراجعه کنید). .B bind_simple احراز هویت ساده (بایند) را غیرفعال می‌کند. .B tls_2_anon اجبار نشست به وضعیت ناشناس در هنگام دریافت عملیات StartTLS را غیرفعال می‌کند (همچنین به .BR tls_authc مراجعه کنید). .B tls_authc در صورت احراز هویت بودن، عملیات StartTLS را غیرمجاز می‌کند (همچنین به .BR tls_2_anon مراجعه کنید). .B proxy_authz_non_critical پذیرش کنترل احراز هویت وکالتی (RFC4370) با وضعیت بحرانی (criticality) تنظیم‌شده روی FALSE را غیرفعال می‌کند. .B dontusecopy_non_critical پذیرش کنترل dontUseCopy (یک کار در حال توسعه) با وضعیت بحرانی تنظیم‌شده روی FALSE را غیرفعال می‌کند. .HP .hy 0 .B ditcontentrule "(\ \ [NAME\ ]\ [DESC\ ]\ [OBSOLETE]\ [AUX\ ]\ [MUST\ ]\ [MAY\ ]\ [NOT\ ]\ )" .RS یک قانون محتوای DIT (قاعده DIT Content Rule) را با استفاده از نحو LDAPv3 تعریف‌شده در RFC 4512 مشخص می‌کند. تجزیه‌کننده slapd با مجاز دانستن استفاده از شکل‌های رشته‌ای و همچنین OIDهای عددی برای OID مشخصه و OID نحو مشخصه، تعریف RFC 4512 را گسترش می‌دهد. (به توضیحات .B objectidentifier مراجعه کنید.) .RE .TP .B gentlehup { on | off } سیگنال SIGHUP تنها باعث تلاش برای خاموش شدن «ملایم» می‌شود: .B Slapd گوش دادن به اتصالات جدید را متوقف می‌کند، اما اتصالات کلاینت‌های فعلی را نمی‌بندد. با این حال، عملیات نوشتن بعدی خطای unwilling-to-perform را برمی‌گردانند. Slapd زمانی خاتمه می‌یابد که همه کلاینت‌ها اتصالات خود را ببندند (اگر اصلاً ببندند)، یا \- مانند قبل \- اگر سیگنال SIGTERM دریافت کند. این می‌تواند زمانی مفید باشد که بخواهید سرور را خاتمه دهید و سرور .B slapd جدیدی را .B با پایگاه‌داده دیگری، بدون ایجاد اختلال برای کلاینت‌های فعال فعلی راه‌اندازی کنید. پیش‌فرض off است. ممکن است مایل باشید از .B idletimeout همراه با این گزینه استفاده کنید. .TP .B idletimeout تعداد ثانیه‌های انتظار قبل از بستن اجباری یک اتصال کلاینت غیرفعال (idle) را مشخص می‌کند. تنظیم 0 این قابلیت را غیرفعال می‌کند. پیش‌فرض 0 است. ممکن است بخواهید گزینه .B writetimeout را نیز تنظیم کنید. .TP .B include اطلاعات پیکربندی اضافی را قبل از ادامه با خط بعدی فایل فعلی، از فایل داده‌شده می‌خواند. .TP .B index_hash64 { on | off } استفاده از هش ۶۴ بیتی برای نمایه‌سازی. پیش‌فرض استفاده از هش‌های ۳۲ بیتی است. این هش‌ها برای نمایه‌سازی برابری و زیررشته استفاده می‌شوند. نسخه ۶۴ بیتی ممکن است برای جلوگیری از برخورد نمایه زمانی که تعداد مقادیر نمایه‌شده از حدود ۶۴ میلیون فراتر می‌رود مورد نیاز باشد. (توجه داشته باشید که نمایه‌سازی زیررشته به ازای هر مقدار مشخصه واقعی، چندین مقدار نمایه تولید می‌کند.) نمایه‌های تولیدشده با هش‌های ۳۲ بیتی با نسخه ۶۴ بیتی ناسازگار هستند و برعکس. هنگام تغییر این تنظیم، هر پایگاه‌داده موجود باید به‌طور کامل دوباره بارگذاری شود. این دستورالعمل تنها بر روی پردازنده‌های ۶۴ بیتی پشتیبانی می‌شود. .TP .B index_intlen طول کلید را برای نمایه‌های اعداد صحیح مرتب‌شده مشخص می‌کند. پرارزش‌ترین بایت‌های عدد صحیح باینری برای کلیدهای نمایه استفاده می‌شوند. مقدار پیش‌فرض 4 است که نمایه‌سازی دقیق را برای مقادیر ۳۱ بیتی فراهم می‌کند. برای نمایه‌سازی مقادیر بسیار بزرگ از یک نمایش ممیز شناور استفاده می‌شود. .TP .B index_substr_if_maxlen حداکثر طول را برای نمایه‌های زیرآغازین و زیرپایانی (subinitial و subfinal) مشخص می‌کند. تنها این تعداد نویسه از یک مقدار مشخصه توسط توابع نمایه‌سازی پردازش می‌شوند؛ نویسه‌های اضافی نادیده گرفته می‌شوند. پیش‌فرض 4 است. .TP .B index_substr_if_minlen حداقل طول را برای نمایه‌های زیرآغازین و زیرپایانی مشخص می‌کند. یک مقدار مشخصه باید حداقل این تعداد نویسه داشته باشد تا توسط توابع نمایه‌سازی پردازش شود. پیش‌فرض 2 است. .TP .B index_substr_any_len طول استفاده‌شده برای نمایه‌های subany را مشخص می‌کند. یک مقدار مشخصه برای پردازش باید حداقل این تعداد نویسه داشته باشد. مقادیر مشخصه طولانی‌تر از این طول در بخش‌هایی به این طول پردازش می‌شوند. پیش‌فرض 4 است. نمایه subany همچنین در جستجوهای نمایه subinitial و subfinal زمانی که رشته فیلتر طولانی‌تر از مقدار .I index_substr_if_maxlen باشد استفاده خواهد شد. .TP .B index_substr_any_step گام‌های استفاده‌شده در جستجوهای نمایه subany را مشخص می‌کند. این مقدار آفست را برای بخش‌هایی از رشته فیلتر که برای جستجوی نمایه subany پردازش می‌شوند تنظیم می‌کند. پیش‌فرض 2 است. به عنوان مثال، با مقادیر پیش‌فرض، جستجویی با استفاده از فیلتر "cn=*abcdefgh*" جستجوهای نمایه‌ای را برای "abcd"، "cdef" و "efgh" تولید می‌کند. .LP توجه: پشتیبانی از نمایه‌سازی به بک‌اند خاصِ مورد استفاده بستگی دارد. همچنین، تغییر این تنظیمات معمولاً نیازمند حذف هر نمایه‌ای است که به این پارامترها وابسته است و ایجاد مجدد آن‌ها با .BR slapindex (8) می‌باشد. .HP .hy 0 .B ldapsyntax "(\ \ [DESC\ ]\ [X\-SUBST ]\ )" .RS یک نحو LDAP را با استفاده از نحو LDAPv3 تعریف‌شده در RFC 4512 مشخص می‌کند. تجزیه‌کننده slapd با مجاز دانستن استفاده از شکل‌های رشته‌ای و همچنین OIDهای عددی برای OID نحو، تعریف RFC 4512 را گسترش می‌دهد. (به توضیحات .B objectidentifier مراجعه کنید.) تجزیه‌کننده slapd همچنین از پسوند .B X\-SUBST (یک پسوند اختصاصی OpenLDAP) پیروی می‌کند که امکان می‌دهد با استفاده از دستورالعمل .B ldapsyntax یک نحو پیاده‌سازی‌نشده را همراه با نحو دیگری، یعنی مقدار پسوند .IR substitute-syntax ، به‌عنوان جایگزین موقت آن تعریف کرد. مورد .I substitute-syntax باید تعریف شده باشد. این کار امکان می‌دهد تا انواع مشخصه‌هایی که از نحوهای پیاده‌سازی‌نشده استفاده می‌کنند، با OID نحو صحیح تعریف شوند. مگر اینکه .B X\-SUBST استفاده شود، این دستور پیکربندی منجر به بروز خطا خواهد شد، چرا که هیچ گرداننده‌ای به ساختار نحو حاصل متصل نخواهد بود. .RE .TP .B listener-threads تعداد نخ‌هایی (threads) را که باید برای مدیر اتصال استفاده شود مشخص می‌کند. مقدار پیش‌فرض ۱ است و این مقدار معمولاً برای حداکثر ۱۶ هسته پردازنده مناسب و کافی است. این مقدار باید توانی از ۲ تنظیم شود. .TP .B localSSF فاکتور استحکام امنیتی (SSF) را برای نشست‌های محلی LDAP، مانند نشست‌های مربوط به شنونده ldapi://، مشخص می‌کند. برای شرح مقادیر SSF، توضیحات گزینه .B minssf در .B sasl-secprops را ببینید. مقدار پیش‌فرض ۷۱ است. .TP .B logfile فایلی را برای ثبت پیام‌های اشکال‌زدایی slapd مشخص می‌کند. این پیام‌ها ارتباطی با پیام‌های مشخص‌شده توسط پارامتر پیکربندی .B loglevel ندارند. این تنظیم تنها دیمن slapd را تحت تأثیر قرار می‌دهد و هیچ اثری بر ابزارهای خط فرمان ندارد. به‌طور پیش‌فرض، این پیام‌ها تنها به stderr ارسال می‌شوند و در هیچ جای دیگری ثبت نمی‌شوند. مشخص کردن یک logfile پیام‌ها را هم به stderr و هم به فایل لاگ ارسال می‌کند. .TP .B logfile-format debug|syslog-utc|syslog-localtime|rfc3339-utc قالب پیشوند پیام‌های نوشته‌شده در فایل لاگ را مشخص می‌کند. قالب debug همان قالب عادی مورد استفاده برای پیام‌های اشکال‌زدایی slapd است، با یک برچسب زمانی در مبنای شانزده، که پس از آن یک شناسه نخ (thread ID) می‌آید. گزینه‌های دیگر شامل استفاده از پیشوندهای سبک syslog(3) با برچسب‌های زمانی بر حسب UTC یا منطقه زمانی محلی هستند. مقدار پیش‌فرض قالب debug است. .TP .B logfile-only on | off مشخص می‌کند که پیام‌های اشکال‌زدایی تنها به فایل لاگ پیکربندی‌شده ارسال شوند و به stderr نروند. .TP .B logfile-rotate چرخش خودکار (rotation) را برای فایل لاگ پیکربندی‌شده مشخص می‌کند؛ به‌صورت حداکثر تعداد فایل‌های لاگ قدیمی برای نگهداری، حداکثر اندازه بر حسب مگابایت برای رشد فایل لاگ پیش از چرخش، و حداکثر عمر بر حسب ساعت برای استفاده از یک فایل لاگ پیش از چرخش. حداکثر تعداد باید در محدوده ۱ تا ۹۹ باشد. تنظیم Mbytes یا hours روی صفر، به ترتیب بررسی اندازه یا سن فایل را غیرفعال می‌کند. حداقل یکی از مقادیر Mbytes یا hours باید غیرصفر باشد. به‌طور پیش‌فرض هیچ چرخش خودکاری انجام نمی‌شود. .TP .B loglevel [...] سطحی را مشخص می‌کند که در آن دستورهای اشکال‌زدایی و آمار عملیات باید از طریق syslog ثبت شوند (در حال حاضر در تسهیلات LOG_LOCAL4 مربوط به .BR syslogd (8) ثبت می‌شود). این‌ها را باید بیشتر به عنوان زیرسیستم‌ها در نظر گرفت تا سطوح لاگ‌گیری که به تدریج پرحرف‌تر می‌شوند. برخی از پیام‌های با اولویت بالاتر، به محض اینکه هر گونه ثبت لاگی پیکربندی شود، بدون در نظر گرفتن loglevel پیکربندی‌شده ثبت می‌شوند. سطوح لاگ جمع‌پذیر (additive) هستند، و سطوح موجود عبارتند از: .RS .RS .PD 0 .TP .B 1 .B (0x1 trace) ردگیری فراخوانی‌های توابع (trace) .TP .B 2 .B (0x2 packets) اشکال‌زدایی پردازش بسته‌ها .TP .B 4 .B (0x4 args) اشکال‌زدایی سنگین ردگیری (آرگومان‌های توابع) .TP .B 8 .B (0x8 conns) مدیریت اتصالات .TP .B 16 .B (0x10 BER) چاپ بسته‌های ارسالی و دریافتی .TP .B 32 .B (0x20 filter) پردازش فیلترهای جستجو .TP .B 64 .B (0x40 config) پردازش فایل پیکربندی .TP .B 128 .B (0x80 ACL) پردازش فهرست کنترل دسترسی (ACL) .TP .B 256 .B (0x100 stats) اتصالات، عملیات LDAP، نتایج (توصیه‌شده) .TP .B 512 .B (0x200 stats2) ورودی‌های ثبت‌شده مربوط به stats2 ارسال شد .TP .B 1024 .B (0x400 shell) چاپ ارتباطات با پس‌اندهای پوسته (shell backends) .TP .B 2048 .B (0x800 parse) تجزیه مدخل‌ها (entry parsing) \".TP \".B 4096 \".B (0x1000 cache) \"caching (unused) \".TP \".B 8192 \".B (0x2000 index) \"data indexing (unused) .TP .B 16384 .B (0x4000 sync) تکثیر LDAPSync .TP .B 32768 .B (0x8000 none) تنها پیام‌هایی که صرف‌نظر از سطح لاگ تنظیم‌شده ثبت می‌شوند .PD .RE سطح لاگ مورد نظر را می‌توان به صورت یک عدد صحیح منفرد وارد کرد که سطوح مورد نظر را با هم ترکیب می‌کند (از طریق OR بیتی)، چه در مبنای ده و چه در مبنای شانزده، یا به عنوان فهرستی از اعداد صحیح (که در داخل با هم OR می‌شوند)، یا به عنوان فهرستی از نام‌هایی که درون پرانتز نشان داده شده‌اند، به طوری که .LP .nf loglevel 129 loglevel 0x81 loglevel 128 1 loglevel 0x80 0x1 loglevel acl trace .fi .LP با یکدیگر معادل هستند. کلمه کلیدی .B any می‌تواند به عنوان یک میانبر برای فعال کردن لاگ‌گیری در تمام سطوح (معادل با \-1) استفاده شود. کلمه کلیدی .BR none ، یا نمایش عددی معادل آن، باعث ثبت پیام‌هایی می‌شود که صرف‌نظر از loglevel پیکربندی‌شده ثبت می‌شوند. در واقع، اگر loglevel روی ۰ تنظیم شود، هیچ لاگ‌گیری انجام نمی‌گیرد، بنابراین حداقل سطح .B none برای ثبت پیام‌های با اولویت بالا لازم است. توجه داشته باشید که سطوح .BR packets ، .BR BER و .B parse تنها به عنوان خروجی اشکال‌زدایی در stderr در دسترس هستند و به syslog ارسال نمی‌شوند. مقدار پیش‌فرض loglevel برابر با \fBstats\fP است. معمولاً هنگام استفاده از سایر سطوح لاگ نیز باید این سطح گنجانده شود تا به تحلیل گزارش‌ها کمک کند. .RE .TP .B maxfilterdepth حداکثر عمق فیلترهای تودرتو را در درخواست‌های جستجو مشخص می‌کند. مقدار پیش‌فرض ۱۰۰۰ است. .TP .B moduleload [...] نام یک ماژول قابل بارگذاری پویا را برای بارگذاری و هرگونه آرگومان اضافی در صورت پشتیبانی توسط ماژول مشخص می‌کند. نام فایل می‌تواند یک مسیر مطلق یا یک نام فایل ساده باشد. نام‌های غیرمطلق در دایرکتوری‌های مشخص‌شده توسط گزینه .B modulepath جستجو می‌شوند. این گزینه و گزینه .B modulepath تنها در صورتی قابل استفاده هستند که slapd با \-\-enable\-modules کامپایل شده باشد. .TP .B modulepath فهرستی از دایرکتوری‌ها را برای جستجوی ماژول‌های قابل بارگذاری مشخص می‌کند. معمولاً مسیرها با دو نقطه (colon) از هم جدا می‌شوند، اما این به سیستم‌عامل بستگی دارد. مقدار پیش‌فرض /usr/lib/openldap است، که محل قرارگیری ماژول‌ها در نصب استاندارد OpenLDAP می‌باشد. .HP .hy 0 .B objectclass "(\ \ [NAME\ ]\ [DESC\ ]\ [OBSOLETE]\ [SUP\ ]\ [{ ABSTRACT | STRUCTURAL | AUXILIARY }]\ [MUST\ ] [MAY\ ] )" .RS یک objectclass را با استفاده از نحو LDAPv3 تعریف‌شده در RFC 4512 مشخص می‌کند. تجزیه‌کننده slapd تعریف RFC 4512 را با اجازه دادن به استفاده از قالب‌های رشته‌ای در کنار OIDهای عددی برای OID رده شیء (object class OID) گسترش می‌دهد. (توضیحات .B objectidentifier را ببینید.) رده‌های شیء به‌طور پیش‌فرض "STRUCTURAL" هستند. .RE .TP .B objectidentifier "{ | [:] }" یک نام رشته‌ای تعریف می‌کند که معادل OID داده‌شده است. این رشته را می‌توان به جای OID عددی در تعاریف objectclass و ویژگی‌ها به کار برد. نام را می‌توان همچنین با یک پسوند به فرم ":xx" استفاده کرد که در این حالت مقدار "oid.xx" استفاده خواهد شد. .TP .B password\-hash [...] این گزینه یک یا چند هش (hash) را پیکربندی می‌کند تا در تولید گذرواژه‌های کاربر ذخیره‌شده در ویژگی userPassword هنگام پردازش عملیات‌های گسترش‌یافته تغییر گذرواژه LDAP (مطابق RFC 3062) استفاده شوند. مقدار باید یکی از موارد .BR {SSHA} ، .BR {SHA} ، .BR {SMD5} ، .BR {MD5} ، .BR {CRYPT} و .B {CLEARTEXT} باشد. مقدار پیش‌فرض .B {SSHA} است. .B {SHA} و .B {SSHA} از الگوریتم SHA-1 (استاندارد FIPS 160-1) استفاده می‌کنند، که دومی همراه با یک seed (دانه) است. .B {MD5} و .B {SMD5} از الگوریتم MD5 (مطابق RFC 1321) استفاده می‌کنند، که دومی همراه با یک seed است. .B {CRYPT} از .BR crypt (3) استفاده می‌کند. .B {CLEARTEXT} نشان می‌دهد که گذرواژه جدید باید به عنوان متن آشکار (clear text) به userPassword اضافه شود. توجه داشته باشید که این گزینه رفتار برنامه‌های کاربردی عادی کاربر را در مدیریت userPassword هنگام عملیات‌های LDAP Add، Modify یا سایر عملیات LDAP تغییر نمی‌دهد. .TP .B password\-crypt\-salt\-format قالب سالت (salt) ارسال‌شده به .BR crypt (3) را هنگام تولید گذرواژه‌های {CRYPT} (ببینید .BR password\-hash ) در حین پردازش عملیات‌های گسترش‌یافته تغییر گذرواژه LDAP (مطابق RFC 3062) مشخص می‌کند. این رشته باید در قالب .BR sprintf (3) باشد و ممکن است شامل یک (و تنها یک) تبدیل %s باشد. این تبدیل با رشته‌ای از نویسه‌های تصادفی از [A\-Za\-z0\-9./] جایگزین خواهد شد. به عنوان مثال، "%.2s" یک سالت دو نویسه‌ای ارائه می‌دهد و "$1$%.8s" به برخی از نسخه‌های crypt(3) اعلام می‌کند که از الگوریتم MD5 استفاده کنند و یک سالت با ۸ نویسه تصادفی فراهم می‌کند. مقدار پیش‌فرض "%s" است که یک سالت ۳۱ نویسه‌ای ارائه می‌دهد. .TP .B pidfile نام (مطلق) فایلی که شناسه فرایند (PID) سرور .B slapd را در خود نگه می‌دارد (ببینید .BR getpid (2)). .TP .B pluginlog: نام (مطلق) فایلی که شامل پیام‌های لاگ مربوط به افزونه‌های .B SLAPI خواهد بود. برای جزئیات .BR slapd.plugin (5) را ببینید. .TP .B referral ارجاع (referral) برگشتی را در زمانی که .BR slapd (8) نمی‌تواند یک پایگاه‌داده محلی برای پردازش درخواست پیدا کند، مشخص می‌کند. اگر چندین بار مشخص شود، هر نشانی اینترنتی (url) ارائه می‌شود. .TP .B require مجموعه‌ای از شرایط (جداشده با فاصله) را برای الزام مشخص می‌کند (پیش‌فرض none است). این دستورالعمل را می‌توان به‌صورت سراسری و/یا به ازای هر پایگاه‌داده مشخص کرد؛ پایگاه‌های داده شرایط سراسری را به ارث می‌برند، بنابراین مشخصات به ازای هر پایگاه‌داده جمع‌پذیر هستند. .B bind قبل از عملیات راهنما، نیاز به عملیات bind دارد. .B LDAPv3 الزام می‌کند که نشست از نسخه ۳ LDAP استفاده کند. .B authc نیاز به احراز هویت پیش از عملیات راهنما دارد. .B SASL نیاز به احراز هویت SASL پیش از عملیات راهنما دارد. .B strong نیاز به احراز هویت قوی پیش از عملیات راهنما دارد. کلمه کلیدی strong به احراز هویت حفاظت‌شده «ساده» (simple) و همچنین احراز هویت SASL اجازه می‌دهد. .B none می‌تواند برای عدم الزام هیچ شرطی استفاده شود (برای پاک کردن شرایط تعیین‌شده به‌صورت سراسری درون یک پایگاه‌داده خاص مفید است)؛ این مورد باید در ابتدای فهرست شرایط قرار گیرد. .TP .B reverse\-lookup on | off فعال/غیرفعال کردن جستجوی معکوس تأییدنشده نام سرویس‌گیرنده (در صورت کامپایل با \-\-enable\-rlookups، پیش‌فرض .B off است). .TP .B rootDSE نام یک فایل LDIF(5) شامل ویژگی‌های تعریف‌شده توسط کاربر برای root DSE را مشخص می‌کند. این ویژگی‌ها علاوه بر ویژگی‌هایی که به‌طور معمول توسط slapd تولید می‌شوند، بازگردانده می‌شوند. شناسه root DSE مدخلی است حاوی اطلاعاتی درباره سرور و قابلیت‌های آن، در ویژگی‌های عملیاتی. این مدخل دارای DN خالی است و می‌توان آن را به‌طور مثال با دستور زیر خواند: .ti +4 ldapsearch \-x \-b "" \-s base "+" .br برای جزئیات به بخش 5.1 از RFC 4512 مراجعه کنید. .TP .B sasl\-auxprops [...] مشخص می‌کند که کدام افزونه‌های auxprop برای جستجوهای احراز هویت استفاده شوند. مقدار پیش‌فرض خالی است، که فقط از پشتیبانی داخلی slapd استفاده می‌کند. معمولاً به هیچ افزونه auxprop دیگری نیاز نیست. .TP .B sasl\-auxprops\-dontusecopy [...] مشخص می‌کند کدام ویژگی(ها) باید مشمول کنترل «don't use copy» باشند. این امر برای کارکرد برخی مکانیزم‌های SASL مانند OTP در یک محیط تکثیرشده (replicated) ضروری است. ویژگی "cmusaslsecretOTP" مقدار پیش‌فرض است. .TP .B sasl\-auxprops\-dontusecopy\-ignore on | off برای غیرفعال کردن تکثیر ویژگی(های) تعریف‌شده توسط sasl-auxprops-dontusecopy و استفاده از یک مقدار محلی برای آن ویژگی استفاده می‌شود. این به مکانیزم SASL اجازه می‌دهد در صورت آفلاین بودن تأمین‌کننده (provider) به کار خود ادامه دهد. این امر می‌تواند باعث ناسازگاری در تکثیر شود. مقدار پیش‌فرض off است. .TP .B sasl\-host برای مشخص کردن نام دامنه کاملاً واجد شرایط (FQDN) مورد استفاده برای پردازش SASL به کار می‌رود. .TP .B sasl\-realm قلمرو (realm) مربوط به SASL را مشخص می‌کند. پیش‌فرض خالی است. .TP .B sasl\-cbinding none | tls-unique | tls-endpoint نوع پیوند کانال (channel-binding) را مشخص می‌کند؛ همچنین LDAP_OPT_X_SASL_CBINDING را ببینید. پیش‌فرض none است. .TP .B sasl\-secprops برای تعیین ویژگی‌های امنیتی Cyrus SASL استفاده می‌شود. پرچم .B none (بدون هیچ ویژگی دیگر) باعث پاک شدن پیش‌فرض ویژگی‌های پرچم، یعنی "noanonymous,noplain" می‌شود. پرچم .B noplain مکانیزم‌های آسیب‌پذیر در برابر حملات غیرفعال ساده را غیرفعال می‌کند. پرچم .B noactive مکانیزم‌های آسیب‌پذیر در برابر حملات فعال را غیرفعال می‌کند. پرچم .B nodict مکانیزم‌های آسیب‌پذیر در برابر حملات واژه‌نامه‌ای غیرفعال را غیرفعال می‌کند. پرچم .B noanonymous مکانیزم‌هایی را که از ورود ناشناس پشتیبانی می‌کنند غیرفعال می‌کند. پرچم .B forwardsec رازداری پیشرو (forward secrecy) را بین نشست‌ها الزامی می‌کند. پرچم .B passcred مکانیزم‌هایی را الزامی می‌کند که اطلاعات اعتباری کلاینت را ارسال می‌کنند (و به مکانیزم‌هایی که می‌توانند اطلاعات اعتباری را ارسال کنند اجازه انجام این کار را می‌دهد). ویژگی .B minssf= حداقل .I فاکتور استحکام امنیتی قابل قبول را به عنوان یک عدد صحیح تقریبی به طول کلید مؤثر مورد استفاده برای رمزنگاری مشخص می‌کند. ۰ (صفر) به معنی عدم حفاظت است، ۱ فقط حفاظت از یکپارچگی را می‌رساند، ۱۲۸ به RC4، Blowfish و سایر رمزهای مشابه اجازه فعالیت می‌دهد، ۲۵۶ به رمزهای مدرن نیاز خواهد داشت. مقدار پیش‌فرض ۰ است. ویژگی .B maxssf= حداکثر .I فاکتور استحکام امنیتی قابل قبول را به عنوان یک عدد صحیح مشخص می‌کند (توضیحات minssf را ببینید). پیش‌فرض INT_MAX است. ویژگی .B maxbufsize= حداکثر اندازه مجاز بافر دریافت لایه امنیتی را مشخص می‌کند. مقدار ۰ لایه‌های امنیتی را غیرفعال می‌کند. مقدار پیش‌فرض ۶۵۵۳۶ است. .TP .B schemadn نام متمایز (DN) را برای زیرمدخل زیرطرحواره (subschema subentry) که مدخل‌های این سرور را کنترل می‌کند، مشخص می‌کند. مقدار پیش‌فرض "cn=Subschema" است. .TP .B security مجموعه‌ای از فاکتورهای استحکام امنیتی (جداشده با فاصله) را برای الزام مشخص می‌کند (برای شرح فاکتورهای استحکام امنیتی، گزینه .B minssf در .B sasl\-secprops را ببینید). این دستورالعمل می‌تواند به‌صورت سراسری و/یا به ازای هر پایگاه‌داده مشخص شود. .B ssf= فاکتور کلی استحکام امنیتی را مشخص می‌کند. .B transport= فاکتور استحکام امنیتی انتقال (transport) را مشخص می‌کند. .B tls= فاکتور استحکام امنیتی TLS را مشخص می‌کند. .B sasl= فاکتور استحکام امنیتی SASL را مشخص می‌کند. .B update_ssf= فاکتور کلی استحکام امنیتی لازم برای به‌روزرسانی‌های راهنما را مشخص می‌کند. .B update_transport= فاکتور استحکام امنیتی انتقال لازم برای به‌روزرسانی‌های راهنما را مشخص می‌کند. .B update_tls= فاکتور استحکام امنیتی TLS لازم برای به‌روزرسانی‌های راهنما را مشخص می‌کند. .B update_sasl= فاکتور استحکام امنیتی SASL لازم برای به‌روزرسانی‌های راهنما را مشخص می‌کند. .B simple_bind= فاکتور استحکام امنیتی لازم را برای احراز هویت .I ساده نام‌کاربری/گذرواژه مشخص می‌کند. توجه داشته باشید که فاکتور .B transport معیاری از امنیت ارائه‌شده توسط لایه انتقال زیرین است، مانند ldapi:// (و در نهایت IPSEC). این گزینه معمولاً استفاده نمی‌شود. .TP .B serverID [] یک شناسه عددی صحیح از ۰ تا ۴۰۹۵ را برای این سرور مشخص می‌کند. این شناسه می‌تواند با افزودن پیشوند "0x" به مقدار، به صورت شانزده‌شانزدهی (هگزادسیمال) نیز مشخص شود. شناسه‌های غیرصفر هنگام استفاده از تکثیر چندتأمین‌کننده‌ای (multi-provider replication) الزامی هستند و هر تأمین‌کننده باید یک شناسه غیرصفر یکتا داشته باشد. توجه داشته باشید که این الزام برای تأمین‌کننده‌های مجزایی که در یک مجموعه پایگاه‌داده چسبانده‌شده (glued) مشارکت دارند نیز صدق می‌کند. اگر URL ارائه شود، این دستورالعمل را می‌توان چندین بار مشخص کرد که فهرستی کامل از سرورهای مشارکت‌کننده و شناسه‌های آن‌ها را فراهم می‌کند. نام کامل میزبان (FQDN) هر سرور باید در URLهای ارائه‌شده استفاده شود. این شناسه‌ها در فیلد "replica id" تمام CSNهای تولیدشده توسط سرور مشخص‌شده به کار می‌روند. مقدار پیش‌فرض صفر است که تنها برای تکثیر تک‌تأمین‌کننده‌ای معتبر است. مثال: .LP .nf serverID 1 ldap://ldap1.example.com serverID 2 ldap://ldap2.example.com .fi .TP .B sizelimit {|unlimited} .TP .B sizelimit size[.{soft|hard}]= [...] حداکثر تعداد مدخل‌هایی را که از یک عملیات جستجو بازگردانده می‌شوند، مشخص می‌کند. محدودیت اندازه پیش‌فرض ۵۰۰ است. از .B unlimited برای تعیین عدم وجود محدودیت استفاده کنید. قالب دوم امکان تنظیم دقیق‌تر محدودیت‌های اندازه را فراهم می‌کند. اگر هیچ توصیف‌کننده خاصی مشخص نشود، هر دو محدودیت نرم (soft) و سخت (hard) تنظیم می‌شوند. آرگومان‌های اضافی را می‌توان در همان خط اضافه کرد. توصیف‌کننده‌های دیگری نیز موجود است؛ برای شرح تمام پرچم‌های مختلف، .BR limits را ببینید. .TP .B sockbuf_max_incoming حداکثر اندازه PDU ورودی LDAP را برای نشست‌های ناشناس مشخص می‌کند. مقدار پیش‌فرض ۲۶۲۱۴۳ است. .TP .B sockbuf_max_incoming_auth حداکثر اندازه PDU ورودی LDAP را برای نشست‌های احراز هویت‌شده مشخص می‌کند. مقدار پیش‌فرض ۴۱۹۴۳۰۳ است. .TP .B sortvals [...] فهرستی از ویژگی‌های چندمقداری را مشخص می‌کند که مقادیر آن‌ها همیشه به ترتیب مرتب‌شده نگهداری می‌شوند. استفاده از این گزینه باعث می‌شود ارزیابی‌های Modify، Compare و فیلترها روی این ویژگی‌ها به شکل کارآمدتری انجام شود. ترتیب مرتب‌سازی حاصل به نحو و قواعد تطابق ویژگی‌ها بستگی دارد و ممکن است با ترتیب واژگانی یا هر ترتیب قابل تشخیص دیگری مطابقت نداشته باشد. .TP .B tcp-buffer [listener=] [{read|write}=] اندازه بافر TCP را مشخص می‌کند. یک مقدار سراسری برای هر دو بافر خواندن و نوشتن TCP مربوط به هر شنونده تعریف می‌شود، مگر اینکه شنونده به‌صراحت مشخص شده باشد یا از توصیف‌کننده‌های read یا write استفاده شود. برای جزئیات .BR tcp (7) را ببینید. توجه داشته باشید که برخی سیستم‌های عامل تنظیم خودکار بافر TCP را پیاده‌سازی کرده‌اند. .TP .B threads حداکثر اندازه استخر نخ (thread pool) اصلی را مشخص می‌کند. مقدار پیش‌فرض ۱۶ است؛ حداقل مقدار ۲ است. .TP .B threadqueues تعداد صف‌های کاری را برای استفاده در استخر نخ اصلی مشخص می‌کند. مقدار پیش‌فرض ۱ است و این مقدار معمولاً برای حداکثر ۸ هسته پردازنده کافی است. این مقدار نباید از تعداد CPUهای سیستم تجاوز کند. .TP .B timelimit {|unlimited} .TP .B timelimit time[.{soft|hard}]= [...] حداکثر تعداد ثانیه‌ها (به وقت واقعی) را مشخص می‌کند که .B slapd صرف پاسخ دادن به یک درخواست جستجو خواهد کرد. محدودیت زمانی پیش‌فرض ۳۶۰۰ است. از .B unlimited برای تعیین عدم وجود محدودیت استفاده کنید. قالب دوم امکان تنظیم دقیق‌تر محدودیت‌های زمانی را فراهم می‌کند. آرگومان‌های اضافی را می‌توان در همان خط اضافه کرد. برای شرح پرچم‌های مختلف، .BR limits را ببینید. .TP .B tool\-threads حداکثر تعداد نخ‌ها برای استفاده در حالت ابزار را مشخص می‌کند. این مقدار نباید از تعداد پردازنده‌های سیستم بیشتر باشد. مقدار پیش‌فرض ۱ است. .TP .B writetimeout تعداد ثانیه‌ها برای انتظار پیش از بستن اجباری یک اتصال با عملیات نوشتن معلق را مشخص می‌کند. این امر امکان بازیابی از شرایط مختلف هنگ کردن شبکه را فراهم می‌کند. مقدار writetimeout برابر ۰ این ویژگی را غیرفعال می‌کند. مقدار پیش‌فرض ۰ است. .SH "گزینههای TLS (TLS OPTIONS)" اگر .B slapd با پشتیبانی از امنیت لایه انتقال (TLS) کامپایل شده باشد، گزینه‌های بیشتری وجود دارند که می‌توانید مشخص کنید. .TP .B TLSCipherSuite امکان پیکربندی رمزهایی که پذیرفته می‌شوند و ترتیب اولویت آن‌ها را فراهم می‌کند. باید یک مشخصه رمز برای کتابخانه TLS مورد استفاده (OpenSSL یا GnuTLS) باشد. مثال: .RS .RS .TP .I OpenSSL: TLSCipherSuite HIGH:MEDIUM:+SSLv2 .TP .I GnuTLS: TLSCiphersuite SECURE256:!AES-128-CBC .RE برای بررسی اینکه یک مشخصه معین در OpenSSL چه رمزهایی را انتخاب می‌کند، از دستور زیر استفاده کنید: .nf openssl ciphers \-v .fi در GnuTLS مشخصات موجود را می‌توان در صفحه راهنمای .BR gnutls\-cli (1) پیدا کرد (توضیحات گزینه .BR \-\-priority را ببینید). در نسخه‌های قدیمی‌تر GnuTLS که gnutls\-cli از گزینه \-\-priority پشتیبانی نمی‌کند، می‌توانید با فراخوانی دستور زیر فهرست \(em محدودتر \(em رمزها را به دست آورید: .nf gnutls\-cli \-l .fi .RE .TP .B TLSCACertificateFile فایلی را مشخص می‌کند که حاوی گواهی‌های تمام مراجع صدور گواهی (CA) است که .B slapd آن‌ها را به رسمیت می‌شناسد. گواهی مرجع صدور گواهی که گواهی سرور را امضا کرده است باید(GnuTLS)/می‌تواند(OpenSSL) در میان این گواهی‌ها گنجانده شود. اگر CA امضاکننده یک مرجع صدور گواهی سطح بالا (ریشه) نبود، باید گواهی‌های کل دنباله CAها از CA امضاکننده تا CA سطح بالا وجود داشته باشد. گواهی‌های متعدد صرفاً به فایل اضافه می‌شوند؛ ترتیب آن‌ها اهمیتی ندارد. .TP .B TLSCACertificatePath مسیر پوشه‌هایی را مشخص می‌کند که حاوی گواهی‌های مرجع صدور گواهی در فایل‌های جداگانه منفرد هستند. معمولاً فقط یکی از این گزینه یا TLSCACertificateFile استفاده می‌شود. اگر هر دو مشخص شوند، از هر دو مکان استفاده خواهد شد. چندین پوشه را می‌توان با علامت نقطه‌ویرگول (semi-colon) از هم جدا کرد. .TP .B TLSCertificateFile فایلی را مشخص می‌کند که حاوی گواهی سرور .B slapd است. هنگام استفاده از OpenSSL آن فایل همچنین می‌تواند حاوی هر تعداد گواهی میانی پس از گواهی سرور باشد. .TP .B TLSCertificateKeyFile فایلی را مشخص می‌کند که حاوی کلید خصوصی سرور .B slapd منطبق با گواهی ذخیره‌شده در فایل .B TLSCertificateFile است. در حال حاضر، کلید خصوصی نباید با گذرواژه محافظت شود، بنابراین بسیار حیاتی است که با دقت از آن محافظت گردد. .TP .B TLSDHParamFile این دستورالعمل فایلی را مشخص می‌کند که حاوی پارامترهایی برای تبادل کلید موقت دیفی-هلمن (Diffie-Hellman ephemeral) است. این برای استفاده از یک گواهی DSA روی سرور یا یک گواهی RSA که فاقد کاربرد کلید "key encipherment" است لازم می‌باشد. توجه داشته باشید که تنظیم این گزینه ممکن است تبادل کلید دیفی-هلمن ناشناس (Anonymous Diffie-Hellman) را نیز در برخی از مجموعه‌های رمز غیرپیش‌فرض فعال کند. به‌طور کلی باید از تبادلات کلید ناشناس اجتناب شود زیرا هیچ احراز هویت واقعی کلاینت یا سرور را فراهم نمی‌کنند و هیچ حفاظتی در برابر حملات مرد میانی (man-in-the-middle) ارائه نمی‌دهند. شما باید "!ADH" را به مجموعه‌های رمز خود اضافه کنید تا مطمئن شوید از این مجموعه‌ها استفاده نمی‌شود. .TP .B TLSECName نام منحنی(هایی) را برای استفاده در تبادل کلید موقت دیفی-هلمن منحنی بیضوی (ECDHE) مشخص می‌کند. این گزینه فقط برای OpenSSL استفاده می‌شود. این گزینه با GnuTLS استفاده نمی‌شود؛ منحنی‌ها ممکن است در مشخصات ciphersuite مربوط به GnuTLS انتخاب شوند. .TP .B TLSProtocolMin [.] حداقل نسخه پروتکل SSL/TLS را که مذاکره خواهد شد مشخص می‌کند. اگر سرور حداقل از آن نسخه پشتیبانی نکند، دست‌تکانی SSL شکست خواهد خورد. برای الزامی کردن TLS 1.x یا بالاتر، این گزینه را روی 3.(x+1) تنظیم کنید، مثلاً: .nf TLSProtocolMin 3.2 .fi به TLS 1.1 نیاز خواهد داشت. مشخص کردن حداقل نسخه‌ای بالاتر از آنچه توسط پیاده‌سازی OpenLDAP پشتیبانی می‌شود، باعث می‌شود بالاترین سطحی که پشتیبانی می‌کند الزامی شود. این دستورالعمل در GnuTLS نادیده گرفته می‌شود. .TP .B TLSRandFile فایلی را برای به دست آوردن بیت‌های تصادفی در زمانی که /dev/[u]random در دسترس نیست مشخص می‌کند. معمولاً روی نام سوکت EGD/PRNGD تنظیم می‌شود. متغیر محیطی RANDFILE نیز می‌تواند برای تعیین نام فایل استفاده شود. این دستورالعمل در GnuTLS نادیده گرفته می‌شود. .TP .B TLSVerifyClient مشخص می‌کند که چه بررسی‌هایی (در صورت وجود) باید روی گواهی‌های کلاینت در یک نشست ورودی TLS انجام شود. مقدار .B می‌تواند به‌عنوان یکی از کلیدواژه‌های زیر مشخص شود: .RS .TP .B never این مقدار پیش‌فرض است. .B slapd از کلاینت درخواست گواهی نخواهد کرد. .TP .B allow گواهی کلاینت درخواست می‌شود. اگر گواهی ارائه نشود، نشست به‌طور عادی ادامه می‌یابد. اگر یک گواهی نامعتبر ارائه شود، نادیده گرفته می‌شود و نشست به‌طور عادی ادامه می‌یابد. .TP .B try گواهی کلاینت درخواست می‌شود. اگر گواهی ارائه نشود، نشست به‌طور عادی ادامه می‌یابد. اگر یک گواهی نامعتبر ارائه شود، نشست بلافاصله خاتمه می‌یابد. .TP .B demand | hard | true این کلیدواژه‌ها به دلایل سازگاری همگی معادل هستند. گواهی کلاینت درخواست می‌شود. اگر هیچ گواهی ارائه نشود، یا یک گواهی نامعتبر ارائه شود، نشست بلافاصله خاتمه می‌یابد. توجه داشته باشید که یک گواهی معتبر کلاینت برای استفاده از مکانیزم احراز هویت SASL EXTERNAL با یک نشست TLS مورد نیاز است. به این ترتیب، برای فعال کردن احراز هویت SASL EXTERNAL باید یک مقدار غیرپیش‌فرض برای .B TLSVerifyClient انتخاب شود. .RE .TP .B TLSCRLCheck مشخص می‌کند که آیا فهرست ابطال گواهی (CRL) مربوط به CA باید برای بررسی اینکه آیا گواهی‌های کلاینت باطل نشده‌اند استفاده شود یا خیر. این نیازمند تنظیم پارامتر .B TLSCACertificatePath است. این دستورالعمل در GnuTLS نادیده گرفته می‌شود. مقدار .B می‌تواند به‌عنوان یکی از کلیدواژه‌های زیر مشخص شود: .RS .TP .B none هیچ بررسی CRL انجام نمی‌شود. .TP .B peer بررسی CRL مربوط به گواهی همتا. .TP .B all بررسی CRL برای کل زنجیره گواهی. .RE .TP .B TLSCRLFile فایلی حاوی یک فهرست ابطال گواهی را برای تأیید عدم ابطال گواهی‌ها مشخص می‌کند. این دستورالعمل فقط هنگام استفاده از GnuTLS معتبر است. .SH "گزینههای عمومی بکاند (GENERAL BACKEND OPTIONS)" گزینه‌ها در این بخش فقط برای بخش فایل پیکربندی تمام نمونه‌های بک‌اند مشخص‌شده اعمال می‌شوند. همه بک‌اندها ممکن است از این دسته گزینه‌ها پشتیبانی کنند، اما در حال حاضر فقط back-mdb از آن پشتیبانی می‌کند. .TP .B backend شروع یک تعریف بک‌اند را نشانه‌گذاری می‌کند. باید یکی از موارد زیر باشد: .BR asyncmeta ، .BR config ، .BR dnssrv ، .BR ldap ، .BR ldif ، .BR mdb ، .BR meta ، .BR monitor ، .BR null ، .BR passwd ، .BR perl ، .BR relay ، .BR sock ، .BR sql ، یا .BR wt . در حال حاضر، تنها back-mdb گزینه‌هایی از این نوع را پیاده‌سازی می‌کند، بنابراین این تنظیم برای هیچ بک‌اند دیگری نیاز نیست. .SH "گزینههای عمومی پایگاه داده (GENERAL DATABASE OPTIONS)" گزینه‌های این بخش فقط برای بخشی از فایل پیکربندی اعمال می‌شوند که مربوط به همان پایگاه‌داده‌ای است که در آن تعریف شده‌اند. این گزینه‌ها توسط تمامی انواع بک‌اند پشتیبانی می‌شوند. توجه داشته باشید که گزینه .B database و حداقل یک گزینه .B suffix برای هر پایگاه‌داده اجباری هستند. .TP .B database شروع تعریف یک نمونه جدید از پایگاه‌داده را مشخص می‌کند. بسته به اینکه کدام بک‌اند به پایگاه‌داده سرویس می‌دهد، باید یکی از موارد .BR asyncmeta ، .BR config ، .BR dnssrv ، .BR ldap ، .BR ldif ، .BR mdb ، .BR meta ، .BR monitor ، .BR null ، .BR passwd ، .BR perl ، .BR relay ، .BR sock ، .BR sql یا .BR wt باشد. عملیات‌های LDAP، حتی جستجوهای زیردرخت (subtree)، به‌طور معمول فقط به یک پایگاه‌داده دسترسی دارند. این رفتار را می‌توان با پیوند زدن پایگاه‌های داده به یکدیگر با استفاده از کلیدواژه .B subordinate تغییر داد. کنترل‌های دسترسی و برخی از اورلی‌ها (overlays) نیز می‌توانند چندین پایگاه‌داده را درگیر کنند. .TP .B add_content_acl on | off کنترل می‌کند که آیا عملیات‌های افزودن (Add) بررسی‌های ACL را روی محتوای مدخلی که در حال افزوده شدن است انجام دهند یا خیر. این بررسی به‌طور پیش‌فرض off است. برای جزئیات بیشتر درباره الزامات ACL برای عملیات‌های Add، صفحه راهنمای .BR slapd.access (5) را ببینید. .TP .B extra_attrs ویژگی‌هایی را فهرست می‌کند که باید به درخواست‌های جستجو افزوده شوند. بک‌اندهای ذخیره‌سازی محلی کل مدخل را به بخش فرانت‌اند بازمی‌گردانند. فرانت‌اند وظیفه دارد فقط ویژگی‌های درخواست‌شده‌ای را که توسط ACLها مجاز هستند، برگرداند. با این حال، قابلیت‌هایی مانند بررسی دسترسی و غیره ممکن است به ویژگی‌های خاصی نیاز داشته باشند که توسط بک‌اندهای ذخیره‌سازی راه‌دور (مانند بک‌اندهای پراکسی و غیره) به‌طور خودکار بازگردانده نمی‌شوند. .B فهرستی از ویژگی‌ها است که برای اهداف داخلی مورد نیازند و بنابراین همیشه باید جمع‌آوری شوند، حتی زمانی که صراحتاً توسط کلاینت‌ها درخواست نشده باشند. .TP .B hidden on | off کنترل می‌کند که آیا از این پایگاه‌داده برای پاسخ دادن به پرس‌وجوها استفاده شود یا خیر. پایگاه‌داده‌ای که پنهان (hidden) باشد هرگز برای پاسخ به هیچ پرس‌وجویی انتخاب نخواهد شد، و هر پسوند (suffix) پیکربندی‌شده روی این پایگاه‌داده در بررسی‌های تداخل با سایر پایگاه‌های داده نادیده گرفته می‌شود. به‌طور پیش‌فرض، hidden برابر با off است. .TP .B lastmod on | off کنترل می‌کند که آیا .B slapd ویژگی‌های modifiersName، modifyTimestamp، creatorsName و createTimestamp را به‌طور خودکار برای مدخل‌ها نگه‌داری کند یا خیر. همچنین ویژگی‌های entryCSN و entryUUID را که مورد نیاز فراهم‌کننده syncrepl هستند کنترل می‌کند. به‌طور پیش‌فرض، lastmod برابر با on است. .TP .B lastbind on | off کنترل می‌کند که آیا .B slapd ویژگی pwdLastSuccess را به‌طور خودکار برای مدخل‌ها نگه‌داری کند یا خیر. به‌طور پیش‌فرض، lastbind برابر با off است. در یک مصرف‌کننده رونوشت (replication consumer)، با فرض اینکه تنظیمات updateref و اورلی chain به‌درستی پیکربندی شده باشند، ویژگی pwdLastSuccess به ارائه‌دهنده (provider) بازفرستاده (forward) خواهد شد. .TP .B lastbind-precision اگر lastbind فعال باشد، مشخص می‌کند که pwdLastSuccess هر چند وقت یک‌بار باید به‌روزرسانی شود. باید بیش از .B integer ثانیه از آخرین اتصال (bind) موفق گذشته باشد. در یک محیط تکثیرشده با فعالیت اتصال مکرر، ممکن است مفید باشد که این مقدار روی عددی بزرگ تنظیم شود. .TP .B limits [ [...]] محدودیت‌های زمانی و اندازه را بر اساس آغازگر عملیات یا DN پایه (base DN) مشخص می‌کند. آرگومان .B می‌تواند هر یک از موارد زیر باشد: .RS .RS .TP anonymous | users | [=] | group[/oc[/at]]= .RE به همراه .RS .TP ::= dn[.][.