| SLAPD(8C) | SLAPD(8C) |
نام (NAME)
slapd - سرویس دیمن مستقل پروتکل LDAP
خلاصه دستور (SYNOPSIS)
/usr/lib/slapd [-V[V[V]] [-4|-6] [-T {acl|a[dd]|auth|c[at]| d[n]|i[ndex]|m[odify]|p[asswd]|s[chema]|t[est]}] [-d debug-level] [-f slapd-config-file] [-F slapd-config-directory] [-h URLs] [-n service-name] [-s syslog-level] [-l syslog-local-user] [-o option[=value]] [-r directory] [-u user] [-g group] [-c cookie]
توضیحات (DESCRIPTION)
Slapd یک دیمن مستقل پروتکل LDAP است. این دیمن به اتصالات LDAP روی هر تعداد درگاه (پیشفرض 389) گوش فرا میدهد و به عملیاتهای LDAP دریافتی از طریق این اتصالات پاسخ میدهد. slapd بهطور معمول هنگام راهاندازی سیستم، معمولاً از طریق /etc/rc.local فراخوانی میشود. پس از راهاندازی، slapd به طور معمول منشعب (fork) شده و خود را از tty فراخواننده جدا میکند. در صورت پیکربندی در فایل پیکربندی (یا دایرکتوری پیکربندی)، فرآیند slapd شناسه فرآیند خود (نگاه کنید به getpid(2)) را در یک فایل .pid و همچنین گزینههای خط فرمان هنگام فراخوانی را در یک فایل .args ثبت میکند (نگاه کنید به slapd.conf(5)). اگر فلگ -d مشخص شود، حتی با آرگومان صفر، slapd منشعب نشده و از tty فراخواننده جدا نخواهد شد.
برای جزئیات بیشتر درباره slapd به "OpenLDAP Administrator's Guide" مراجعه کنید.
گزینهها (OPTIONS)
- -V[V[V]]
- چاپ اطلاعات نسخه و ادامه روند راهاندازی. اگر -VV مشخص شود، پس از ارائه اطلاعات نسخه خارج میشود. اگر -VVV مشخص شود، علاوه بر آن اطلاعاتی درباره اورلیها و بکاندهای ایستا نیز ارائه میدهد.
- -4
- تنها روی آدرسهای IPv4 گوش میدهد.
- -6
- تنها روی آدرسهای IPv6 گوش میدهد.
- -T tool
- اجرا در حالت ابزار (Tool mode). آرگومان tool مشخص میکند که برنامه به عنوان کدام ابزار اجرا شود: slapadd، slapcat، slapdn، slapindex، slapmodify، slappasswd، slapschema یا slaptest (برای slapacl و slapauth باید کل مقدار گزینه یعنی acl و auth به طور کامل مشخص شوند، زیرا a برای slapadd رزرو شده است). این گزینه در صورت استفاده باید نخستین گزینه مشخصشده باشد؛ هر گزینه باقیمانده دیگر توسط برنامه ابزار slap مربوطه، طبق صفحات راهنمای مربوطهاش تفسیر خواهد شد. توجه داشته باشید که این برنامههای ابزار معمولاً پیوندهای نمادین به slapd هستند. این گزینه برای شرایطی ارائه شده است که پیوندهای نمادین ارائه نشده یا قابل استفاده نیستند.
- -d debug-level
- فعالسازی
اشکالزدایی
طبق آنچه
توسط debug-level
تعریف شده
است. اگر
این گزینه
مشخص شود،
حتی با یک
آرگومان
صفر، slapd
منشعب
نخواهد شد و
از ترمینال
فراخواننده
جدا
نمیشود.
برخی
پیامهای
عمومی
عملیات و
وضعیت برای
هر مقداری
از debug-level چاپ
میشوند.
مقدار debug-level
به عنوان یک
رشته بیتی
در نظر
گرفته
میشود که
هر بیت
متناظر با
نوع
متفاوتی از
اطلاعات
اشکالزدایی
است. برای
جزئیات به
<ldap_log.h> مراجعه
کنید.
میتوان
آرایهای
از نامهای
خوانا را که
با کاما از
هم جدا
شدهاند
برای
انتخاب
خروجی
اشکالزدایی
اطلاعات
متناظر
مشخص کرد.
تمامی
نامهای
شناختهشده
توسط
دستورالعمل
loglevel
شرحدادهشده
در slapd.conf(5)
پشتیبانی
میشوند.
اگر debug-level
برابر ?
باشد،
فهرستی از
سطوح
اشکالزدایی
نصبشده
چاپ میشود
و slapd خارج
خواهد شد.
به یاد داشته باشید که اگر ثبت بستهها (packet logging) را فعال کنید، بستههای حاوی گذرواژههای بایند (bind passwords) در خروجی چاپ میشوند؛ بنابراین اگر گزارش را به یک فایل لاگ هدایت میکنید، آن فایل باید در برابر خواندن محافظت شود.
- -s syslog-level
- این گزینه به slapd میگوید که دستورات اشکالزدایی در چه سطح اشکالزدایی باید در سرویس syslog(8) ثبت شوند. مقدار syslog-level میتواند روی هر مقدار یا ترکیبی که توسط سوییچ -d مجاز است تنظیم شود. دیمن Slapd تمامی پیامهای انتخابشده توسط syslog-level را با سطح شدت syslog(3) معادل DEBUG، روی واحد مشخصشده با -l ثبت میکند.
- -n service-name
- نام سرویس را برای ثبت گزارش و مقاصد دیگر مشخص میکند. مقدار پیشفرض برابر با basename در argv[0]، یعنی "slapd" است.
- -l syslog-local-user
- کاربر محلی سرویس syslog(8) را انتخاب میکند. مقدار میتواند LOCAL0 تا LOCAL7، و همچنین USER و DAEMON باشد. مقدار پیشفرض LOCAL4 است. با این حال، این گزینه تنها روی سیستمهایی مجاز است که از کاربران محلی در سرویس syslog(8) پشتیبانی میکنند. ثبت گزارش در syslog(8) در سطح شدت "DEBUG" انجام میشود.
- -f slapd-config-file
- فایل پیکربندی slapd را مشخص میکند. مقدار پیشفرض /etc/openldap/slapd.conf است.
- -F slapd-config-directory
- دایرکتوری پیکربندی slapd را مشخص میکند. مقدار پیشفرض /etc/openldap/slapd.d است. اگر هر دو گزینه -f و -F مشخص شوند، فایل پیکربندی خوانده شده و به قالب دایرکتوری پیکربندی تبدیل میشود و در دایرکتوری مشخصشده نوشته خواهد شد. اگر هیچکدام مشخص نشوند، slapd پیش از تلاش برای استفاده از فایل پیکربندی پیشفرض، تلاش میکند دایرکتوری پیکربندی پیشفرض را بخواند. اگر یک دایرکتوری پیکربندی معتبر وجود داشته باشد، فایل پیکربندی پیشفرض نادیده گرفته میشود. تمامی ابزارهای slap که از گزینههای پیکربندی استفاده میکنند همین رفتار را رعایت میکنند.
- -h URLlist
- slapd بهطور
پیشفرض به
ldap:/// (پروتکل LDAP
از طریق TCP
روی تمامی
رابطها در
درگاه
پیشفرض LDAP)
سرویس
میدهد.
یعنی با
استفاده از
INADDR_ANY و درگاه 389
متصل
میشود.
گزینه -h
میتواند
برای تعیین
URLهای LDAP (و
سایر
طرحها) جهت
سرویسدهی
استفاده
شود. برای
مثال، اگر
به slapd گزینه -h
"ldap://127.0.0.1:9009/ ldaps:/// ldapi:///"
داده شود،
روی 127.0.0.1:9009 برای
LDAP، روی 0.0.0.0:636
برای LDAP از
طریق TLS، و
برای LDAP از
طریق IPC
(سوکتهای
دامنه
یونیکس) گوش
خواهد داد.
میزبان 0.0.0.0
نمایانگر
INADDR_ANY (هر رابطی)
است. فهرستی
از URLها که با
فاصله جدا
شدهاند
مورد
انتظار است.
این URLها
باید از
طرحهای LDAP،
PLDAP، LDAPS، PLDAPS یا LDAPI
باشند و
عموماً
بدون DN یا
سایر
پارامترهای
اختیاری (به
جز مواردی
که در ادامه
توضیح داده
شده است)
باشند.
پشتیبانی
از سه طرح
اخیر به
گزینههای
پیکربندی
انتخابشده
بستگی دارد.
میزبانها
میتوانند
با نام یا
قالبهای
آدرس IPv4 و IPv6
مشخص شوند.
درگاهها
در صورت
تعیین باید
عددی باشند.
درگاه
پیشفرض ldap://
برابر 389 و
درگاه
پیشفرض ldaps://
برابر 636
است؛ همین
موضوع برای
انواع
فعالشده
با پروکسی
نیز صادق
است.
طرحهای URL به نام PLDAP و PLDAPS پشتیبانی از پروتکل پروکسی HAProxy نسخه ۲ را فراهم میکنند، که به یک توزیعکننده بار (load balancer) یا سرور پروکسی اجازه میدهد آدرس IP کلاینت راه دور را به slapd ارائه کند تا برای کنترل دسترسی یا ثبت وقایع استفاده شود. درگاههای پیکربندیشده برای PLDAP یا PLDAPS تنها اتصالاتی را میپذیرند که شامل هدر ضروری پروتکل پروکسی باشند. اتصالات به این درگاهها باید در سطح شبکه تنها به توزیعکنندههای بار یا پروکسیهای مورد اعتماد محدود شوند تا از جعل آدرسهای IP کلاینت توسط اشخاص ثالث جلوگیری شود.
برای LDAP از طریق IPC، مقدار name نام سوکت است و هیچ درگاهی (port) مورد نیاز نبوده و مجاز هم نیست؛ توجه داشته باشید که جداکنندههای دایرکتوری باید مانند هر نویسه خاص دیگری در URLها، به صورت کدگذاری URL (URL-encoded) باشند؛ بنابراین سوکت
/usr/local/var/ldapi
باید به این صورت مشخص شود:
ldapi://%2Fusr%2Flocal%2Fvar%2Fldapi
مسیر پیشفرض برای سوکت IPC برابر /var/lib/openldap/run/ldapi است.
مجوزهای شنونده با "x-mod=-rwxrwxrwx"، "x-mod=0777" یا "x-mod=777" مشخص میشوند، که در آن هر یک از "rwx" میتواند برای لغو مجوز مربوطه به صورت "-" باشد، در حالی که هر یک از "7" میتواند هر رقم هشتهشتی مجاز طبق chmod(1) باشد. شنوندگان میتوانند از افزونه "x-mod" برای اعمال محدودیتهای تقریبی روی عملیات بهره ببرند؛ به عنوان مثال اجازه عملیات خواندن ("r" که به search و compare اعمال میشود)، عملیات نوشتن ("w" که به add، delete، modify و modrdn اعمال میشود) و عملیات اجرا ("x" که به معنای لزوم bind است). مجوزهای "User" به کاربران احرازهویتشده اعمال میشوند، در حالی که "other" به کاربران ناشناس اعمال میگردد؛ مجوزهای "group" نادیده گرفته میشوند. برای مثال، "ldap:///????x-mod=-rw-------" به این معناست که خواندن و نوشتن تنها برای اتصالات احرازهویتشده مجاز است و برای تمامی عملیات، bind الزامی است. این قابلیت آزمایشی است و نیازمند فعالسازی دستی در زمان پیکربندی و کامپایل است.
- -r directory
- دایرکتوریای را برای تبدیل شدن به دایرکتوری ریشه مشخص میکند. دیمن slapd دایرکتوری کاری فعلی را به این دایرکتوری تغییر داده و سپس با chroot(2) به این دایرکتوری منتقل میشود. این کار پس از باز کردن شنوندگان اما پیش از خواندن هرگونه فایل پیکربندی یا راهاندازی هر بکاندی انجام میشود. در صورت استفاده به عنوان یک سازوکار امنیتی، باید همراه با گزینههای -u و -g استفاده شود.
- -u user
- سرویس slapd را
با نام
کاربری یا
شناسه
کاربری (UID)
مشخصشده،
و فهرست
دسترسی
گروههای
تکمیلی آن
کاربر طبق
آنچه توسط
initgroups(3) تنظیم
شده اجرا
میکند.
شناسه گروه
(GID) نیز به gid
این کاربر
تغییر
مییابد،
مگر اینکه
از گزینه -g
برای
جایگزینی
آن استفاده
شود. توجه
داشته
باشید که
هنگام
استفاده
همراه با
-r، دیمن slapd از
پایگاهداده
کاربران
درون محیط
ریشه
تغییریافته
(chroot) استفاده
خواهد کرد.
توجه داشته باشید که در برخی سیستمها، اجرا به عنوان کاربر غیرممتاز مانع از دسترسی بکاندهای passwd به گذرواژههای رمزنگاریشده خواهد شد. همچنین توجه داشته باشید که هر بکاند پوسته (shell) به عنوان کاربر غیرممتاز مشخصشده اجرا خواهد شد.
- -g group
- سرویس slapd را با نام یا شناسه گروه (GID) مشخصشده اجرا میکند. توجه داشته باشید که هنگام استفاده همراه با -r، دیمن slapd از پایگاهداده گروهها درون محیط ریشه تغییریافته (chroot) استفاده خواهد کرد.
- -c cookie
- این گزینه یک کوکی برای مصرفکننده رونوشتبرداری (syncrepl replication consumer) فراهم میکند. این کوکی فهرستی از جفتهای name=value است که با کاما از هم جدا شدهاند. فیلدهای کوکی syncrepl که در حال حاضر پشتیبانی میشوند عبارتند از rid، sid و csn. شناسه rid یک رشته رونوشتبرداری را درون سرور مصرفکننده مشخص میکند و برای یافتن مشخصات syncrepl در slapd.conf(5) یا slapd-config(5) که شناسه رونوشتبرداری منطبق در تعریف آن وجود دارد، استفاده میشود. شناسه rid باید ارائه شود تا سایر مقادیر مشخصشده مورد استفاده قرار گیرند. مقدار sid شناسه سرور در یک پیکربندی چند ارائهدهندهای (multi-provider) است. مقدار csn شماره توالی ثبت (commit sequence number) دریافت شده توسط یک همگامسازی قبلی است و نمایانگر وضعیت محتوای مصرفکننده است که موتور syncrepl آن را با محتوای ارائهدهنده فعلی همگام خواهد کرد. در صورت وجود توافق رونوشتبرداری چند ارائهدهندهای (multi-provider)، مقادیر متعدد csn میتوانند ظاهر شوند که با نقطه ویرگول (semicolon) از هم جدا میشوند. تنها از بخش rid برای وادار کردن به بارگذاری کامل مجدد (full reload) استفاده کنید.
- -o option[=value]
- این گزینه
روشی عمومی
برای تعیین
گزینهها
بدون نیاز
به اختصاص
یک حرف
جداگانه
برای آنها
فراهم
میکند.
این بخش از گزینههای زیر پشتیبانی میکند:
- slp={on|off|slp-attrs}
- هنگامی که
پشتیبانی
از SLP در slapd
کامپایل
شده باشد،
آن را
غیرفعال
میکند (off)،
با ثبت در
DAهای
پروتکل SLP
بدون
ویژگیهای
خاص SLP آن را
فعال
میکند (on)،
یا با
ویژگیهای
خاص SLP به
صورت slp-attrs که
باید طبق
استاندارد
SLP تعریفی از
فهرست
ویژگیهای
SLP باشد فعال
میکند.
برای مثال، "slp=(tree=production),(server-type=OpenLDAP),(server-version=2.4.15)" با سه ویژگی SLP شامل tree، server-type و server-version که دارای مقادیر ارائهشده در بالا هستند، در DAهای پروتکل SLP ثبتنام میکند. این امر امکان پرسوجوی مشخص در DAهای پروتکل SLP را برای سرورهای LDAP دارنده درخت production در صورت وجود چندین درخت فراهم میسازد.
مثالها (EXAMPLES)
برای شروع slapd و انشعاب (fork) و جدا شدن آن از ترمینال و آغاز سرویسدهی به پایگاههای داده LDAP تعریفشده در فایل پیکربندی پیشفرض، کافی است وارد کنید:
/usr/lib/slapd
برای شروع slapd با یک فایل پیکربندی جایگزین، و فعالسازی اشکالزدایی پرحجم که روی خطای استاندارد چاپ خواهد شد، وارد کنید:
/usr/lib/slapd -f /var/tmp/slapd.conf -d 255
برای آزمایش اینکه آیا فایل پیکربندی صحیح است یا خیر، وارد کنید:
/usr/lib/slapd -Tt
همچنین ببینید (SEE ALSO)
ldap(3), slapd.conf(5), slapd-config(5), slapd.access(5), slapacl(8), slapadd(8), slapauth(8), slapcat(8), slapdn(8), slapindex(8), slapmodify(8), slappasswd(8), slapschema(8), slaptest(8).
"OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin)
گزارش باگها (REPORTING BUGS)
به http://www.openldap.org/its مراجعه کنید.
قدردانی (ACKNOWLEDGEMENTS)
OpenLDAP Software توسط پروژه OpenLDAP توسعه یافته و نگهداری میشود http://www.openldap.org. OpenLDAP Software از انتشار الدپ ۳.۳ دانشگاه میشیگان مشتق شده است.
| 2026/03/09 | OpenLDAP 2.6.13 |