.lf 1 "- .TH SLAPD.ACCESS 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.access \- پیکربندی دسترسی برای slapd، دیمن مستقل LDAP .SH "خلاصه دستور (SYNOPSIS)" /etc/openldap/slapd.conf .SH "توضیحات (DESCRIPTION)" فایل .BR slapd.conf (5) شامل اطلاعات پیکربندی برای دیمن .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 به‌طور کلی (شامل تمام بک‌اندها) اعمال می‌شود، و به دنبال آن صفر یا چند تعریف بک‌اند پایگاه‌داده می‌آید که شامل اطلاعات مختص به یک نمونه بک‌اند است. .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 هم بخش پیکربندی سراسری و هم هر بخش مختص به بک‌اند می‌توانند شامل اطلاعات دسترسی باشند. دستورالعمل‌های کنترل دسترسیِ مختص به بک‌اند، با توجه به زمینه نام‌گذاری‌شان (naming context)، برای آن دسته از مدخل‌هایی استفاده می‌شوند که به آن بک‌اند تعلق دارند. در صورتی که هیچ دستورالعمل کنترل دسترسی برای یک بک‌اند تعریف نشده باشد یا موارد تعریف‌شده قابل اعمال نباشند، دستورالعمل‌های بخش پیکربندی سراسری به کار گرفته می‌شوند. .LP اگر هیچ کنترل دسترسی‌ای وجود نداشته باشد، خط‌مشی پیش‌فرض به همگان اجازه خواندن همه‌چیز را می‌دهد اما به‌روزرسانی‌ها را به rootdn محدود می‌سازد (مانند "access to * by * read"). .LP هنگام کار با یک فهرست دسترسی، از آنجا که فهرست دسترسی سراسری عملاً به انتهای فهرست هر پایگاه‌داده ضمیمه می‌شود، در صورت خالی نبودن فهرست حاصل، فهرست دسترسی با یک دستورالعمل ضمنی .B access to * by * none پایان می‌یابد. اگر هیچ دستورالعمل دسترسی قابل اعمالی برای یک بک‌اند وجود نداشته باشد، خواندن پیش‌فرض (default read) اعمال می‌شود. .LP .B هشدار: rootdn همواره می‌تواند همه‌چیز را بخواند و بنویسد! .LP برای مدخل‌هایی که در هیچ بک‌اندی نگهداری نمی‌شوند (مانند یک root DSE)، دستورالعمل‌های سراسری استفاده می‌شوند. .LP آرگومان‌هایی که باید با متن واقعی جایگزین شوند درون براکت‌های <> نشان داده شده‌اند. .SH "دستورالعمل دسترسی (THE ACCESS DIRECTIVE)" ساختار دستورالعمل‌های کنترل دسترسی به صورت زیر است: .TP .B access to "[ by [ ] [ ] ]+" اعطای دسترسی (مشخص‌شده با .BR ) به مجموعه‌ای از مدخل‌ها و/یا صفت‌ها (مشخص‌شده با .BR ) توسط یک یا چند درخواست‌کننده (مشخص‌شده با .BR ). .LP فهرست‌های دستورالعمل‌های دسترسی به ترتیبی که در \fIslapd.conf\fP آمده‌اند ارزیابی می‌شوند. هنگامی که یک بند .B با داده‌ای که دسترسی به آن در حال ارزیابی است مطابقت کند، فهرست بندهای .B آن بررسی می‌شود. هنگامی که یک بند .B با ویژگی‌های درخواست‌کننده دسترسی مطابقت کند، بندهای .B و .B آن ارزیابی می‌شوند. .LP بررسی کنترل دسترسی در اولین تطابق بندهای .B و .B متوقف می‌شود، مگر آنکه توسط بند .B به‌گونه دیگری تعیین شده باشد. هر فهرست بند .B به‌طور ضمنی با یک بند .LP .nf by * none stop .fi .LP .B خاتمه می‌یابد. این بند .B ضمنی، ارزیابی دستورالعمل دسترسی را متوقف می‌کند و هیچ امتیاز دسترسی دیگری به فرد دیگری اعطا نمی‌شود. برای اینکه ارزیابی دستورالعمل دسترسی تنها زمانی که هر دوی .B و .B تطابق یافتند متوقف شود، یک بند صریح .LP .nf by * break .fi .LP را به انتهای فهرست بندهای .B اضافه کنید. .LP هر فهرست بند .B به‌طور ضمنی با بند .LP .nf access to * by * none .fi .LP خاتمه می‌یابد که موجب عدم اعطای هرگونه امتیاز دسترسی به داده‌ای می‌شود که وضعیت آن مشخص نشده است. .SH "فیلد (THE FIELD)" فیلد .BR موجودیتی را مشخص می‌کند که دستورالعمل کنترل دسترسی به آن اعمال می‌شود. این فیلد می‌تواند قالب‌های زیر را داشته باشد: .LP .nf dn[.]= filter= attrs=[ val[/matchingRule][.]=] .fi .LP همراه با .LP .nf ={{exact|base(object)}|regex |one(level)|sub(tree)|children} ={|[{!|@}]}[,] ={{exact|base(object)}|regex |one(level)|sub(tree)|children} .fi .LP عبارت .B dn= مدخل‌ها را بر اساس زمینه نام‌گذاری‌شان (naming context) انتخاب می‌کند. .B یک نمایش رشته‌ای از DN مدخل است. نویسه عام .B * نشان‌دهنده تمام مدخل‌ها است و در صورتی که هیچ فرمی از .B dn داده نشده باشد، به صورت ضمنی در نظر گرفته می‌شود. .LP مشخصه .B اختیاری است؛ با این حال، توصیه می‌شود برای جلوگیری از ابهام آن را مشخص کنید. .B Base (مترادف .BR baseObject )، حالت پیش‌فرض، یا .B exact (نام مستعار .BR base ) نشان‌دهنده مدخلی است که DN آن برابر با .BR باشد؛ .B one (مترادف .BR onelevel ) نشان‌دهنده تمام مدخل‌های بلافاصله در زیر .BR است؛ .B sub (مترادف .BR subtree ) نشان‌دهنده تمام مدخل‌های موجود در زیردرخت در .BR است؛ .B children نشان‌دهنده تمام مدخل‌های زیر (تابعِ) .BR است. .LP اگر توصیف‌کننده .B برابر با .BR regex باشد، آن‌گاه .B یک الگوی عبارت منظم POSIX (از نوع «extended») است، همان‌گونه که در .BR regex (7) و/یا .BR re_format (7) شرح داده شده است، که با یک نمایش رشته‌ای نرمال‌شده از DN مدخل تطابق می‌یابد. قالب regex این الگو (هنوز) از UTF-8 پشتیبانی نمی‌کند. .LP عبارت .B filter= مدخل‌ها را بر اساس یک فیلتر معتبر LDAP، همان‌طور که در RFC 4515 توصیف شده است، انتخاب می‌کند. اگر هیچ قالبی از .B filter داده نشده باشد، فیلتر .B (objectClass=*) به‌طور ضمنی در نظر گرفته می‌شود. .LP عبارت .B attrs= صفت‌هایی را انتخاب می‌کند که قاعده کنترل دسترسی به آن‌ها اعمال می‌شود. این یک فهرست جداشده با کاما از انواع صفت‌ها به همراه نام‌های ویژه .BR entry ، نشان‌دهنده دسترسی به خود مدخل، و .BR children ، نشان‌دهنده دسترسی به فرزندان مدخل است. نام‌های ObjectClass نیز می‌توانند در این فهرست مشخص شوند که بر تمام صفت‌های الزامی و/یا مجاز توسط آن objectClass تأثیر می‌گذارند. در واقع، نام‌های موجود در .B که دارای پیشوند .B @ هستند، مستقیماً به عنوان نام‌های objectClass در نظر گرفته می‌شوند. نامی که دارای پیشوند .B ! باشد نیز به عنوان یک objectClass در نظر گرفته می‌شود، اما در این حالت قاعده دسترسی بر صفت‌هایی تأثیر می‌گذارد که توسط آن objectClass نه الزامی هستند و نه مجاز. اگر هیچ فرمی از .B attrs داده نشود، .B attrs=@extensibleObject به‌طور ضمنی در نظر گرفته می‌شود، یعنی تمام صفت‌ها را شامل می‌شود. .LP استفاده از قالب .B attrs= val[/matchingRule][.]= دسترسی به یک مقدار خاص از یک صفت منفرد را مشخص می‌کند. در این حالت، تنها یک نوع صفت منفرد می‌تواند تعیین شود. .B مقدار .B exact (پیش‌فرض) از قاعده تطابق برابری (equality matching rule) صفت برای مقایسه مقدار استفاده می‌کند، مگر آنکه یک قاعده تطابق متفاوت (و سازگار) مشخص شده باشد. اگر .B برابر با .BR regex باشد، مقدار ارائه‌شده به عنوان یک الگوی عبارت منظم POSIX (از نوع «extended») استفاده می‌شود. اگر صفت دارای نحو DN باشد، .B می‌تواند هر یک از .BR base ، .BR onelevel ، .B subtree یا .BR children باشد که به ترتیب منجر به تطابق base، onelevel، subtree یا children می‌شود. .LP عبارت‌های dn، filter و attrs تجمیعی هستند؛ آن‌ها می‌توانند به صورت متوالی برای انتخاب موجودیت‌هایی که قاعده دسترسی به آن‌ها اعمال می‌شود، بر اساس زمینه نام‌گذاری، مقدار و نوع صفت به‌طور هم‌زمان استفاده شوند. زیرتطابق‌های حاصل از تطابق .B regex می‌توانند در فیلد .B با استفاده از نحو .IR ${v} ، که در آن .I شماره زیرتطابق است، مورد ارجاع قرار گیرند. نحو پیش‌فرض، .IR $ ، در واقع یک نام مستعار برای .IR ${d} است که متناظر با ارجاع به زیرتطابق‌های حاصل از بخش .B dnpattern در فیلد .B می‌باشد. .SH "بخش (THE FIELD)" فیلد .B مشخص می‌کند که قوانین دسترسی برای چه کسانی اعمال می‌شوند. چندین عبارت .B می‌توانند در یک دستور کنترل دسترسی قرار گیرند، که بیانگر امتیازات دسترسی متفاوت به یک منبع یکسان برای دسترسی‌گیرندگان مختلف است. این فیلد می‌تواند به اشکال زیر باشد: .LP .nf * anonymous users self[.] dn[.[,]]= dnattr= realanonymous realusers realself[.] realdn[.[,]]= realdnattr= group[/[/]] [.]= peername[.]= sockname[.