MDSEARCH(1) User Commands MDSEARCH(1)

mdsearch - اجرای جستجوهای Spotlight روی یک سرور SMB

mdfine {server} {sharename} {query} [-p, --path=STRING] [-L, --live] [-?|--help] [--usage] [-d|--debuglevel=DEBUGLEVEL] [--debug-stdout] [--configfile=CONFIGFILE] [--option=name=value] [-l|--log-basename=LOGFILEBASE] [--leak-report] [--leak-report-full] [-R|--name-resolve=NAME-RESOLVE-ORDER] [-O|--socket-options=SOCKETOPTIONS] [-m|--max-protocol=MAXPROTOCOL] [-n|--netbiosname=NETBIOSNAME] [--netbios-scope=SCOPE] [-W|--workgroup=WORKGROUP] [--realm=REALM] [-U|--user=[DOMAIN/]USERNAME[%PASSWORD]] [-N|--no-pass] [--password=STRING] [--pw-nt-hash] [-A|--authentication-file=FILE] [-P|--machine-pass] [--simple-bind-dn=DN] [--use-kerberos=desired|required|off] [--use-krb5-ccache=CCACHE] [--use-winbind-ccache] [--client-protection=sign|encrypt|off] [-V|--version]

این ابزار بخشی از مجموعهٔ samba(1) است.

دستور mdsearch یک ابزار ساده برای اجرای جستجوهای Spotlight روی یک سرور SMB است که سرویس RPC مربوط به Spotlight به نام mdssvc را اجرا می‌کند.

server

نام سرور SMB یا نشانی IP آن برای اتصال.

sharename

نام یک اشتراک (share) روی سرور.

query

نحو عبارت پرس‌وجو شکل ساده‌شده‌ای از انطباق الگوهای نام فایل (globbing) است که برای کاربران پوسته آشناست. پرس‌وجوها ساختار زیر را دارند:

attribute=="value"

برای پرس‌وجوها روی یک سرور Samba که ویژگی Spotlight با استفاده از بَک‌اِند Elasticsearch در آن فعال است، فهرست ویژگی‌های فرادادهٔ (metadata) پشتیبانی‌شده در فایل نگاشت ویژگی‌های JSON که معمولاً در مسیر /usr/share/samba/mdssvc/elasticsearch_mappings.json نصب شده، ارائه شده است.

-p PATH, --path=PATH

مسیر سمت سرور برای جستجو، پیش‌فرض "/" است.

-L, --live

پرس‌وجو در حال اجرا باقی می‌ماند.

-?|--help

چاپ خلاصه‌ای از گزینه‌های خط فرمان.

--usage

نمایش پیام کوتاه نحوهٔ استفاده.

-d|--debuglevel=level

level یک عدد صحیح از 0 تا 10 است. در صورت مشخص نشدن این پارامتر، مقدار پیش‌فرض برای برنامه‌های کلاینت 1 است.

هرچه این مقدار بیشتر باشد، جزئیات بیشتری دربارهٔ فعالیت‌های سرور در فایل‌های لاگ ثبت خواهد شد. در سطح 0، تنها خطاهای بحرانی و هشدارهای جدی ثبت می‌شوند. سطح 1 سطحی معقول برای استفادهٔ روزمره است - مقدار کمی از اطلاعات مربوط به عملیات انجام‌شده را تولید می‌کند.

سطوح بالاتر از 1 مقادیر قابل توجهی داده‌های لاگ تولید می‌کنند و فقط باید هنگام بررسی مشکلات استفاده شوند. سطوح بالاتر از 3 فقط برای استفادهٔ توسعه‌دهندگان طراحی شده‌اند و مقادیر فوق‌العاده زیادی دادهٔ لاگ تولید می‌کنند که بیشتر آن‌ها بسیار مبهم هستند.

توجه داشته باشید که تعیین این پارامتر در اینجا، پارامتر log level را در فایل /etc/samba/smb.conf بازنویسی می‌کند.

--debug-stdout

این گزینه خروجی اشکال‌زدایی را به STDOUT هدایت می‌کند. به‌طور پیش‌فرض، همهٔ کلاینت‌ها وقایع را در STDERR ثبت می‌کنند.

--configfile=<configuration file>;

فایل مشخص‌شده حاوی جزئیات پیکربندی مورد نیاز کلاینت است. اطلاعات موجود در این فایل می‌تواند عمومی (برای کلاینت و سرور) باشد یا تنها گزینه‌های ویژهٔ کلاینت مانند client smb encrypt را فراهم کند. برای اطلاعات بیشتر /etc/samba/smb.conf را ببینید. نام پیش‌فرض فایل پیکربندی در زمان کامپایل تعیین می‌شود.

--option=<name>=<value>

گزینهٔ "<name>" در smb.conf(5) را از خط فرمان به مقدار "<value>" تنظیم می‌کند. این کار مقادیر پیش‌فرض زمان کامپایل و گزینه‌های خوانده‌شده از فایل پیکربندی را بازنویسی می‌کند. اگر یک نام یا مقدار حاوی فاصله است، کل عبارت --option=name=value را داخل علامت نقل‌قول قرار دهید.

-l|--log-basename=logdirectory

نام دایرکتوری پایه برای فایل‌های لاگ/اشکال‌زدایی. پسوند ".progname" به انتهای آن الحاق خواهد شد (به عنوان مثال log.smbclient، log.smbd و غیره). فایل لاگ هرگز توسط کلاینت حذف نمی‌شود.

--leak-report

فعال‌سازی گزارش نشت حافظهٔ talloc هنگام خروج.

--leak-report-full

فعال‌سازی گزارش کامل نشت حافظهٔ talloc هنگام خروج.

-V|--version

شماره نسخهٔ برنامه را چاپ می‌کند.

-U|--user=[DOMAIN\]USERNAME[%PASSWORD]

نام کاربری یا نام کاربری و گذرواژهٔ SMB را تعیین می‌کند.

اگر PASSWORD% مشخص نشود، از کاربر درخواست خواهد شد. کلاینت ابتدا متغیر محیطی USER (که مجاز است گذرواژه را نیز جدا شده با % در بر داشته باشد)، سپس متغیر LOGNAME (که مجاز به داشتن گذرواژه نیست) را بررسی می‌کند و در صورت وجود هر یک، از آن مقدار استفاده می‌شود. اگر این متغیرهای محیطی یافت نشوند، ممکن است از نام کاربری موجود در کش اعتبارسنجی Kerberos استفاده شود.

گزینهٔ سوم، استفاده از یک فایل اعتبارسنجی (credentials) است که حاوی متن خام نام کاربری و گذرواژه است. این گزینه عمدتاً برای اسکریپت‌هایی فراهم شده است که در آن‌ها مدیر سیستم مایل نیست اطلاعات احراز هویت را در خط فرمان یا از طریق متغیرهای محیطی انتقال دهد. در صورت استفاده از این روش، مطمئن شوید که مجوزهای فایل، دسترسی کاربران غیرمجاز را محدود کرده باشد. برای جزئیات بیشتر -A را ببینید.

در مورد گنجاندن گذرواژه‌ها در اسکریپت‌ها یا ارسال مقادیر عرضه‌شده توسط کاربر در خط فرمان محتاط باشید. از نظر امنیتی بهتر است در صورت نیاز، بگذارید ابزار کلاینت Samba خود گذرواژه را درخواست کند، یا گذرواژه را یک‌بار با kinit دریافت کنید.

اگرچه Samba تلاش می‌کند تا گذرواژه را از عنوان فرایند (همان‌طور که در ps دیده می‌شود) پاک کند، اما این کار پس از راه‌اندازی انجام می‌شود و بنابراین مستعد شرایط رقابتی (race condition) است.

-N|--no-pass

در صورت تعیین، این پارامتر از درخواست معمول گذرواژه از کاربر توسط کلاینت جلوگیری می‌کند. این ویژگی هنگام دسترسی به سرویسی که نیاز به گذرواژه ندارد مفید است.

مگر اینکه گذرواژه‌ای در خط فرمان مشخص شده باشد یا این پارامتر تعیین شده باشد، کلاینت درخواست گذرواژه خواهد کرد.

اگر گذرواژه‌ای در خط فرمان تعیین شده باشد و این گزینه نیز تعریف گردد، گذرواژهٔ خط فرمان بدون هشدار نادیده گرفته شده و هیچ گذرواژه‌ای استفاده نخواهد شد.

--password

گذرواژه را در خط فرمان مشخص می‌کند.

در مورد گنجاندن گذرواژه‌ها در اسکریپت‌ها یا ارسال مقادیر عرضه‌شده توسط کاربر در خط فرمان محتاط باشید. از نظر امنیتی بهتر است در صورت نیاز، بگذارید ابزار کلاینت Samba خود گذرواژه را درخواست کند، یا گذرواژه را یک‌بار با kinit دریافت کنید.

اگر --password مشخص نشده باشد، این ابزار متغیر محیطی PASSWD و در ادامه PASSWD_FD را بررسی می‌کند که انتظار می‌رود شامل یک شماره توصیف‌گر فایل (FD) باز باشد..sp در نهایت، PASSWD_FILE (شامل مسیر فایلی که باید باز شود) را بررسی خواهد کرد. این فایل باید تنها حاوی گذرواژه باشد. اطمینان حاصل کنید که مجوزهای دسترسی فایل، از دسترسی کاربران غیرمجاز جلوگیری می‌کند!

اگرچه Samba تلاش خواهد کرد تا گذرواژه را از عنوان فرایند (همان‌طور که در ps دیده می‌شود) پاک کند، اما این کار پس از راه‌اندازی صورت می‌گیرد و بنابراین در معرض شرایط رقابتی (race condition) است.

--pw-nt-hash

گذرواژه ارائه‌شده یک درهم‌ساز (hash) از نوع NT است.

-A|--authentication-file=filename

این گزینه به شما اجازه می‌دهد فایلی را مشخص کنید که نام کاربری و گذرواژهٔ استفاده‌شده در اتصال از آن خوانده شود. قالب این فایل بدین صورت است:
username = <value>
password = <value>
domain   = <value>

اطمینان حاصل کنید که مجوزهای دسترسی فایل، از دسترسی کاربران غیرمجاز جلوگیری می‌کند!

-P|--machine-pass

استفاده از گذرواژهٔ ذخیره‌شدهٔ حساب ماشین.

--simple-bind-dn=DN

مقدار DN مورد استفاده برای یک اتصال ساده (simple bind).

--use-kerberos=desired|required|off

این پارامتر مشخص می‌کند که آیا ابزارهای کلاینت Samba تلاش کنند با استفاده از Kerberos احراز هویت انجام دهند یا خیر. برای احراز هویت Kerberos باید هنگام اتصال به یک سرویس، به جای نشانی‌های IP از نام‌های DNS استفاده کنید. به‌طور پیش‌فرض، ابزارهای کلاینت Samba تلاش می‌کنند از حافظهٔ پنهان اعتبارنامهٔ پیش‌فرض Kerberos (ccache) استفاده کنند. در صورتی که ccache وجود نداشته باشد یا گزینهٔ -U|--user مشخص شده باشد، کلاینت‌ها درخواست وارد کردن گذرواژه را کرده و یک بلیت Kerberos (kinit) برای شما دریافت می‌کنند. اگر می‌خواهید از یک حافظهٔ پنهان اعتبارنامهٔ Kerberos دیگر استفاده کنید، از گزینهٔ --use-krb5-ccache استفاده کنید.

توجه داشته باشید که مشخص کردن این پارامتر در اینجا، مقدار پارامتر client use kerberos در فایل /etc/samba/smb.conf را نادیده می‌گیرد و جایگزین آن می‌شود.

--use-krb5-ccache=CCACHE

مکان حافظهٔ پنهان اعتبارنامه (credential cache) را برای احراز هویت Kerberos مشخص می‌کند.

این گزینه --use-kerberos=required را اجباری می‌کند.

--use-winbind-ccache

تلاش برای استفاده از حافظهٔ پنهان اعتبارنامهٔ winbind.

--client-protection=sign|encrypt|off

سطح حفاظت از اتصالی را که ابزار کلاینت باید استفاده کند، تنظیم می‌کند.

توجه داشته باشید که مشخص کردن این پارامتر در اینجا، مقدار پارامتر client protection در فایل /etc/samba/smb.conf را نادیده می‌گیرد و جایگزین آن می‌شود.

در صورتی که به کنترل دقیق‌تری نیاز دارید می‌توانید از این گزینه‌ها استفاده کنید: --option=clientsmbencrypt=OPTION, --option=clientipcsigning=OPTION, --option=clientsigning=OPTION.

جستجو در تمام مشخصه‌های فرادادهٔ نمایه‌شده، تطابق دقیق:

'*=="Samba"'

جستجو در تمام مشخصه‌های فرادادهٔ نمایه‌شده، تطابق پیشوندی:

'*=="Samba*"'

جستجو بر اساس نام فایل:

'kMDItemFSName=="Samba*"'

جستجو بر اساس تاریخ:

'kMDItemFSContentChangeDate<$time.iso(2018-10-01T10:00:00Z)'

جستجو در محتوای فایل‌ها:

'kMDItemTextContent=="Samba*"'

عبارت‌ها:

kMDItemFSName=="Samba*"||kMDItemTextContent=="Tango*"'

File Metadata Search Programming Guide https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/SpotlightQuery/Concepts/Introduction.html

این صفحهٔ راهنما بخشی از نسخهٔ 4.24.6 از مجموعهٔ Samba است..SH "نویسنده (AUTHOR)"

نرم‌افزار اصلی Samba و ابزارهای مرتبط با آن توسط Andrew Tridgell ساخته شده‌اند. Samba اکنون توسط Samba Team به‌عنوان یک پروژه متن‌باز، مشابه شیوه توسعه هسته Linux توسعه داده می‌شود.

صفحه راهنمای mdsearch توسط Ralph Boehme نوشته شده است.

08/16/2026 Samba 4.24.6