| WINBINDD(8) | System Administration tools | WINBINDD(8) |
نام (NAME)
winbindd - دیمن سوئیچ سرویس نام (NSS) برای تفکیک نامها از سرورهای NT
خلاصه دستور (SYNOPSIS)
winbindd [-D|--daemon] [-i|--interactive] [-F|--foreground] [--no-process-group] [-n|--no-caching] [-d <debug level>] [--debug-stdout] [--configfile=<configuration file>] [--option=<name>=<value>] [-l|--log-basename <log directory>] [--leak-report] [--leak-report-full] [-V|--version]
توضیحات (DESCRIPTION)
این برنامه بخشی از مجموعه samba(7) است.
دستور winbindd دیمنی است که تعدادی از سرویسها را برای قابلیت «سوئیچ سرویس نام» (Name Service Switch) موجود در اکثر کتابخانههای مدرن C، برای برنامههای دلخواه از طریق PAM و ntlm_auth و برای خود سامبا فراهم میکند.
حتی اگر winbind برای nsswitch استفاده نشود، همچنان با مدیریت اتصالات به کنترلکنندههای دامنه (Domain Controllers)، سرویسی به smbd، ntlm_auth و ماژول PAM pam_winbind.so ارائه میدهد. در این پیکربندی پارامتر idmap config * : range لازم نیست. (این حالت به عنوان «حالت فقط پروکسی netlogon» یا `netlogon proxy only mode' شناخته میشود.)
سرویس «سوئیچ سرویس نام» (NSS) امکان دریافت اطلاعات کاربر و سیستم را از پایگاههای داده و سرویسهای مختلف مانند NIS یا DNS فراهم میسازد. رفتار دقیق آن را میتوان از طریق فایل /etc/nsswitch.conf پیکربندی کرد. کاربران و گروهها به محض تفکیک شدن، به محدودهای از شناسههای کاربری و گروهی مشخصشده توسط مدیر سیستم سامبا اختصاص مییابند.
سرویس ارائهشده توسط winbindd به نام `winbind' شناخته میشود و میتواند برای تفکیک اطلاعات کاربر و گروه از یک سرور Windows NT استفاده شود. این سرویس همچنین میتواند خدمات احراز هویت را از طریق یک ماژول PAM مرتبط ارائه دهد.
ماژول pam_winbind از نوعهای ماژول auth، account و password پشتیبانی میکند. لازم به ذکر است که ماژول account تنها تابع ()getpwnam را اجرا میکند تا بررسی کند که آیا سیستم میتواند یک uid برای کاربر دریافت کند یا خیر، زیرا کنترلکننده دامنه پیشتر کنترل دسترسی را انجام داده است. اگر کتابخانه libnss_winbind بهدرستی نصب شده باشد، یا منبع جایگزینی برای نامها پیکربندی شده باشد، این عمل همیشه باید با موفقیت انجام شود.
پایگاههای داده nsswitch زیر توسط سرویس winbindd پیادهسازی شدهاند:
hosts
passwd
group
برای مثال، پیکربندی ساده زیر در فایل /etc/nsswitch.conf میتواند برای تفکیک اولیه اطلاعات کاربر و گروه از /etc/passwd و /etc/group و سپس از سرور Windows NT استفاده شود.
passwd: files winbind group: files winbind ## only available on IRIX: use winbind to resolve hosts: # hosts: files dns winbind ## All other NSS enabled systems should use libnss_wins.so like this: hosts: files dns wins
پیکربندی ساده زیر در فایل /etc/nsswitch.conf میتواند برای تفکیک اولیه نامهای میزبان از /etc/hosts و سپس از سرور WINS به کار رود.
hosts: files wins
گزینهها (OPTIONS)
-D|--daemon
-i|--interactive
-F|--foreground
--no-process-group
-n|--no-caching
-d|--debuglevel=level
هرچه این مقدار بالاتر باشد، جزئیات بیشتری درباره فعالیتهای سرور در فایلهای لاگ ثبت خواهد شد. در سطح 0، فقط خطاهای بحرانی و هشدارهای جدی ثبت میشوند. سطح 1 یک سطح معقول برای اجرای روزمره است - مقدار کمی از اطلاعات مربوط به عملیات انجامشده را تولید میکند.
سطوح بالاتر از 1 مقادیر قابل توجهی داده لاگ تولید میکنند و فقط باید هنگام بررسی یک مشکل استفاده شوند. سطوح بالاتر از 3 فقط برای استفاده توسعهدهندگان طراحی شدهاند و مقادیر بسیار عظیمی از دادههای لاگ تولید میکنند که اکثر آنها بسیار مبهم هستند.
توجه داشته باشید که مشخص کردن این پارامتر در اینجا، پارامتر log level را در فایل /etc/samba/smb.conf نادیده میگیرد (بازنویسی میکند).
--debug-stdout
--configfile=CONFIGFILE
--option=<name>=<value>
-l|--log-basename=logdirectory
--leak-report
--leak-report-full
-V|--version
-?|--help
--usage
تفکیک نام و شناسه (NAME AND ID RESOLUTION)
به کاربران و گروهها در یک سرور Windows NT یک شناسه امنیتی (SID) اختصاص داده میشود که هنگام ایجاد کاربر یا گروه در سراسر سیستم منحصربهفرد است. برای تبدیل کاربر یا گروه Windows NT به یک کاربر یا گروه یونیکس، نگاشتی میان SIDها و شناسههای کاربری و گروهی یونیکس لازم است. این یکی از وظایفی است که winbindd انجام میدهد.
هنگامی که کاربران و گروهها توسط winbindd از یک سرور تفکیک میشوند، شناسههای کاربر و گروه از یک محدوده مشخص تخصیص مییابند. این کار بر اساس اولویت مراجعه (نوبت ورود) انجام میشود، هرچند که همه کاربران و گروههای موجود به محض اینکه کلاینتی دستور شمارش (enumeration) کاربر یا گروه را اجرا کند، نگاشت خواهند شد. شناسههای یونیکس تخصیصیافته در یک پایگاه داده ذخیره شده و به خاطر سپرده میشوند.
هشدار: پایگاه داده نگاشت SID به شناسه یونیکس تنها محلی است که نگاشتهای کاربر و گروه در آن توسط winbindd ذخیره میشوند. اگر این منبع داده حذف یا خراب شود، هیچ راهی برای winbindd وجود ندارد که تشخیص دهد کدام شناسههای کاربر و گروه با ridهای کاربر و گروه Windows NT مطابقت دارند.
پیکربندی (CONFIGURATION)
پیکربندی دیمن winbindd از طریق پارامترهای پیکربندی در فایل smb.conf(5) انجام میشود. تمامی پارامترها باید در بخش [global] از smb.conf تعیین شوند.
نمونه راهاندازی (EXAMPLE SETUP)
برای راهاندازی winbindd جهت جستجوی کاربر و گروه بههمراه احراز هویت از یک کنترلکننده دامنه، تنظیمی مشابه ساختار زیر به کار ببرید. این پیکربندی روی یکی از نسخههای اولیه Red Hat Linux آزمایش شده است.
در فایل /etc/nsswitch.conf موارد زیر را قرار دهید:
passwd: files winbind group: files winbind
در مسیر /etc/pam.d/* خطوط auth را با عبارتی شبیه به این جایگزین کنید:
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_winbind.so
auth required /lib/security/pam_unix.so \
use_first_pass shadow nullok
نکته
ماژول PAM با نام pam_unix اخیراً جایگزین ماژول pam_pwdb شده است. برخی سیستمهای لینوکس از ماژول pam_unix2 به جای pam_unix استفاده میکنند.
بهویژه به استفاده از کلیدواژه sufficient و کلیدواژه use_first_pass توجه کنید.
اکنون خطوط account را با این جایگزین کنید:
account required /lib/security/pam_winbind.so
مرحله بعدی پیوستن به دامنه است. برای انجام این کار از برنامه net به صورت زیر استفاده کنید:
net join -S PDC -U Administrator
نام کاربری پس از -U میتواند هر کاربر دامنهای باشد که دارای امتیازات مدیریتی (administrator) روی دستگاه است. نام یا نشانی IP کنترلکننده دامنه اولیه (PDC) خود را به جای "PDC" قرار دهید.
سپس libnss_winbind.so را در /lib و pam_winbind.so را در /lib/security کپی کنید. یک پیوند نمادین (symlink) باید از /lib/libnss_winbind.so به /lib/libnss_winbind.so.2 ایجاد شود. اگر از نسخه قدیمیتری از glibc استفاده میکنید، مقصد پیوند باید /lib/libnss_winbind.so.1 باشد.
در نهایت، یک فایل smb.conf(5) حاوی دستورالعملهایی مشابه زیر تنظیم کنید:
[global]
winbind separator = +
winbind cache time = 10
template shell = /bin/bash
template homedir = /home/%D/%U
idmap config * : range = 10000-20000
workgroup = DOMAIN
security = domain
password server = *
حال winbindd را راهاندازی کنید؛ خواهید دید که پایگاه داده کاربر و گروه شما گسترش یافته تا کاربران و گروههای NT شما را نیز شامل شود و میتوانید با استفاده از ساختار DOMAIN+user برای نام کاربری، به عنوان یک کاربر دامنه وارد سیستم یونیکس خود شوید. ممکن است بخواهید از دستورهای getent passwd و getent group برای تأیید عملکرد صحیح winbindd استفاده کنید.
نکات (NOTES)
نکات زیر هنگام پیکربندی و اجرای winbindd مفید هستند:
پیکربندی اشتباه PAM بسیار محتمل و آسان است. هنگام اصلاح فایلهای پیکربندی PAM مطمئن شوید که دقیقاً چه کاری انجام میدهید. این احتمال وجود دارد که PAM را به گونهای تنظیم کنید که دیگر نتوانید به سیستم خود وارد شوید.
اگر بیش از یک ماشین یونیکس winbindd را اجرا کنند، در حالت کلی شناسههای کاربر و گروههای تخصیصیافته توسط winbindd یکسان نخواهند بود. شناسههای کاربر و گروه فقط برای ماشین محلی معتبر خواهند بود، مگر اینکه یک پشتیبان مشترک idmap config * : backend پیکربندی شده باشد.
اگر فایل نگاشت SID ویندوز NT به شناسه کاربر و گروه یونیکس آسیب دیده یا نابود شود، نگاشتها از دست خواهند رفت.
سیگنالها (SIGNALS)
سیگنالهای زیر را میتوان برای مدیریت و هدایت دیمن winbindd به کار برد.
SIGHUP
به جای ارسال سیگنال SIGHUP، میتوان درخواست بارگذاری مجدد فایل پیکربندی را با استفاده از برنامه smbcontrol(1) ارسال کرد.
SIGUSR2
فایلهای لاگ در نام فایلی که با پارامتر log file تعیین شده است ذخیره میشوند.
فایلها (FILES)
/etc/nsswitch.conf(5)
/run/samba/winbindd/pipe
گزینه winbindd socket directory این پیشفرض را بازنویسی میکند.
$STATEDIR/winbindd_privileged/pipe
گزینه state dir کنترل میکند که STATEDIR$ به چه مسیری اشاره دارد.
/lib/libnss_winbind.so.X
$STATEDIR/winbindd_idmap.tdb
$LOCKDIR/winbindd_cache.tdb
نسخه (VERSION)
این صفحه راهنما بخشی از نسخه 4.24.6 از مجموعه سامبا است.
همچنین ببینید (SEE ALSO)
nsswitch.conf(5), samba(7), wbinfo(1), ntlm_auth(8), smb.conf(5), pam_winbind(8)
نویسندگان (AUTHORS)
نرمافزار اصلی سامبا و ابزارهای مرتبط با آن توسط اندرو تریجل (Andrew Tridgell) ساخته شدهاند. سامبا اکنون توسط تیم سامبا به عنوان یک پروژه متنباز مشابه روش توسعه هسته لینوکس توسعه مییابد.
ابزارهای wbinfo و winbindd توسط تیم پاتر (Tim Potter) نوشته شدهاند.
تبدیل به DocBook برای سامبا 2.2 توسط جرالد کارتر (Gerald Carter) انجام شد. تبدیل به DocBook XML 4.2 برای سامبا 3.0 توسط الکساندر بوکووی (Alexander Bokovoy) صورت گرفت.
| 08/16/2026 | Samba 4.24.6 |