SMBPASSWD(8) ابزارهای مدیریت سیستم SMBPASSWD(8)

smbpasswd - تغییر گذرواژه SMB یک کاربر

smbpasswd [-a] [-c <config file>] [-x] [-d] [-e] [-D debuglevel] [-n] [-r <remote machine>] [-R <name resolve order>] [-m] [-U username[%password]] [-h] [-s] [-w pass] [-W] [-i] [-L] [username]

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

برنامه smbpasswd بسته به اینکه توسط کاربر root اجرا شود یا خیر، چندین کارکرد متفاوت دارد. هنگامی که به عنوان یک کاربر عادی اجرا می‌شود، به کاربر اجازه می‌دهد گذرواژه مورد استفاده برای نشست‌های SMB خود را در هر ماشینی که گذرواژه‌های SMB را ذخیره می‌کند، تغییر دهد.

به‌طور پیش‌فرض (هنگامی که بدون هیچ آرگومانی اجرا شود)، تلاش می‌کند گذرواژه SMB کاربر فعلی را در ماشین محلی تغییر دهد. این شیوه شبیه به نحوه کارکرد برنامه passwd(1) است. با این حال، تفاوت smbpasswd با نحوه کارکرد برنامه passwd در این است که setuid root نیست، بلکه در حالت کلاینت-کارساز (client-server) کار می‌کند و با یک دیمن smbd(8) در حال اجرا به‌صورت محلی ارتباط برقرار می‌نماید. در نتیجه، برای اینکه این عمل با موفقیت انجام شود، دیمن smbd باید روی ماشین محلی در حال اجرا باشد. در یک ماشین یونیکس، گذرواژه‌های رمزگذاری‌شده SMB معمولاً در بک‌اند پیش‌فرض passdb ذخیره می‌شوند.

هنگامی که smbpasswd توسط یک کاربر عادی و بدون هیچ گزینه‌ای اجرا شود، گذرواژه قبلی SMB را از وی درخواست می‌کند و سپس گذرواژه جدید را دو بار می‌پرسد تا از صحت تایپ آن اطمینان حاصل شود. هیچ گذرواژه‌ای هنگام تایپ روی صفحه نمایش بازتاب (echo) نخواهد شد. اگر یک گذرواژه خالی SMB دارید (که با رشته "NO PASSWORD" در فایل smbpasswd مشخص می‌شود)، کافی است هنگام درخواست گذرواژه قبلی، کلید <Enter> را فشار دهید.

دستور smbpasswd همچنین می‌تواند توسط یک کاربر عادی برای تغییر گذرواژه SMB در ماشین‌های راه دور، مانند کنترل‌کننده‌های دامنه اصلی (Primary Domain Controllers) ویندوز NT مورد استفاده قرار گیرد. گزینه‌های (-r) و -U در زیر را ببینید.

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

-a

این گزینه مشخص می‌کند که نام کاربری ارائه‌شده پس از آن باید به فایل محلی smbpasswd افزوده شود، به همراه گذرواژه جدیدی که تایپ می‌شود (برای گذرواژه قبلی کلید <Enter> را بزنید). اگر نام کاربری ارائه‌شده از قبل در فایل smbpasswd وجود داشته باشد، این گزینه نادیده گرفته شده و مانند یک دستور عادی تغییر گذرواژه با آن رفتار می‌شود. توجه داشته باشید که بک‌اندهای پیش‌فرض passdb نیاز دارند که کاربر از قبل در فایل گذرواژه سیستم (معمولاً /etc/passwd) وجود داشته باشد، در غیر این صورت درخواست افزودن کاربر با شکست مواجه خواهد شد.

این گزینه فقط هنگام اجرای smbpasswd به عنوان کاربر root در دسترس است.

-c

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

-x

این گزینه مشخص می‌کند که نام کاربری پس از آن باید از فایل محلی smbpasswd حذف شود.

این گزینه فقط هنگام اجرای smbpasswd به عنوان کاربر root در دسترس است.

-d

این گزینه مشخص می‌کند که نام کاربری ارائه‌شده پس از آن باید در فایل محلی smbpasswd غیرفعال شود. این کار با نوشتن پرچم 'D' در فضای کنترل حساب در فایل smbpasswd انجام می‌شود. پس از انجام این کار، تمام تلاش‌ها برای اعتبارسنجی از طریق SMB با استفاده از این نام کاربری با شکست مواجه خواهد شد.

اگر فایل smbpasswd با قالب «قدیمی» (قالب قبل از Samba 2.0) باشد، فضایی در ورودی گذرواژه کاربر برای نوشتن این اطلاعات وجود ندارد و دستور با شکست مواجه خواهد شد (FAIL). برای جزئیات مربوط به قالب‌های «قدیمی» و جدید فایل گذرواژه، به smbpasswd(5) مراجعه کنید.

این گزینه فقط هنگام اجرای smbpasswd به عنوان کاربر root در دسترس است.

-e

این گزینه مشخص می‌کند در صورتی که حساب کاربری قبلاً غیرفعال شده باشد، نام کاربری پس از آن باید در فایل محلی smbpasswd فعال شود. اگر حساب غیرفعال نبوده باشد، این گزینه هیچ تأثیری ندارد. به محض اینکه حساب فعال شود، کاربر بار دیگر قادر خواهد بود از طریق SMB احراز هویت کند.

اگر فایل smbpasswd در قالب «قدیمی» باشد، دستور smbpasswd در فعال‌سازی حساب با شکست مواجه خواهد شد (FAIL). برای جزئیات مربوط به قالب‌های «قدیمی» و جدید فایل گذرواژه، به smbpasswd(5) مراجعه کنید.

این گزینه فقط هنگام اجرای smbpasswd به عنوان کاربر root در دسترس است.

-D debuglevel

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

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

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

-n

این گزینه مشخص می‌کند که گذرواژه نام کاربری ارائه‌شده پس از آن باید در فایل محلی smbpasswd روی null (یعنی یک گذرواژه خالی) تنظیم شود. این کار با نوشتن رشته "NO PASSWORD" به عنوان بخش اول از نخستین گذرواژه ذخیره‌شده در فایل smbpasswd انجام می‌پذیرد.

توجه داشته باشید برای اینکه به کاربران اجازه ورود به کارساز Samba داده شود پس از آنکه گذرواژه در فایل smbpasswd روی "NO PASSWORD" تنظیم شد، مدیر سیستم باید پارامتر زیر را در بخش [global] از فایل smb.conf تنظیم کند:

null passwords = yes

این گزینه فقط هنگام اجرای smbpasswd به عنوان کاربر root در دسترس است.

-r remote machine name

این گزینه به کاربر اجازه می‌دهد مشخص کند تمایل دارد گذرواژه خود را در چه ماشینی تغییر دهد. بدون این پارامتر، smbpasswd به‌طور پیش‌فرض از میزبان محلی (local host) استفاده می‌کند. remote machine name نام NetBIOS کارساز SMB/CIFS برای برقراری ارتباط جهت تلاش برای تغییر گذرواژه است. این نام با استفاده از سازوکار استاندارد تفکیک نام موجود در تمام برنامه‌های مجموعه Samba به یک آدرس IP تبدیل می‌شود. برای جزئیات بیشتر در مورد تغییر این سازوکار تفکیک، پارامتر -R name resolve order را ببینید.

نام کاربری‌ای که گذرواژه‌اش تغییر می‌کند، همان کاربر یونیکس واردشده (logged on) فعلی است. برای جزئیات تغییر گذرواژه برای یک نام کاربری دیگر، پارامتر -U username را مشاهده کنید.

توجه داشته باشید که در صورت تغییر گذرواژه دامنه ویندوز NT، ماشین راه دور مشخص‌شده باید کنترل‌کننده اصلی دامنه (Primary Domain Controller) برای آن دامنه باشد (کنترل‌کننده‌های پشتیبان دامنه فقط یک نسخه فقط‌خواندنی از پایگاه‌داده حساب‌های کاربری دارند و اجازه تغییر گذرواژه را نمی‌دهند).

توجه داشته باشید که ویندوز 95/98 پایگاه‌داده گذرواژه واقعی ندارد، بنابراین تغییر گذرواژه با مشخص کردن یک ماشین Win95/98 به عنوان ماشین مقصد راه دور امکان‌پذیر نیست.

-R name resolve order

این گزینه به کاربر smbpasswd اجازه می‌دهد مشخص کند هنگام جستجوی نام NetBIOS میزبانی که به آن متصل می‌شود، از کدام سرویس‌های تفکیک نام استفاده شود.

گزینه‌ها عبارتند از: "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 فهرست شده‌اند. این روش کم‌اطمینان‌ترین روش تفکیک نام است چرا که به قرار داشتن میزبان مقصد در یک زیرشبکه متصل به‌صورت محلی وابسته است.
ترتیب پیش‌فرض به صورت lmhosts, host, wins, bcast است و بدون این پارامتر یا هر ورودی در فایل smb.conf(5)، روش‌های تفکیک نام به همین ترتیب امتحان خواهند شد.

-m

این گزینه به smbpasswd اعلام می‌کند که حساب در حال تغییر، یک حساب ماشین (MACHINE account) است. در حال حاضر هنگامی که Samba به عنوان یک کنترل‌کننده اصلی دامنه NT استفاده می‌شود، این گزینه کاربرد دارد.

این گزینه فقط هنگام اجرای smbpasswd به عنوان کاربر root در دسترس است.

-U username

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

-h

این گزینه رشته راهنمای smbpasswd را چاپ می‌کند، و نسخه صحیح متناسب با اجرا به عنوان root یا کاربر عادی را انتخاب می‌نماید.

-s

این گزینه باعث می‌شود smbpasswd بی‌صدا (silent) باشد (یعنی اعلان‌ها و پیام‌های درخواست را صادر نکند) و گذرواژه‌های قدیمی و جدید خود را به جای /dev/tty (مشابه کاری که برنامه passwd(1) انجام می‌دهد) از ورودی استاندارد بخواند. این گزینه برای کمک به افرادی است که اسکریپت‌هایی برای هدایت smbpasswd می‌نویسند.

-w password

این پارامتر تنها در صورتی در دسترس است که Samba با پشتیبانی LDAP کامپایل شده باشد. سوئیچ -w برای مشخص کردن گذرواژه‌ای که با ldap admin dn استفاده می‌شود به کار می‌رود. توجه داشته باشید که گذرواژه در فایل secrets.tdb ذخیره شده و بر اساس DN مدیر کلیدگذاری می‌شود. این بدان معناست که اگر مقدار ldap admin dn تغییر کند، گذرواژه نیز باید به‌صورت دستی به‌روزرسانی شود.

-W

نکته: این گزینه مشابه "-w" است، با این تفاوت که گذرواژه باید با استفاده از stdin وارد شود.

این پارامتر تنها در صورتی در دسترس است که Samba با پشتیبانی LDAP کامپایل شده باشد. سوئیچ -W برای مشخص کردن گذرواژه‌ای که با ldap admin dn استفاده می‌شود به کار می‌رود. توجه داشته باشید که گذرواژه در فایل secrets.tdb ذخیره شده و بر اساس DN مدیر کلیدگذاری می‌شود. این بدان معناست که اگر مقدار ldap admin dn تغییر کند، گذرواژه نیز باید به‌صورت دستی به‌روزرسانی شود.

-i

این گزینه به smbpasswd اعلام می‌کند که حساب در حال تغییر، یک حساب اعتماد بین‌دامنه‌ای (interdomain trust account) است. در حال حاضر هنگامی که Samba به عنوان یک کنترل‌کننده اصلی دامنه NT استفاده می‌شود، این گزینه کاربرد دارد. این حساب حاوی اطلاعاتی درباره دامنه مورد اعتماد دیگر است.

این گزینه فقط هنگام اجرای smbpasswd به عنوان کاربر root در دسترس است.

-L

اجرا در حالت محلی (local mode).

username

نام کاربری را مشخص می‌کند که تمام گزینه‌های ویژه root (تنها با دسترسی ریشه) باید روی آن اعمال شوند. فقط کاربر root می‌تواند این پارامتر را تعیین کند زیرا تنها root دسترسی لازم برای تغییر مستقیم ویژگی‌ها در فایل محلی smbpasswd را داراست.

از آنجا که smbpasswd برای یک کاربر غیر root در حالت کلاینت-کارساز (client-server) کار کرده و با یک smbd محلی ارتباط برقرار می‌کند، دیمن smbd برای کارکرد صحیح آن باید در حال اجرا باشد. یک مشکل رایج این است که با مشخص کردن ورودی‌های allow hosts یا deny hosts در فایل smb.conf(5)، محدودیتی برای میزبان‌هایی که می‌توانند به smbd در حال اجرا در ماشین محلی دسترسی داشته باشند اعمال شده و از اعطای مجوز دسترسی "localhost" به smbd غفلت شود.

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

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

smbpasswd(5), Samba(7).

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

08/16/2026 Samba 4.24.6