LDAPSEARCH(1) دستورات کاربر LDAPSEARCH(1)

ldapsearch - ابزار جستجو در LDAP

ldapsearch [-V[V]] [-d debuglevel] [-n] [-v] [-c] [-u] [-t[t]] [-T path] [-F prefix] [-A] [-L[L[L]]] [-S attribute] [-b searchbase] [-s {base|one|sub|children}] [-a {never|always|search|find}] [-l timelimit] [-z sizelimit] [-f file] [-M[M]] [-x] [-D binddn] [-W] [-w passwd] [-y passwdfile] [-H ldapuri] [-P {2|3}] [-e [!]ext[=extparam]] [-E [!]ext[=extparam]] [-o opt[=optparam]] [-O security-properties] [-I] [-Q] [-N] [-U authcid] [-R realm] [-X authzid] [-Y mech] [-Z[Z]] filter [attrs...]

ldapsearch یک رابط قابل دسترسی از خط فرمان برای فراخوانی کتابخانه‌ای ldap_search_ext(3) است.

ldapsearch اتصالی به یک کارساز LDAP باز می‌کند، عملیات اتصال (bind) را انجام می‌دهد و یک جستجو را با استفاده از پارامترهای مشخص‌شده اجرا می‌کند. filter باید با نمایش رشته‌ای فیلترهای جستجو بر اساس تعریف RFC 4515 مطابقت داشته باشد. در صورت مشخص نشدن، فیلتر پیش‌فرض، (objectClass=*)، استفاده می‌شود.

اگر ldapsearch یک یا چند مدخل پیدا کند، ویژگی‌های مشخص‌شده توسط attrs بازگردانده می‌شوند. اگر * درج شده باشد، تمام ویژگی‌های کاربری بازگردانده می‌شوند. اگر + درج شده باشد، تمام ویژگی‌های عملیاتی بازگردانده می‌شوند. اگر هیچ attrsای درج نشده باشد، تمام ویژگی‌های کاربری بازگردانده می‌شوند. اگر تنها 1.1 درج شده باشد، هیچ ویژگی بازگردانده نخواهد شد.

نتایج جستجو با استفاده از یک نسخه گسترش‌یافته از LDIF نمایش داده می‌شوند. گزینه -L قالب خروجی را کنترل می‌کند.

چاپ اطلاعات نسخه. اگر -VV داده شود، پس از ارائه اطلاعات نسخه خارج می‌شود. در غیر این صورت با جستجوی مشخص‌شده ادامه می‌دهد.
تنظیم سطح اشکال‌زدایی LDAP روی debuglevel. برای اینکه این گزینه تأثیری داشته باشد، ldapsearch باید با تعریف LDAP_DEBUG کامپایل شده باشد.
نمایش آنچه انجام خواهد شد، بدون اجرای واقعی جستجو. برای اشکال‌زدایی در ترکیب با -v مفید است.
اجرا در حالت پرگو (verbose)، با نوشتن پیام‌های تشخیصی فراوان در خروجی استاندارد.
حالت عملیات مداوم. خطاها گزارش می‌شوند، اما ldapsearch به جستجوها ادامه خواهد داد. رفتار پیش‌فرض این است که پس از گزارش یک خطا خارج شود. فقط در ترکیب با -f مفید است.
گنجاندن شکل نام کاربرپسند (User Friendly Name) از نام متمایز (DN) در خروجی.
یک بار استفاده از -t مقادیر غیرقابل‌چاپ دریافت‌شده را در مجموعه‌ای از فایل‌های موقت می‌نویسد. این گزینه برای برخورد با مقادیری که شامل داده‌های غیرنویسه‌ای مانند jpegPhoto یا audio هستند مفید است. استفاده مجدد -t تمام مقادیر دریافت‌شده را در فایل‌ها می‌نویسد.
نوشتن فایل‌های موقت در شاخه مشخص‌شده توسط path (پیش‌فرض: شاخه موقت پیش‌فرض سیستم). متغیرهای محیطی TMPDIR، TMP، یا TEMP مسیر پیش‌فرض را لغو (override) خواهند کرد.
پیشوند URL برای فایل‌های موقت. پیش‌فرض file://path است که در آن path همان شاخه موقت پیش‌فرض سیستم یا مقدار مشخص‌شده با -T است.
تنها دریافت ویژگی‌ها (بدون مقادیر). زمانی مفید است که فقط می‌خواهید وجود یک ویژگی در یک مدخل را بررسی کنید و به مقادیر خاص آن علاقه‌ای ندارید.
نتایج جستجو در قالب تبادل داده LDAP شرح‌داده‌شده در ldif(5) نمایش داده می‌شوند. یک بار -L خروجی را به LDIFv1 محدود می‌کند. دومین -L توضیحات (کامنت‌ها) را غیرفعال می‌کند. سومین -L چاپ نسخه LDIF را غیرفعال می‌کند. حالت پیش‌فرض استفاده از نسخه گسترش‌یافته‌ای از LDIF است.
مرتب‌سازی مدخل‌های بازگردانده‌شده بر اساس attribute. حالت پیش‌فرض، عدم مرتب‌سازی مدخل‌های بازگردانده‌شده است. اگر attribute یک رشته با طول صفر ("") باشد، مدخل‌ها بر اساس مؤلفه‌های نام متمایز (DN) خود مرتب می‌شوند. برای جزئیات بیشتر به ldap_sort(3) مراجعه کنید. توجه داشته باشید که ldapsearch معمولاً مدخل‌ها را به محض دریافت چاپ می‌کند. استفاده از گزینه -S این رفتار را خنثی می‌کند و باعث می‌شود تمام مدخل‌ها ابتدا دریافت، سپس مرتب و در نهایت چاپ شوند.
استفاده از searchbase به‌عنوان نقطه شروع جستجو به‌جای مقدار پیش‌فرض.
مشخص کردن محدوده (scope) جستجو به عنوان یکی از مقادیر base، one، sub یا children تا جستجوی شیء پایه، تک‌سطحی، زیردرخت، یا فرزندان را مشخص کند. مقدار پیش‌فرض sub است. نکته: محدوده children نیازمند افزونه ویژگی زیرمجموعه (subordinate) در LDAPv3 است.
مشخص کردن نحوه ارجاع‌زدایی (dereferencing) نام‌های مستعار. باید یکی از مقادیر never، always، search یا find باشد تا مشخص کند نام‌های مستعار هرگز ارجاع‌زدایی نشوند، همیشه ارجاع‌زدایی شوند، هنگام جستجو ارجاع‌زدایی شوند، یا تنها هنگام تعیین محل شیء پایه برای جستجو ارجاع‌زدایی شوند. مقدار پیش‌فرض هرگز ارجاع‌زدایی نکردن نام‌های مستعار است.
حداکثر به مدت timelimit ثانیه برای تکمیل یک جستجو منتظر می‌ماند. محدودیت زمانی 0 (صفر) یا none به معنی نبود محدودیت است. محدودیت زمانی max به معنای حداکثر عدد صحیح مجاز توسط پروتکل است. یک کارساز ممکن است حداکثر محدودیت زمانی اعمال کند که تنها کاربر ریشه مجاز به لغو آن است.
حداکثر sizelimit مدخل را برای یک جستجو بازیابی می‌کند. محدودیت اندازه 0 (صفر) یا none به معنی نبود محدودیت است. محدودیت اندازه max به معنای حداکثر عدد صحیح مجاز توسط پروتکل است. یک کارساز ممکن است حداکثر محدودیت اندازه‌ای اعمال کند که تنها کاربر ریشه مجاز به لغو آن است.
خواندن یک سری خطوط از file، و انجام یک جستجوی LDAP برای هر خط. در این حالت، filter داده‌شده در خط فرمان به‌عنوان یک الگو در نظر گرفته می‌شود که در آن اولین و تنها رخداد %s با خطی از file جایگزین می‌شود. هر رخداد دیگری از نویسه % در الگو به‌عنوان خطا در نظر گرفته خواهد شد. در مواردی که لازم است فیلتر جستجو شامل یک نویسه % باشد، نویسه باید به صورت \25 کدگذاری شود (به RFC 4515 مراجعه کنید). اگر file نویسه تکی - باشد، خطوط از ورودی استاندارد خوانده می‌شوند. ldapsearch با بازگردانده شدن نخستین نتیجه جستجوی ناموفق خارج خواهد شد، مگر اینکه از -c استفاده شده باشد.
فعال‌سازی کنترل Manage DSA IT. گزینه -MM کنترل را حیاتی (critical) می‌کند.
استفاده از احراز هویت ساده به‌جای SASL.
استفاده از نام متمایز binddn برای اتصال به شاخه راهنمای LDAP. برای اتصال‌های SASL، انتظار می‌رود کارساز این مقدار را نادیده بگیرد.
درخواست اعلان گذرواژه برای احراز هویت ساده. این گزینه به‌جای مشخص کردن گذرواژه در خط فرمان استفاده می‌شود.
استفاده از passwd به‌عنوان گذرواژه برای احراز هویت ساده.
استفاده از محتویات کامل passwdfile به‌عنوان گذرواژه برای احراز هویت ساده.
مشخص کردن URI(های) ارجاع‌دهنده به کارساز(های) LDAP؛ فهرستی از URIها که با فاصله یا کاما از یکدیگر جدا شده‌اند مورد انتظار است؛ تنها فیلدهای پروتکل/میزبان/درگاه مجاز هستند. به‌عنوان یک استثنا، اگر میزبان/درگاه مشخص نشده باشد اما یک DN مشخص شده باشد، از DN برای جستجوی میزبان(های) متناظر با استفاده از رکوردهای DNS SRV مطابق با RFC 2782 استفاده می‌شود. DN باید دنباله‌ای غیرخالی از AVAهایی باشد که نوع ویژگی آن‌ها "dc" (مؤلفه دامنه) است، و باید بر اساس RFC 2396 اسکیپ شود.
مشخص کردن نسخه پروتکل LDAP مورد استفاده.

مشخص کردن افزونه‌های عمومی با -e و افزونه‌های جستجو با -E. علامت ´!´ نشان‌دهنده حیاتی بودن (criticality) است.

افزونه‌های عمومی:

[!]assert=<filter>    (یک فیلتر RFC 4515)
!authzid=<authzid>    ("dn:<dn>" یا "u:<user>")
[!]bauthzid           (کنترل authzid طبق RFC 3829)
[!]chaining[=<resolve>[/<cont>]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=<attrs>] (فهرست ویژگی‌های جداشده با کاما)
[!]preread[=<attrs>]  (فهرست ویژگی‌های جداشده با کاما)
[!]relax
sessiontracking[=<username>]
abandon,cancel,ignore (سیگنال SIGINT عملیات abandon/cancel می‌فرستد،
یا پاسخ را نادیده می‌گیرد؛ اگر حیاتی باشد، منتظر SIGINT نمی‌ماند.
در اصل کنترل نیستند)

افزونه‌های جستجو:

!dontUseCopy
[!]domainScope                       (محدوده دامنه)
[!]mv=<filter>                       (فیلتر مقادیر منطبق)
[!]pr=<size>[/prompt|noprompt]       (نتایج صفحه‌بندی‌شده/prompt)
[!]sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...]  (مرتب‌سازی سمت کارساز)
[!]subentries[=true|false]           (مدخل‌های فرعی)
[!]sync=ro[/<cookie>]                (همگام‌سازی LDAP به صورت refreshOnly)
        rp[/<cookie>][/<slimit>]     (همگام‌سازی LDAP به صورت refreshAndPersist)
[!]vlv=<before>/<after>(/<offset>/<count>|:<value>)  (نمای فهرست مجازی)
[!]deref=derefAttr:attr[,attr[...]][;derefAttr:attr[,attr[...]]]
[!]<oid>[=:<value>|=::<b64value>]

مشخص کردن هر گزینه‌ای از ldap.conf(5) یا یکی از موارد زیر:

nettimeout=<timeout>  (به ثانیه، یا "none" یا "max")
ldif_wrap=<width>     (بر حسب ستون، یا "no" برای عدم شکست خط)
مشخص کردن ویژگی‌های امنیتی SASL.
فعال‌سازی حالت تعاملی SASL. همیشه اعلان ورودی می‌دهد. حالت پیش‌فرض اعلان ورودی تنها در صورت نیاز است.
فعال‌سازی حالت ساکت SASL. هرگز اعلان ورودی نمی‌دهد.
عدم استفاده از DNS معکوس برای یکسان‌سازی نام میزبان SASL.
مشخص کردن شناسه احراز هویت برای اتصال SASL. قالب شناسه به سازوکار واقعی SASL مورد استفاده بستگی دارد.
مشخص کردن قلمرو (realm) شناسه احراز هویت برای اتصال SASL. قالب قلمرو به سازوکار واقعی SASL مورد استفاده بستگی دارد.
مشخص کردن شناسه مجوز درخواستی برای اتصال SASL. authzid باید یکی از قالب‌های زیر باشد: dn:<distinguished name> یا u:<username>
مشخص کردن سازوکار SASL مورد استفاده برای احراز هویت. در صورت مشخص نشدن، برنامه بهترین سازوکاری را که کارساز می‌شناسد انتخاب خواهد کرد.
ارسال عملیات گسترده StartTLS (امنیت لایه انتقال). در صورت استفاده از -ZZ، این دستور مستلزم موفقیت‌آمیز بودن عملیات خواهد بود.

اگر یک یا چند مدخل پیدا شوند، هر مدخل به خروجی استاندارد در قالب تبادل داده LDAP یا ldif(5) نوشته می‌شود:

version: 1
# bjensen, example, net
dn: uid=bjensen,dc=example,dc=net
objectClass: person
objectClass: dcObject
uid: bjensen
cn: Barbara Jensen
sn: Jensen
...

اگر گزینه -t استفاده شود، نشانی URI یک فایل موقت به‌جای مقدار واقعی استفاده می‌شود. اگر گزینه -A داده شود، تنها بخش "نام ویژگی" نوشته می‌شود.

دستور زیر:

ldapsearch -LLL "(sn=smith)" cn sn telephoneNumber

یک جستجوی زیردرخت (با استفاده از پایه جستجوی پیش‌فرض و سایر پارامترهای تعریف‌شده در ldap.conf(5)) برای مدخل‌هایی با نام خانوادگی (sn) برابر با smith انجام خواهد داد. مقادیر نام عمومی (cn)، نام خانوادگی (sn) و شماره تلفن (telephoneNumber) دریافت شده و در خروجی استاندارد چاپ می‌شوند. اگر دو مدخل پیدا شوند، خروجی ممکن است شبیه به این باشد:

dn: uid=jts,dc=example,dc=com
cn: John Smith
cn: John T. Smith
sn: Smith
sn;lang-en: Smith
sn;lang-de: Schmidt
telephoneNumber: 1 555 123-4567
dn: uid=sss,dc=example,dc=com
cn: Steve Smith
cn: Steve S. Smith
sn: Smith
sn;lang-en: Smith
sn;lang-de: Schmidt
telephoneNumber: 1 555 765-4321

دستور:

ldapsearch -LLL -u -t "(uid=xyz)" jpegPhoto audio

یک جستجوی زیردرخت را با استفاده از پایه جستجوی پیش‌فرض برای مدخل‌هایی با شناسه کاربری "xyz" انجام می‌دهد. شکل کاربرپسند DN مدخل پس از خطی که شامل خود DN است نمایش داده می‌شود، و مقادیر jpegPhoto و audio دریافت شده و در فایل‌های موقت نوشته می‌شوند. اگر یک مدخل با یک مقدار برای هر یک از ویژگی‌های درخواستی پیدا شود، خروجی ممکن است به این صورت باشد:

dn: uid=xyz,dc=example,dc=com
ufn: xyz, example, com
audio:< file:///tmp/ldapsearch-audio-a19924
jpegPhoto:< file:///tmp/ldapsearch-jpegPhoto-a19924

این دستور:

ldapsearch -LLL -s one -b "c=US" "(o=University*)" o description

یک جستجوی یک‌سطحی در سطح c=US برای تمام مدخل‌هایی که نام سازمان (o) آن‌ها با University آغاز می‌شود انجام می‌دهد. مقادیر ویژگی‌های نام سازمان و توضیحات (description) دریافت شده و در خروجی استاندارد چاپ می‌شوند و خروجی مشابه زیر را به همراه خواهند داشت:

dn: o=University of Alaska Fairbanks,c=US
o: University of Alaska Fairbanks
description: Naturally Inspiring
description: leaf node only
dn: o=University of Colorado at Boulder,c=US
o: University of Colorado at Boulder
description: No personnel information
description: Institution of education and research
dn: o=University of Colorado at Denver,c=US
o: University of Colorado at Denver
o: UCD
o: CU/Denver
o: CU-Denver
description: Institute for Higher Learning and Research
dn: o=University of Florida,c=US
o: University of Florida
o: UFl
description: Warper of young minds
...

در صورت عدم وقوع خطا، وضعیت خروج صفر است. خطاها منجر به وضعیت خروج غیرصفر و نوشته شدن یک پیام تشخیصی در خطای استاندارد می‌شوند.

ldapadd(1)، ldapdelete(1)، ldapmodify(1)، ldapmodrdn(1)، ldap.conf(5)، ldif(5)، ldap(3)، ldap_search_ext(3)، ldap_sort(3)

پروژه اوپن‌ال‌دپ http://www.openldap.org

OpenLDAP Software توسط پروژه اوپن‌ال‌دپ توسعه یافته و نگهداری می‌شود http://www.openldap.org. OpenLDAP Software از نسخه 3.3 LDAP دانشگاه میشیگان برگرفته شده است.

2026-03-09 OpenLDAP 2.6.13