SMBPASSWD(5) File Formats and Conventions SMBPASSWD(5)

smbpasswd - فایل رمزهای عبور رمزگذاری‌شده سامبا

smbpasswd

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

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

قالب فایل smbpasswd مورد استفاده در Samba 2.2 بسیار شبیه به فایل آشنای یونیکس یعنی passwd(5) است. این یک فایل متنی ASCII است که برای هر کاربر یک خط دارد. هر فیلد در هر خط با علامت دو نقطه (:) از فیلد بعدی جدا می‌شود. هر ورودی که با کاراکتر '#' آغاز شود نادیده گرفته می‌شود. فایل smbpasswd شامل اطلاعات زیر برای هر کاربر است:

name

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

uid

شناسه کاربری عددی یونیکس (UID) است. این مقدار باید دقیقاً با فیلد uid همان کاربر در فایل استاندارد passwd یونیکس مطابقت داشته باشد. در صورت عدم تطابق، سامبا از معتبر شناختن این ورودی فایل smbpasswd برای کاربر خودداری خواهد کرد.

Lanman Password Hash

این فیلد هش LANMAN گذرواژه کاربر است که به صورت ۳۲ رقم هگزادسیمال کدگذاری شده است. هش LANMAN از طریق رمزنگاری DES یک رشته مشخص با استفاده از گذرواژه کاربر به عنوان کلید DES ایجاد می‌شود. این همان رمزی است که توسط رایانه‌های ویندوز 95/98 استفاده می‌شد. توجه داشته باشید که این هش گذرواژه به دلیل آسیب‌پذیری در برابر حملات فرهنگ‌لغت (dictionary attacks) ضعیف تلقی می‌شود و اگر دو کاربر رمز یکسانی انتخاب کنند، ورودی آن‌ها کاملاً یکسان خواهد بود (یعنی مانند رمز عبور یونیکس "salt" یا نمک‌گذاری نشده است). اگر کاربر رمز عبور خالی داشته باشد، این فیلد شامل عبارت "NO PASSWORD" در ابتدای رشته هگزادسیمال خواهد بود. اگر رشته هگز برابر با ۳۲ نویسه 'X' باشد، حساب کاربر به عنوان غیرفعال (disabled) علامت‌گذاری شده و کاربر قادر به ورود به سرور سامبا نخواهد بود.

هشدار !! توجه داشته باشید که به دلیل ماهیت چالش-پاسخ (challenge-response) در پروتکل احراز هویت SMB/CIFS، هر کسی با دانستن این هش می‌تواند هویت کاربر را در شبکه جعل کند. به همین دلیل این هش‌ها به عنوان معادل‌های متن آشکار (plain text equivalents) شناخته می‌شوند و نباید در اختیار کسی جز کاربر ارشد (root) قرار گیرند. برای محافظت از این گذرواژه‌ها، فایل smbpasswd در دایرکتوری‌ای قرار می‌گیرد که دسترسی خواندن و پیمایش آن تنها برای کاربر root مجاز است و خود فایل smbpasswd نیز باید به صورت خواندن/نوشتن فقط برای root و بدون هیچ دسترسی دیگری تنظیم شود.

NT Password Hash

این فیلد هش Windows NT گذرواژه کاربر است که به صورت ۳۲ رقم هگزادسیمال کدگذاری می‌شود. هش Windows NT با تبدیل گذرواژه کاربر به یونیکد ۱۶ بیتی little-endian و سپس اعمال الگوریتم درهم‌سازی MD4 (استاندارد اینترنتی rfc1321) تولید می‌گردد.

این هش در مقایسه با هش LANMAN ایمن‌تر در نظر گرفته می‌شود زیرا حساسیت به بزرگی و کوچکی حروف را حفظ کرده و از الگوریتم درهم‌سازی بسیار باکیفیت‌تری استفاده می‌کند. با این حال، هنوز هم اگر دو کاربر گذرواژه یکسانی برگزینند، ورودی آن‌ها یکسان خواهد بود (فاقد نمک‌گذاری یا salt است).

هشدار !!. توجه داشته باشید که به دلیل ماهیت چالش-پاسخ در پروتکل احراز هویت SMB/CIFS، هر کس با دانستن این هش قادر خواهد بود هویت کاربر را در شبکه جعل نماید. از این رو این هش‌ها معادل متن ساده محسوب می‌شوند و نباید در دسترس کسی جز کاربر ریشه (root) قرار گیرند. برای محافظت، فایل باید منحصراً دارای مجوز خواندن/نوشتن برای کاربر root باشد.

Account Flags

این بخش شامل پرچم‌هایی است که ویژگی‌های حساب کاربری را توصیف می‌کنند. این فیلد میان دو کاراکتر '[' و ']' قرار گرفته و همواره ۱۳ کاراکتر طول دارد (با احتساب کروشه‌ها). محتوای این فیلد می‌تواند هر یک از کاراکترهای زیر باشد:
•U - به این معنی که این یک حساب کاربری عادی ("User") است.
•N - به این معنی که حساب کاربری گذرواژه ندارد (گذرواژه‌های موجود در فیلدهای هش LANMAN و NT نادیده گرفته می‌شوند). توجه داشته باشید که این گزینه تنها در صورتی به کاربران اجازه ورود بدون رمز را می‌دهد که پارامتر null passwords در فایل پیکربندی smb.conf(5) تنظیم شده باشد.
•D - به این معنی که حساب کاربری غیرفعال شده است و هیچ ورودی از طریق SMB/CIFS برای این کاربر مجاز نیست.
•X - به این معنی که گذرواژه هرگز منقضی نمی‌شود.
•W - به این معنی که این حساب از نوع "اعتماد ایستگاه کاری" (Workstation Trust) است. این نوع حساب در ساختار Samba PDC برای اتصال ایستگاه‌های کاری و سرورهای Windows NT به دامنه تحت مدیریت Samba PDC استفاده می‌شود.
پرچم‌های دیگر ممکن است در آینده با گسترش کد اضافه شوند. مابقی فضای این فیلد با فاصله‌ها پر می‌شود. برای اطلاعات بیشتر در خصوص پرچم‌های پشتیبانی‌شده به صفحه راهنمای دستور pdbedit مراجعه فرمایید.

Last Change Time

این فیلد زمان آخرین تغییر حساب را مشخص می‌کند. شامل کاراکترهای 'LCT-' (کوته‌نوشت Last Change Time) و به دنبال آن زمان یونیکس بر حسب ثانیه‌های سپری‌شده از مبدا یونیکس (سال ۱۹۷۰) در زمان اعمال آخرین تغییر است.

سایر فیلدهای جداشده با دونقطه در حال حاضر نادیده گرفته می‌شوند.

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

smbpasswd(8), Samba(7), و سند RFC1321 اینترنت برای جزئیات مربوط به الگوریتم MD4.

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

08/16/2026 Samba 4.24.6