| LDIF(5) | فایلهای پیکربندی | LDIF(5) |
نام (NAME)
ldif - قالب تبادل داده برای سرویس دایرکتوری LDAP
توضیحات (DESCRIPTION)
قالب LDIF (قالب تبادل داده LDAP) قالبی متنی و استاندارد برای توصیف ورودیهای دایرکتوری و اعمال تغییرات روی آنها است. ابزارهای LDAP، مانند ldapadd(1) و ldapsearch(1)، رکوردهای ورودی LDIF را خوانده و مینویسند. ldapmodify(1) رکوردهای تغییرات LDIF را میخواند.
این صفحه راهنما توصیفی پایهای از LDIF ارائه میدهد. مشخصات رسمی LDIF در RFC 2849 منتشر شده است.
رکوردهای ورودی (ENTRY RECORDS)
رکوردهای ورودی LDIF برای نمایش مدخلهای دایرکتوری استفاده میشوند. فرم پایه یک رکورد ورودی به این صورت است:
dn: <distinguished name> <attrdesc>: <attrvalue> <attrdesc>: <attrvalue> <attrdesc>:: <base64-encoded-value> <attrdesc>:< <URL> ...
مقدار ممکن است بهصورت متن UTF-8 یا داده کدگذاریشده با base64 مشخص شود، یا یک URI برای مشخص کردن مکان مقدار مشخصه (attribute) ارائه گردد.
یک خط میتواند با شروع خط بعدی با یک فاصله (space) یا تب (tab) تکی ادامه یابد، به عنوان مثال:
dn: cn=Barbara J Jensen,dc=exam ple,dc=com
خطوطی که با علامت شارپ ('#') آغاز میشوند نادیده گرفته میشوند.
مقادیر چندگانه یک مشخصه در خطوط جداگانه مشخص میشوند، مانند:
cn: Barbara J Jensen cn: Babs Jensen
اگر مقداری حاوی نویسه غیرقابلچاپ باشد، یا با یک فاصله یا دونقطه ':' شروع شود، پس از <attrtype> دو دونقطه (::) قرار گرفته و مقدار با نشانهگذاری پایه ۶۴ (base64) کدگذاری میشود؛ مثلاً مقدار " begins with a space" به این شکل کدگذاری خواهد شد:
cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=
اگر مقدار مشخصه در یک فایل قرار داشته باشد، پس از <attrtype> عبارت ':<' و سپس یک URI از نوع file: میآید. برای مثال، مقداری که در فایل /tmp/value قرار دارد به این شکل فهرست میشود:
cn:< file:///tmp/valueسایر طرحهای URI (مانند ftp و http) نیز ممکن است پشتیبانی شوند.
مدخلهای چندگانه در یک فایل LDIF با خطوط خالی از یکدیگر جدا میشوند.
مثال رکورد ورودی (ENTRY RECORD EXAMPLE)
در ادامه نمونهای از یک فایل LDIF حاوی سه مدخل آورده شده است:
dn: cn=Barbara J Jensen,dc=example,dc=com cn: Barbara J Jensen cn: Babs Jensen objectclass: person description:< file:///tmp/babs sn: Jensen dn: cn=Bjorn J Jensen,dc=example,dc=com cn: Bjorn J Jensen cn: Bjorn Jensen objectclass: person sn: Jensen dn: cn=Jennifer J Jensen,dc=example,dc=com cn: Jennifer J Jensen cn: Jennifer Jensen objectclass: person sn: Jensen jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG ...
توجه داشته باشید که description در مدخل Barbara Jensen از file:///tmp/babs خوانده میشود و jpegPhoto در مدخل Jennifer Jensen با استفاده از base64 کدگذاری شده است.
رکوردهای تغییرات (CHANGE RECORDS)
رکوردهای تغییرات LDIF برای نمایش درخواستهای تغییر دایرکتوری استفاده میشوند. هر رکورد تغییر با خطی شامل نام متمایز (DN) ورودی در حال تغییر آغاز میشود:
dn: <distinguishedname>
changetype: <[modify|add|delete|modrdn]>
در نهایت، اطلاعات خودِ تغییر داده میشود که فرمت آن بستگی به نوع تغییر مشخصشده در بالا دارد. برای یک changetype از نوع modify، فرمت به یک یا چند مورد از شکلهای زیر است:
add: <attributetype> <attrdesc>: <value1> <attrdesc>: <value2> ... -
یا، برای تغییر از نوع جایگزینی (replace):
replace: <attributetype> <attrdesc>: <value1> <attrdesc>: <value2> ... -
اگر هیچ خط attributetype برای جایگزینی داده نشود، کل مشخصه (در صورت وجود) حذف خواهد شد.
یا، برای تغییر از نوع حذف (delete):
delete: <attributetype> <attrdesc>: <value1> <attrdesc>: <value2> ... -
اگر هیچ خط attributetype برای حذف داده نشود، کل مشخصه حذف خواهد شد.
برای changetype از نوع add، فرمت به صورت زیر است:
<attrdesc1>: <value1> <attrdesc1>: <value2> ... <attrdescN>: <value1> <attrdescN>: <value2>
برای changetype از نوع modrdn یا moddn، فرمت به صورت زیر است:
newrdn: <newrdn> deleteoldrdn: 0 | 1 newsuperior: <DN>
که در آن مقدار 1 برای deleteoldrdn به معنای حذف مقادیر تشکیلدهنده rdn قدیمی از مدخل است، و مقدار 0 به معنای رها کردن مقادیر به عنوان مشخصههای غیرمتمایز در مدخل میباشد. خط newsuperior اختیاری است و در صورت وجود، والد جدید (superior) را برای انتقال مدخل به آن مشخص میکند.
برای changetype از نوع delete، اطلاعات دیگری در رکورد لازم نیست.
توجه داشته باشید که مقادیر مشخصه ممکن است با base64 یا در فایلها همانطور که برای رکوردهای ورودی شرح داده شد مشخص شوند. خطوط در رکوردهای تغییرات نیز میتوانند به شیوهای که برای رکوردهای ورودی ذکر شد ادامه یابند.
مثال رکورد تغییرات (CHANGE RECORD EXAMPLE)
فایل نمونه LDIF زیر حاوی یک رکورد تغییر از هر نوع است:
dn: cn=Babs Jensen,dc=example,dc=com changetype: add objectclass: person objectclass: extensibleObject cn: babs cn: babs jensen sn: jensen dn: cn=Babs Jensen,dc=example,dc=com changetype: modify add: givenName givenName: Barbara givenName: babs - replace: description description: the fabulous babs - delete: sn sn: jensen - dn: cn=Babs Jensen,dc=example,dc=com changetype: modrdn newrdn: cn=Barbara J Jensen deleteoldrdn: 0 newsuperior: ou=People,dc=example,dc=com dn: cn=Barbara J Jensen,ou=People,dc=example,dc=com changetype: delete
دستور INCLUDE (INCLUDE STATEMENT)
تحلیلگر LDIF گسترش یافته است تا از دستور include برای ارجاع به سایر فایلهای LDIF پشتیبانی کند. دستور include باید توسط یک خط خالی از سایر رکوردها جدا شود. فایل ارجاع دادهشده با یک URI از نوع file: مشخص میشود و تمام محتویات آن به گونهای الحاق میشوند که گویی بخشی از فایل LDIF اصلی بودهاند. همانند قبل، سایر طرحهای URI نیز ممکن است پشتیبانی شوند. برای مثال:
dn: dc=example,dc=com objectclass: domain dc: example include: file:///tmp/example.com.ldif dn: dc=example,dc=org objectclass: domain dc: exampleاین قابلیت بخشی از مشخصات LDIF در RFC 2849 نیست اما انتظار میرود در ویرایشهای بعدی این استاندارد گنجانده شود. این ویژگی توسط دستورات ldapadd(1)، ldapmodify(1) و slapadd(8) پشتیبانی میشود.
همچنین ببینید (SEE ALSO)
ldap(3)، ldapsearch(1)، ldapadd(1)، ldapmodify(1)، slapadd(8)، slapcat(8)، slapd-ldif(5).
"LDAP Data Interchange Format," Good, G., RFC 2849.
قدردانی (ACKNOWLEDGEMENTS)
نرمافزار OpenLDAP توسط پروژه OpenLDAP در http://www.openldap.org توسعه یافته و نگهداری میشود. نرمافزار OpenLDAP از نسخه 3.3 LDAP دانشگاه میشیگان برگرفته شده است.
| مه ۲۰۲۵ | OpenLDAP |