SMBGET(1) User Commands SMBGET(1)

smbget - ابزاری شبیه به wget برای دانلود فایل‌ها از طریق SMB

smbget [-a, --guest] [-r, --resume] [--recursive] [-D, --dots] [-o, --outputfile] [-q, --quiet] [-v, --verbose] [-b, --blocksize] [-O, --stdout] [-u, --update] [-e, --encrypt] [--limit-rate=INT] [-?|--help] [--usage] [-d|--debuglevel=DEBUGLEVEL] [--debug-stdout] [-s|--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] {smb://host/share/path/to/file} [smb://url2/] [...]

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

برنامهٔ smbget یک ابزار ساده با رفتاری مشابه wget است که می‌تواند فایل‌ها را از سرورهای SMB دانلود کند. شما می‌توانید فایل‌هایی را که قصد دریافت آن‌ها را دارید در خط فرمان مشخص کنید.

فایل‌ها باید مطابق استاندارد smb-URL باشند؛ برای نمونه، استفاده از smb://host/share/file برای مسیر UNC معادل \\\\HOST\\SHARE\\file.

-a, --guest

کار با عنوان کاربر مهمان (guest).

-r, --resume

ازسرگیری خودکار دانلود فایل‌های ناتمام.

--recursive

دانلود بازگشتی فایل‌ها.

-D, --dots

نمایش نقطه به عنوان نشانگر پیشرفت دانلود.

-o, --outputfile

نوشتن فایلی که در حال دانلود است در فایل مشخص‌شده. نمی‌تواند همراه با -R استفاده شود.

--stdout

نوشتن فایلی که در حال دانلود است در خروجی استاندارد (stdout).

-q, --quiet

حالت بی‌صدا (عدم نمایش پیام‌ها).

-v, --verbose

حالت باجزئیات (verbose).

-b, --blocksize

تعداد بایت‌ها برای دانلود در هر بلوک. پیش‌فرض 64000 است.

-u, --update

دانلود تنها زمانی که فایل دوردست تازه‌تر از فایل محلی باشد یا فایل محلی وجود نداشته باشد.

-e, --encrypt

فعال‌سازی رمزنگاری SMB.

--limit-rate=INT

محدود کردن نرخ دانلود به این میزان کیلوبایت بر ثانیه (KB/s).

-?|--help

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

--usage

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

-d|--debuglevel=level

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

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

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

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

--debug-stdout

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

--configfile=<configuration file>;

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

--option=<name>=<value>

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

-l|--log-basename=logdirectory

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

--leak-report

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

--leak-report-full

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

-V|--version

چاپ شمارهٔ نگارش برنامه.

-R|--name-resolve=NAME-RESOLVE-ORDER

این گزینه برای تعیین این که از چه سرویس‌های نام‌گذاری و با چه ترتیبی برای تحلیل نام‌های میزبان به نشانی‌های IP استفاده شود، به کار می‌رود. این گزینه یک رشته جداشده با فاصله از گزینه‌های مختلف تحلیل نام را می‌پذیرد. بهتر است کل عبارت --name-resolve=NAME-RESOLVE-ORDER درون علامت نقل‌قول قرار گیرد.

گزینه‌ها عبارتند از: "lmhosts" ،"host" ،"wins" و "bcast". این گزینه‌ها موجب تحلیل نام‌ها به شیوهٔ زیر می‌شوند:

•lmhosts: جستجوی یک آدرس IP در فایل lmhosts سامبا. اگر خط مربوطه در lmhosts نوع نامی متصل به نام NetBIOS نداشته باشد (برای جزئیات به lmhosts(5) مراجعه کنید)، آن‌گاه هر نوع نامی برای جستجو مطابقت داده می‌شود.
•host: انجام تفکیک نام استاندارد میزبان به آدرس IP با استفاده از جستجوهای /etc/hosts، NIS یا DNS سیستم. این روش تفکیک نام وابسته به سیستم‌عامل است؛ برای نمونه در IRIX یا Solaris این فرایند ممکن است توسط فایل /etc/nsswitch.conf کنترل شود). توجه داشته باشید که این روش تنها در صورتی استفاده می‌شود که نوع نام NetBIOS مورد پرس‌وجو از نوع نام 0x20 (سرور) باشد، در غیر این صورت نادیده گرفته می‌شود.
•wins: پرس‌وجوی یک نام با آدرس IP فهرست‌شده در پارامتر wins server. اگر هیچ سرور WINS مشخص نشده باشد، این روش نادیده گرفته خواهد شد.
•bcast: انجام یک پخش همگانی (broadcast) روی هر یک از رابط‌های محلی شناخته‌شده که در پارامتر interfaces فهرست شده‌اند. این روش کم‌ترین قابلیت اطمینان را در میان روش‌های تفکیک نام دارد، چرا که وابسته به قرار داشتن میزبان مقصد در یک زیرشبکه متصل محلی است.
اگر این پارامتر تنظیم نشود، ترتیب تفکیک نام تعریف‌شده در پارامتر فایل /etc/samba/smb.conf (name resolve order) استفاده خواهد شد.

ترتیب پیش‌فرض lmhosts, host, wins, bcast است. بدون این پارامتر یا هر ورودی دیگری در پارامتر name resolve order از فایل /etc/samba/smb.conf، روش‌های تفکیک نام با همین ترتیب امتحان خواهند شد.

-O|--socket-options=SOCKETOPTIONS

گزینه‌های سوکت TCP برای تنظیم روی سوکت کلاینت. برای فهرست گزینه‌های معتبر، پارامتر socket options را در صفحه راهنمای /etc/samba/smb.conf ببینید.

-m|--max-protocol=MAXPROTOCOL

مقدار این پارامتر (یک رشته) بالاترین سطح پروتکلی است که توسط کلاینت پشتیبانی خواهد شد.

توجه داشته باشید که مشخص کردن این پارامتر در اینجا، پارامتر client max protocol را در فایل /etc/samba/smb.conf بازنویسی خواهد کرد.

-n|--netbiosname=NETBIOSNAME

این گزینه به شما امکان می‌دهد نام NetBIOS که Samba برای خود استفاده می‌کند را بازنویسی کنید. این عمل معادل تنظیم پارامتر netbios name در فایل /etc/samba/smb.conf است. با این حال، مقدار تنظیم‌شده در خط فرمان نسبت به تنظیمات موجود در /etc/samba/smb.conf اولویت خواهد داشت.

--netbios-scope=SCOPE

یک دامنه NetBIOS را مشخص می‌کند که nmblookup هنگام تولید نام‌های NetBIOS برای ارتباط با آن استفاده خواهد کرد. برای جزئیات بیشتر درباره کاربرد دامنه‌های NetBIOS، به rfc1001.txt و rfc1002.txt مراجعه کنید. دامنه‌های NetBIOS بسیار به ندرت استفاده می‌شوند؛ این پارامتر را تنها در صورتی تنظیم کنید که مدیر سیستمی باشید که مسئولیت تمام سیستم‌های NetBIOS مورد ارتباط را بر عهده دارد.

-W|--workgroup=WORKGROUP

تنظیم دامین SMB مربوط به نام کاربری. این گزینه دامین پیش‌فرض را که همان دامین تعریف‌شده در smb.conf است بازنویسی می‌کند. اگر دامین مشخص‌شده با نام NetBIOS سرور یکسان باشد، موجب می‌شود که کلاینت با استفاده از SAM محلی سرور (در مقایسه با Domain SAM) وارد شود.

توجه داشته باشید که مشخص کردن این پارامتر در اینجا، پارامتر workgroup را در فایل /etc/samba/smb.conf بازنویسی خواهد کرد.

-r|--realm=REALM

تنظیم قلمرو (realm) برای دامین.

توجه داشته باشید که مشخص کردن این پارامتر در اینجا، پارامتر realm را در فایل /etc/samba/smb.conf بازنویسی خواهد کرد.

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

تنظیم نام کاربری SMB یا نام کاربری و گذرواژه.

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

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

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

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

-N|--no-pass

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

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

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

--password

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

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

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

در نهایت متغیر PASSWD_FILE (شامل مسیر فایلی که باید باز شود) را بررسی می‌کند. این فایل باید تنها حاوی گذرواژه باشد. اطمینان حاصل کنید که مجوزهای دسترسی روی فایل، دسترسی کاربران غیرمجاز را محدود کرده باشد!

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

--pw-nt-hash

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

-A|--authentication-file=filename

این گزینه به شما اجازه می‌دهد فایلی را مشخص کنید که نام کاربری و گذرواژه مورد استفاده در اتصال از آن خوانده شود. قالب این فایل به این صورت است:.sp
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

مکان حافظهٔ پنهان اعتبارنامه را برای احراز هویت 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.

نشانی‌های اینترنتی SMB باید در قالب زیر مشخص شوند:

smb://[[[domain;]user[:password@]]server[/share[/path[/file]]]]
smb:// به معنای تمام workgroupها است
smb://name/ بدین معناست که اگر name یک workgroup باشد، تمام سرورهای این workgroup، یا اگر name یک سرور باشد، تمام اشتراک‌های روی این سرور.
# بارگیری بازگشتی پوشه 'src'
smbget --recursive smb://rhonwyn/jelmer/src
# بارگیری ISO مربوط به FreeBSD و فعال‌سازی قابلیت ادامه دادن
smbget --resume smb://rhonwyn/isos/FreeBSD5.1.iso
# بارگیری بازگشتی تمام ISOها
smbget --recursive --resume smb://rhonwyn/isos
# پشتیبان‌گیری از داده‌های من روی rhonwyn
smbget --recursive -resume smb://rhonwyn/

در برخی موارد که علت خطا نامشخص است (مانند نشانی اینترنتی smb:// با قالب نادرست یا تلاش برای دریافت یک دایرکتوری بدون فعال بودن گزینه --resursive)، خطای «Permission denied» بازگردانده می‌شود.

این صفحه راهنما بخشی از نسخه 4.24.6 مجموعه نرم‌افزاری Samba است.

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

صفحه راهنمای smbget توسط Jelmer Vernooij نوشته شده است.

08/16/2026 Samba 4.24.6