SMB.CONF(5) File Formats and Conventions SMB.CONF(5)

smb.conf - فایل پیکربندی مجموعه نرم‌افزاری سامبا (Samba)

فایل smb.conf یک فایل پیکربندی برای مجموعه نرم‌افزاری Samba است. فایل smb.conf شامل اطلاعات پیکربندی زمان اجرای برنامه‌های Samba است. توضیحات کامل قالب فایل و پارامترهای احتمالی موجود در آن جهت ارجاع در اینجا آورده شده است.

مجموعه نرم‌افزاری Samba شامل چندین برنامه مختلف است. برخی از آن‌ها در حالت کلاینت عمل می‌کنند، و برخی دیگر دیمن‌های سرور هستند که سرویس‌های مختلفی را به کلاینت‌های خود ارائه می‌دهند. فایل smb.conf به روش زیر پردازش می‌شود:

•برنامه‌های کلاینت مجموعه نرم‌افزاری Samba پیکربندی خود را تنها یک بار می‌خوانند. هر تغییری که پس از شروع ایجاد شود، در بستر کد کلاینتی که از قبل در حال اجرا است منعکس نخواهد شد.
•دیمن‌های سرور مجموعه نرم‌افزاری Samba در صورت درخواست، پیکربندی خود را مجدداً بارگذاری می‌کنند. با این حال، اتصالات فعال موجود پیکربندی خود را تغییر نمی‌دهند. اطلاعات دقیق‌تر را می‌توانید در صفحات راهنمای smbd(8) و winbindd(8) بیابید.

برای درخواست از دیمن‌های سرور Samba جهت به‌روزرسانی و بارگذاری مجدد پیکربندی خود، لطفاً از ابزار کاربردی smbcontrol(1) استفاده کنید.

این فایل از بخش‌ها (sections) و پارامترها (parameters) تشکیل شده است. یک بخش با نام بخش درون قلاب‌ها (کروشه‌ها) آغاز می‌شود و تا شروع بخش بعدی ادامه می‌یابد. بخش‌ها شامل پارامترهایی به شکل زیر هستند:

name = value 

این فایل مبتنی بر خط است - به این معنی که هر خطِ پایان‌یافته با نویسه خط جدید، نشان‌دهنده یک توضیح، نام یک بخش یا یک پارامتر است.

نام‌های بخش‌ها و پارامترها به حروف بزرگ و کوچک حساس نیستند (case-insensitive).

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

هر خطی که با نویسه نقطه-ویرگول (“;”) یا هش (“#”) آغاز شود، و همچنین خطوطی که فقط حاوی فاصله‌های خالی هستند، نادیده گرفته می‌شوند.

هر خطی که به “\” ختم شود، طبق روال مرسوم در UNIX در خط بعدی ادامه می‌یابد.

مقادیر پس از علامت مساوی در پارامترها همگی یا یک رشته متنی هستند (نیازی به علامت نقل‌قول نیست) یا یک مقدار بولی (boolean)، که می‌تواند به صورت yes/no ،1/0 یا true/false مشخص شود. حروف بزرگ و کوچک در مقادیر بولی اهمیتی ندارند، اما در مقادیر رشته‌ای حفظ می‌شوند. برخی موارد مانند create masks مقادیر عددی هستند.

هر بخش در فایل پیکربندی (به جز بخش [global]) یک منبع به اشتراک گذاشته شده (که به عنوان یک “اشتراک” یا “share” شناخته می‌شود) را توصیف می‌کند. نام بخش همان نام منبع اشتراکی است و پارامترهای درون بخش ویژگی‌های آن اشتراک را مشخص می‌کنند.

سه بخش ویژه وجود دارد: [global] ،[homes] و [printers] که در ذیل بخش‌های ویژه (special sections) شرح داده شده‌اند. نکات زیر برای شرح بخش‌های معمولی صدق می‌کنند.

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

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

بخش‌ها ممکن است به عنوان سرویس‌های مهمان (guest) تعیین شوند، که در این حالت برای دسترسی به آن‌ها نیازی به گذرواژه نیست. در این حالت از یک حساب مهمان (guest account) مشخص‌شده در UNIX برای تعیین مجوزهای دسترسی استفاده می‌شود.

بخش‌هایی غیر از سرویس‌های مهمان برای دسترسی به آن‌ها نیاز به گذرواژه خواهند داشت. کلاینت نام کاربری را ارائه می‌دهد. از آنجا که کلاینت‌های قدیمی‌تر فقط گذرواژه‌ها را ارسال می‌کردند و نه نام‌های کاربری را، می‌توانید با استفاده از گزینه user = در تعریف اشتراک، فهرستی از نام‌های کاربری را برای اعتبارسنجی در برابر گذرواژه مشخص کنید. برای کلاینت‌های مدرن مانند Windows 95/98/ME/NT/2000، این کار نباید لازم باشد.

مجوزهای دسترسی اعطا شده توسط سرور، توسط مجوزهای دسترسی اعطا شده به کاربر مشخص یا مهمان UNIX از سوی سیستم میزبان محدود (mask) می‌شوند. سرور دسترسی بیشتری نسبت به آنچه سیستم میزبان اعطا می‌کند، فراهم نمی‌سازد.

بخش نمونه زیر یک اشتراک فضای فایل را تعریف می‌کند. کاربر دسترسی نوشتن به مسیر /home/bar را دارد. دسترسی به این اشتراک از طریق نام اشتراک foo انجام می‌شود:

[foo]
path = /home/bar
read only = no

بخش نمونه زیر یک اشتراک چاپی را تعریف می‌کند. این اشتراک فقط‌خواندنی است، اما قابل چاپ (printable) می‌باشد. به این معنی که تنها دسترسی نوشتن مجاز، از طریق فراخوانی‌های باز کردن، نوشتن در و بستن یک فایل قرقره چاپ (spool file) است. پارامتر guest ok بدین معنا است که دسترسی به عنوان کاربر مهمان پیش‌فرض (که در جای دیگری مشخص شده) مجاز خواهد بود:

[aprinter]
path = /var/tmp
read only = yes
printable = yes
guest ok = yes

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

اگر بخشی با نام [homes] در فایل پیکربندی گنجانده شود، سرویس‌هایی که کلاینت‌ها را به دایرکتوری‌های خانگی (home directories) آن‌ها متصل می‌کنند می‌توانند به صورت بلادرنگ و پویا توسط سرور ایجاد شوند.

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

سپس برخی تغییرات بر روی اشتراک تازه‌تاسیس اعمال می‌شود:

•نام اشتراک از homes به نام کاربریِ یافت‌شده تغییر می‌یابد.
•اگر هیچ مسیری مشخص نشده باشد، مسیر (path) بر روی دایرکتوری خانگی کاربر تنظیم می‌شود.

اگر تصمیم دارید از خط path = در بخش [homes] خود استفاده کنید، ممکن است استفاده از ماکروی %S مفید باشد. به عنوان مثال:

path = /data/pchome/%S

زمانی کاربرد دارد که دایرکتوری‌های خانگی متفاوتی برای PCها نسبت به دسترسی یونیکس (UNIX) داشته باشید.

این یک روش سریع و ساده است تا بدون دردسر و پیچیدگی، به تعداد زیادی از کلاینت‌ها امکان دسترسی به دایرکتوری‌های خانگی‌شان داده شود.

روند مشابهی در صورتی رخ می‌دهد که نام بخش درخواستی “homes” باشد، با این تفاوت که نام اشتراک به نام کاربر درخواست‌کننده تغییر نمی‌کند. این شیوه استفاده از بخش [homes] زمانی که کاربران مختلف به طور مشترک از یک PC کلاینت استفاده می‌کنند، به خوبی کار می‌کند.

بخش [homes] می‌تواند تمامی پارامترهایی را که یک بخش سرویس عادی مشخص می‌کند در بر داشته باشد، هرچند برخی از آنها کاربردی‌تر و منطقی‌تر از بقیه هستند. در ادامه یک بخش [homes] متداول و مناسب آورده شده است:

[homes]
read only = no

نکته مهم این است که اگر دسترسی مهمان (guest access) در بخش [homes] مشخص شود، تمام دایرکتوری‌های خانگی بدون نیاز به گذرواژه برای همه کلاینت‌ها قابل مشاهده خواهند بود. در حالت بسیار نادری که این امر واقعاً مطلوب باشد، عاقلانه است که دسترسی را نیز به صورت فقط‌خواندنی (read only) تنظیم کنید.

فلگ browseable برای دایرکتوری‌های خانگی خودکار، از فلگ سراسری browseable به ارث برده می‌شود، نه از فلگ browseable در بخش [homes]. این ویژگی مفید است زیرا بدین معناست که تنظیم browseable = no در بخش [homes]، خودِ اشتراک [homes] را مخفی می‌کند اما دایرکتوری‌های خانگی خودکار را قابل مشاهده نگه می‌دارد.

این بخش عملکردی مشابه [homes] دارد، اما برای چاپگرها (printers).

اگر بخش [printers] در فایل پیکربندی وجود داشته باشد، کاربران می‌توانند به هر چاپگری که در فایل printcap میزبان محلی مشخص شده است متصل شوند.

هنگام ایجاد یک درخواست اتصال، بخش‌های موجود بررسی می‌شوند. اگر تطابقی یافت شود، از آن استفاده می‌شود. اگر تطابقی پیدا نشود اما بخش [homes] وجود داشته باشد، همان‌طور که در بالا توضیح داده شد عمل می‌شود. در غیر این صورت، نام بخش درخواستی به عنوان نام چاپگر در نظر گرفته شده و فایل printcap مناسب اسکن می‌شود تا بررسی گردد آیا نام بخشِ درخواستی، یک نام معتبر برای اشتراک چاپگر است یا خیر. در صورت یافتن تطابق، با شبیه‌سازی بخش [printers] یک اشتراک چاپگر جدید ایجاد می‌شود.

سپس چند تغییر بر روی اشتراک تازه‌تاسیس اعمال می‌شود:

•نام اشتراک بر روی نام چاپگرِ یافت‌شده تنظیم می‌شود
•اگر نام چاپگری مشخص نشده باشد، نام چاپگر بر روی نام چاپگرِ یافت‌شده تنظیم می‌شود
•اگر اشتراک اجازه دسترسی مهمان (guest) را ندهد و هیچ نام کاربری مشخص نشده باشد، نام کاربری بر روی نام چاپگرِ یافت‌شده تنظیم می‌شود.

سرویس [printers] حتماً باید قابل چاپ (printable) باشد - اگر خلاف این را مشخص کنید، سرور از بارگذاری فایل پیکربندی خودداری خواهد کرد.

به طور معمول، مسیر مشخص‌شده (path) یک دایرکتوری spool با قابلیت نوشتن همگانی (world-writeable) است که بیت sticky bit بر روی آن فعال شده باشد. یک مدخل معمول [printers] به این صورت است:

[printers]
path = /var/tmp
guest ok = yes
printable = yes

تمام نام‌های مستعاری (aliases) که در فایل printcap برای یک چاپگر ارائه شده‌اند، از نظر سرور نام‌های معتبر چاپگر به شمار می‌روند. اگر زیرسیستم چاپ شما به این شکل کار نمی‌کند، باید یک pseudo-printcap راه‌اندازی کنید. این فایلی شامل یک یا چند خط به شکل زیر است:

alias|alias|alias|alias...

هر نام مستعار باید نام چاپگری پذیرفته‌شده برای زیرسیستم چاپ شما باشد. در بخش [global]، فایل جدید را به عنوان printcap خود مشخص کنید. سرور تنها نام‌های موجود در pseudo-printcap شما را شناسایی خواهد کرد، که البته می‌تواند شامل هر نام مستعاری باشد که مایلید. همین روش می‌تواند برای محدود کردن سادهٔ دسترسی به زیرمجموعه‌ای از چاپگرهای محلی شما به کار رود.

به هر حال، یک نام مستعار به عنوان هر مؤلفه‌ای از نخستین مدخل یک رکورد printcap تعریف می‌شود. رکوردها با خطوط جدید (newlines) از هم جدا می‌شوند، و مؤلفه‌ها (در صورت وجود بیش از یکی) با علامت خط عمودی (|) از یکدیگر تفکیک می‌گردند.


نکته

در سیستم‌های SYSV که از lpstat برای تشخیص چاپگرهای تعریف‌شده روی سیستم استفاده می‌کنند، ممکن است بتوانید از printcap name = lpstat برای دریافت خودکار فهرست چاپگرها استفاده کنید. برای جزئیات بیشتر، گزینه printcap name را ببینید.

از نسخهٔ 3.0.23 سامبا (Samba)، قابلیت افزودن، ویرایش و حذف تعاریف اشتراک توسط کاربران غیر ریشه (non-root) اضافه شده است. این قابلیت usershares نام دارد و توسط مجموعه‌ای از پارامترها در بخش [global] فایل smb.conf کنترل می‌شود. پارامترهای مربوطه عبارتند از:

usershare allow guests

مشخص می‌کند که آیا اشتراک‌های کاربران (usershares) اجازهٔ دسترسی مهمان (guest) را دارند یا خیر.

usershare max shares

حداکثر تعداد مجاز اشتراک‌های تعریف‌شده توسط کاربر.

usershare owner only

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

usershare path

به دایرکتوریِ حاوی تعاریف اشتراک‌های کاربر اشاره می‌کند. دسترسی‌های فایل‌سیستم روی این دایرکتوری تعیین می‌کنند چه کسانی می‌توانند اشتراک‌های تعریف‌شده توسط کاربر بسازند.

usershare prefix allow list

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

usershare prefix deny list

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

usershare template share

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

برای اینکه به اعضای گروه یونیکسی foo اجازه دهید اشتراک‌های تعریف‌شده توسط کاربر بسازند، دایرکتوریِ حاوی تعاریف اشتراک را به صورت زیر ایجاد کنید:

تبدیل شدن به کاربر ریشه (root):

mkdir /usr/local/samba/lib/usershares
chgrp foo /usr/local/samba/lib/usershares
chmod 1770 /usr/local/samba/lib/usershares

سپس پارامترهای

usershare path = /usr/local/samba/lib/usershares
usershare max shares = 10 # (یا تعداد اشتراک‌های مورد نظر)

را به بخش global در فایل smb.conf خود اضافه نمایید. سپس اعضای گروه foo می‌توانند با استفاده از دستورهای زیر، اشتراک‌های تعریف‌شده توسط کاربر را مدیریت کنند.

net usershare add sharename path [comment] [acl] [guest_ok=[y|n]]

جهت ایجاد یا ویرایش (بازنویسی) یک اشتراک تعریف‌شده توسط کاربر.

net usershare delete sharename

جهت حذف یک اشتراک تعریف‌شده توسط کاربر.

net usershare list wildcard-sharename

جهت فهرست کردن اشتراک‌های تعریف‌شده توسط کاربر.

net usershare info wildcard-sharename

جهت نمایش اطلاعات دربارهٔ اشتراک‌های تعریف‌شده توسط کاربر.

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

برخی پارامترها مختص بخش [global] هستند (مانند security). برخی پارامترها در تمام بخش‌ها قابل استفاده‌اند (مانند create mask). سایر پارامترها فقط در بخش‌های عادی مجاز می‌باشند. در توضیحات زیر، بخش‌های [homes] و [printers] به عنوان بخش عادی در نظر گرفته می‌شوند. حرف G در پرانتز نشان می‌دهد که یک پارامتر مختص بخش [global] است. حرف S نشان می‌دهد که یک پارامتر می‌تواند در یک بخش خاصِ سرویس مشخص شود. تمام پارامترهای S همچنین می‌توانند در بخش [global] نیز تعیین شوند - که در این حالت، رفتار پیش‌فرض را برای تمام سرویس‌ها تعریف می‌کنند.

پارامترها در اینجا به ترتیب الفبایی مرتب شده‌اند - شاید این چیدمان همیشه کنار هم قرار گرفتن بهترین موارد را رقم نزند، اما دست‌کم یافتن آن‌ها آسان است! در جایی که مترادف‌هایی وجود داشته باشد، مترادف ترجیحی توضیح داده شده و سایر موارد به آن ارجاع می‌دهند.

بسیاری از رشته‌هایی که در فایل پیکربندی قابل تنظیم هستند، می‌توانند جایگزینی متغیرها را بپذیرند. به عنوان مثال، گزینهٔ “path = /tmp/%u” در صورتی که کاربر با نام کاربری john متصل شود، به صورت “path = /tmp/john” تفسیر می‌شود.

این جایگزینی‌ها عمدتاً در توضیحات زیر آورده شده‌اند، اما برخی جایگزینی‌های عمومی وجود دارند که هر جا مرتبط باشند اعمال می‌شوند. این موارد عبارتند از:

%U

نام کاربری نشست (نام کاربری که کلاینت درخواست کرده است، نه لزوماً همان نامی که دریافت کرده است).

%G

نام گروه اصلی (primary group) مربوط به %U.

%h

نام میزبان اینترنتی (hostname) که سامبا روی آن در حال اجرا است.

%m

نام NetBIOS سیستم کلاینت (بسیار کاربردی).

این پارامتر زمانی که سامبا روی درگاه (پورت) 445 گوش می‌دهد در دسترس نیست، چرا که کلاینت‌ها دیگر این اطلاعات را ارسال نمی‌کنند. اگر از این ماکرو در یک دستور include روی دامنه‌ای با کنترل‌کننده دامنهٔ (Domain Controller) سامبا استفاده می‌کنید، حتماً در بخش [global] مقدار server smb transports = 139 را تنظیم کنید. این کار باعث می‌شود سامبا روی پورت 445 گوش ندهد و عملکرد include مانند سامبا 2.x به کار خود ادامه دهد.

%L

نام NetBIOS سرور. این به شما امکان می‌دهد تا پیکربندی خود را بر اساس نامی که کلاینت شما را با آن صدا می‌زند تغییر دهید. سرور شما می‌تواند دارای یک “شخصیت دوگانه” باشد.

%M

نام اینترنتی سیستم کلاینت.

%R

سطح پروتکل انتخاب‌شده پس از مذاکرهٔ پروتکل (protocol negotiation). می‌تواند یکی از مقادیر CORE، COREPLUS، LANMAN1، LANMAN2، NT1، SMB2_02، SMB2_10، SMB3_00، SMB3_02، SMB3_11 یا SMB2_FF باشد.

%d

شناسه پردازه (PID) مربوط به پردازهٔ فعلی سرور.

%a

معماری سیستم راه دور (remote machine). در حال حاضر سامبا (Samba)، فایل‌سیستم لینوکس CIFS (CIFSFS)، OS/2 (OS2)، Mac OS X (OSX)، Windows for Workgroups (WfWg)، Windows 9x/ME (Win95)، Windows NT (WinNT)، Windows 2000 (Win2K)، Windows XP (WinXP)، نسخه‌های ۶۴ بیتی Windows XP (WinXP64)، Windows 2003 از جمله 2003R2 (Win2K3) و Windows Vista (Vista) را تشخیص می‌دهد. هر مورد دیگر به عنوان UNKNOWN شناخته خواهد شد.

%I

آدرس IP سیستم کلاینت.

قبل از نسخهٔ 4.0.0 این مقدار می‌توانست شامل آدرس‌های IPv6 نگاشت‌شده به IPv4 باشد، اکنون فقط شامل آدرس‌های IPv4 یا IPv6 است.

%J

آدرس IP سیستم کلاینت، در حالی که دونقطه‌ها/نقطه‌ها با زیرخط (underscore) جایگزین شده‌اند.

%i

آدرس IP محلی که کلاینت به آن متصل شده است.

قبل از نسخهٔ 4.0.0 این مقدار می‌توانست شامل آدرس‌های IPv6 نگاشت‌شده به IPv4 باشد، اکنون فقط شامل آدرس‌های IPv4 یا IPv6 است.

%j

آدرس IP محلی که کلاینت به آن متصل شده است، در حالی که دونقطه‌ها/نقطه‌ها با زیرخط (underscore) جایگزین شده‌اند.

%T

تاریخ و زمان فعلی.

%t

تاریخ و زمان فعلی در قالبی فشرده و بدون دونقطه (YYYYYmmdd_HHMMSS).

%D

نام دامنه یا workgroup کاربر فعلی.

%w

جداکنندهٔ winbind.

%$(envvar)

مقدار متغیر محیطی envvar.

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

%S

نام سرویس فعلی، در صورت وجود.

%P

دایرکتوری ریشهٔ سرویس فعلی، در صورت وجود.

%u

نام کاربری سرویس فعلی، در صورت وجود.

%g

نام گروه اصلی (primary group) مربوط به %u.

%H

دایرکتوری خانگی (home directory) کاربری که توسط %u مشخص شده است.

%N

این مقدار همانند %L است.

کارهای بسیار خلاقانه‌ای وجود دارد که می‌توان با استفاده از این متغیرهای جایگزین و سایر گزینه‌های smb.conf انجام داد.

سامبا از تغییر شکل نام‌ها (name mangling) پشتیبانی می‌کند تا کلاینت‌های DOS و Windows بتوانند از فایل‌هایی استفاده کنند که با قالب 8.3 سازگار نیستند. همچنین می‌توان آن را طوری تنظیم کرد که بزرگی و کوچکی حروف در نام‌های فایل با قالب 8.3 را تنظیم کند.

چندین گزینه وجود دارند که نحوه انجام تغییر شکل نام‌ها را کنترل می‌کنند، و به جای فهرست شدن جداگانه، در اینجا با هم گروه‌بندی شده‌اند. برای مشاهده مقادیر پیش‌فرض به خروجی برنامه testparm نگاه کنید.

این گزینه‌ها می‌توانند به‌طور جداگانه برای هر سرویس تنظیم شوند.

این گزینه‌ها عبارتند از:

case sensitive = yes/no/auto

کنترل می‌کند که آیا نام‌های فایل به بزرگی و کوچکی حروف حساس (case sensitive) باشند یا خیر. اگر نباشند، سامبا باید روی نام‌های فرستاده‌شده عمل جستجو و تطبیق نام فایل را انجام دهد. تنظیم پیش‌فرض auto به کلاینت‌هایی که از نام‌های فایل حساس به بزرگی و کوچکی حروف پشتیبانی می‌کنند (در حال حاضر Linux CIFSVFS و smbclient نگارش 3.0.5 و بالاتر) اجازه می‌دهد تا بر پایه هر بسته (per-packet) به سرور سامبا اعلام کنند که تمایل دارند به فایل‌سیستم به شیوه‌ای حساس به بزرگی و کوچکی حروف دسترسی یابند (جهت پشتیبانی از معناشناسی حساس به حروف در UNIX). هیچ سیستم Windows یا DOS از نام‌های فایل حساس به حروف پشتیبانی نمی‌کند، بنابراین تنظیم این گزینه روی auto برای آنها همانند تنظیم آن روی no است. Default auto.

default case = upper/lower

کنترل می‌کند که حالت پیش‌فرض بزرگی و کوچکی حروف برای نام‌های فایل جدید (یعنی فایل‌هایی که در حال حاضر در فایل‌سیستم وجود ندارند) چه باشد. Default lower. نکته مهم: به عنوان بخشی از بهینه‌سازی‌ها برای دایرکتوری‌های حاوی تعداد زیادی فایل، حالت ویژه زیر اعمال می‌شود. اگر گزینه‌های case sensitive = yes، preserve case = No و short preserve case = No تنظیم شده باشند، آن‌گاه حالت بزرگی و کوچکی حروف تمامی نام‌های فایل دریافتی از کلاینت، و نه فقط نام‌های فایل جدید، تغییر داده خواهد شد. یادداشت‌های تکمیلی زیر را ببینید.

preserve case = yes/no

کنترل می‌کند که آیا فایل‌های جدید (یعنی فایل‌هایی که در حال حاضر در فایل‌سیستم وجود ندارند) با همان حالت حروفی که کلاینت ارسال می‌کند ایجاد شوند، یا اینکه مجبور شوند در حالت حروف default باشند. Default yes.

short preserve case = yes/no

کنترل می‌کند که آیا فایل‌های جدید (یعنی فایل‌هایی که در حال حاضر در فایل‌سیستم وجود ندارند) که با ساختار 8.3 مطابقت دارند، یعنی همگی با حروف بزرگ و با طول مناسب هستند، با حروف بزرگ ایجاد شوند یا اینکه مجبور به تبعیت از حالت حروف default باشند. این گزینه می‌تواند همراه با preserve case = yes استفاده شود تا به نام‌های فایل طولانی اجازه دهد حالت حروف خود را حفظ کنند، در حالی که نام‌های کوتاه با حروف کوچک نوشته می‌شوند. Default yes.

به‌طور پیش‌فرض، سامبا 3.0 معناشناسی یکسانی با سرور Windows NT دارد، به این معنا که به بزرگی و کوچکی حروف حساس نیست اما حالت حروف را حفظ می‌کند (case preserving). به عنوان یک حالت خاص برای دایرکتوری‌های با تعداد زیادی فایل، اگر گزینه‌های حالت حروف به‌صورت "case sensitive = yes" و "case preserve = no" و "short preserve case = no" تنظیم شوند، آنگاه گزینه "default case" اعمال خواهد شد و تمام نام‌های فایل ارسالی از کلاینت را در هنگام دسترسی به این اشتراک تغییر خواهد داد.

با شروع از نگارش 3.2.0 سامبا، قابلیت ذخیره پیکربندی سامبا در رجیستری فراهم شده است. این پیکربندی در کلید رجیستری HKLM\Software\Samba\smbconf ذخیره می‌شود. دو سطح از پیکربندی رجیستری وجود دارد:

1.تعریف‌های اشتراک ذخیره‌شده در رجیستری استفاده می‌شوند. این ویژگی با تنظیم پارامتر سراسری registry shares روی “yes” در smb.conf فعال می‌شود.

اشتراک‌های رجیستری هنگام بالا آمدن بارگذاری نمی‌شوند، بلکه بر حسب نیاز در زمان اجرا توسط smbd بارگذاری می‌گردند. اشتراک‌های تعریف‌شده در smb.conf نسبت به اشتراک‌های همنام تعریف‌شده در رجیستری اولویت دارند.

2.گزینه‌های سراسری smb.conf ذخیره‌شده در رجیستری استفاده می‌شوند. این مورد می‌تواند به دو روش مختلف فعال شود:

نخست، یک پیکربندی فقط-رجیستری با تنظیم config backend = registry در بخش [global] از smb.conf فعال می‌شود. این کار هر آنچه را که تا این نقطه از فایل‌های پیکربندی خوانده شده است بازنشانی می‌کند و محتوای بخش پیکربندی سراسری را از رجیستری می‌خواند. این روشِ توصیه‌شده برای استفاده از پیکربندی مبتنی بر رجیستری است.

دوم، یک پیکربندی ترکیبی می‌تواند توسط یک مفهوم ویژه و جدید از پارامتر include = registry در بخش [global] از smb.conf فعال شود. این کار گزینه‌های سراسری را از رجیستری با همان اولویت‌های include کردن یک فایل متنی می‌خواند. این ویژگی ممکن است به‌ویژه در مواردی مفید باشد که برای دسترسی به رجیستری به یک پیکربندی اولیه نیاز است.

فعال‌سازی گزینه‌های سراسری رجیستری به‌طور خودکار اشتراک‌های رجیستری را نیز فعال می‌کند. بنابراین در حالت فقط-رجیستری، اشتراک‌ها تنها بر حسب نیاز بارگذاری می‌شوند.

نکته: برای اینکه پیکربندی‌های مبتنی بر رجیستری دست‌کم تا حد معینی خطاناپذیر (foolproof) شوند، استفاده از lock directory و config backend در داخل پیکربندی رجیستری غیرفعال شده است: به‌ویژه با تغییر lock directory در داخل پیکربندی رجیستری، یک راه‌اندازی معیوب ایجاد خواهد شد که در آن دیمن‌ها پس از فعال شدن پیکربندی، پیکربندی‌ای را که بارگذاری کرده‌اند نمی‌بینند.

پیکربندی رجیستری با ابزارهایی مانند regedit یا net (rpc) registry در کلید HKLM\Software\Samba\smbconf قابل دسترسی است. به شکل راحت‌تر، زیردستور conf از ابزار net(8) یک رابط اختصاصی برای خواندن و نوشتن محلی پیکربندی مبتنی بر رجیستری، یعنی دسترسی مستقیم به فایل پایگاه داده بدون درگیر کردن سرور، ارائه می‌دهد.

در پروتکل SMB، کاربران، گروه‌ها و ماشین‌ها با شناسه‌های امنیتی (SIDها) نمایش داده می‌شوند. در یک سیستم POSIX، فرآیندهای Samba باید تحت هویت‌های کاربری متناظر در POSIX و با گروه‌های تکمیلی POSIX اجرا شوند تا دسترسی به فایل‌های متعلق به آن کاربران و گروه‌ها مجاز شود. فرآیند نگاشت SIDها به کاربران و گروه‌های POSIX به عنوان نگاشت هویت (IDENTITY MAPPING) یا به‌طور خلاصه نگاشت شناسه (ID MAPPING) نامیده می‌شود.

سامبا (Samba) از چندین روش مختلف برای نگاشت SIDها به کاربران و گروه‌های POSIX پشتیبانی می‌کند. این پیکربندی توسط گزینهٔ idmap config DOMAIN : OPTION هدایت می‌شود که امکان تعیین گزینه‌های نگاشت هویت (idmap) را برای هر دامنه به‌صورت جداگانه فراهم می‌آورد.

ماژول‌های نگاشت هویت راهبردهای متفاوتی را برای نگاشت SIDها به هویت‌های کاربری و گروهی POSIX پیاده‌سازی می‌کنند. آنها برای موارد کاربرد و سناریوهای مختلفی مناسب هستند. توصیه می‌شود پیش از انتخاب سناریوی مدنظر برای استفاده، مستندات هر یک از ماژول‌های نگاشت هویت را مطالعه کنید. هر یک از ماژول‌های مدیریت هویت در یک صفحهٔ راهنمای جداگانه مستند شده است. بک‌اندهای استاندارد idmap عبارتند از: tdb (idmap_tdb(8))، tdb2 (idmap_tdb2(8))، ldap (idmap_ldap(8))، rid (idmap_rid(8))، hash (idmap_hash(8))، autorid (idmap_autorid(8))، ad (idmap_ad(8))، nss (idmap_nss(8)) و rfc2307 (idmap_rfc2307(8)).

به‌طور کلی، پیکربندی ID mapping باید با دقت فراوان تعیین شود. ایجاد تغییرات در پیکربندی ID mapping که از قبل مستقر و اعمال شده است، می‌تواند خطر از دست رفتن دسترسی به داده‌ها یا افشای داده‌ها برای افراد نامربوط را به همراه داشته باشد.

این مثال نحوهٔ پیکربندی دو دامنه با idmap_rid(8) (دامنهٔ اصلی و یک دامنهٔ مورد اعتماد) را نشان می‌دهد، در حالی که طرح نگاشت شناسهٔ پیش‌فرض بر روی tdb باقی می‌ماند.

[global]
security = domain
workgroup = MAIN
idmap config * : backend        = tdb
idmap config * : range          = 1000000-1999999
idmap config MAIN : backend     = rid
idmap config MAIN : range       = 5000000-5999999
idmap config TRUSTED : backend  = rid
idmap config TRUSTED : range    = 6000000-6999999

abort shutdown script (G)

این مسیر کامل اسکریپتی است که توسط smbd(8) فراخوانی می‌شود و باید فرآیند خاموش شدنی که توسط shutdown script صادر شده است را متوقف کند.

اگر کاربر متصل دارای امتیاز SeRemoteShutdownPrivilege باشد، این دستور با دسترسی root اجرا خواهد شد.

Default: abort shutdown script = ""

Example: abort shutdown script = /sbin/shutdown -c

access based share enum (S)

چنانچه این پارامتر برای یک سرویس بر روی yes تنظیم شده باشد، اشتراک میزبانی‌شده توسط آن سرویس در حین شمارش اشتراک‌ها (برای نمونه net view \\sambaserver) تنها برای کاربرانی قابل مشاهده خواهد بود که به آن اشتراک دسترسی خواندن یا نوشتن داشته باشند. فهرست‌های کنترل دسترسی (ACLهای) اشتراک که اجازه یا منع دسترسی به اشتراک را تعیین می‌کنند، می‌توانند برای نمونه با استفاده از دستور sharesec یا با ابزارهای مناسب ویندوز ویرایش شوند. این سازوکار شباهت‌هایی با شمارش مبتنی بر دسترسی (access based enumeration) دارد، با این تفاوت اصلی که تنها مجوزهای اشتراک ارزیابی می‌شوند و توصیف‌کننده‌های امنیتی (security descriptors) فایل‌های موجود در اشتراک در محاسبه حقوق دسترسیِ شمارش نقشی ندارند.

Default: access based share enum = no

acl allow execute always (S)

این پارامتر بولی (boolean) رفتار smbd(8) را هنگام دریافت درخواست پروتکل مبنی بر «باز کردن برای اجرا» ("open for execution") از سوی یک کلاینت ویندوز کنترل می‌کند. در Samba نسخه 3.6 و قدیمی‌تر، حق اجرای موجود در ACL بررسی نمی‌شد؛ بنابراین یک کلاینت می‌توانست حتی بدون داشتن حق اجرا روی فایل، آن را اجرا کند. در Samba 4.0 این موضوع اصلاح شده است، به طوری که به طور پیش‌فرض، یعنی زمانی که این پارامتر روی "False" تنظیم است، در صورت عدم وجود مجوزهای اجرا، درخواست «باز کردن برای اجرا» رد می‌شود.

اگر این پارامتر روی "True" تنظیم شود، Samba مجوزهای اجرا را هنگام درخواست «باز کردن برای اجرا» بررسی نمی‌کند و در نتیجه رفتار Samba 3.6 دوباره برقرار می‌گردد. این امر می‌تواند برای سهولت در ارتقا از نسخه‌های قدیمی‌تر Samba به 4.0 و جدیدتر مفید باشد. هدف از این پیکربندی استفاده دائمی نیست، بلکه یک چاره موقت است: توصیه می‌شود مجوزها را در ACLها تصحیح کرده و پس از یک دوره گذار معین، این پارامتر را به مقدار پیش‌فرض بازگردانید.

Default: acl allow execute always = no

acl check permissions (S)

لطفاً توجه داشته باشید که این پارامتر از نسخه Samba 3.6.2 منسوخ شده است و در نسخه‌های آینده Samba حذف خواهد شد.

این پارامتر بولی کنترل می‌کند که smbd(8) هنگام دریافت درخواست پروتکل مبنی بر «باز کردن برای حذف» ("open for delete") از یک کلاینت ویندوز چه کاری انجام دهد. اگر یک کلاینت ویندوز مجوز حذف فایل را نداشته باشد، انتظار دارد که این درخواست در زمان باز کردن فایل رد شود. سیستم‌های POSIX معمولاً محدودیت‌های حذف را فقط هنگام اقدام واقعی برای حذف فایل یا دایرکتوری شناسایی می‌کنند. از آنجایی که کلاینت‌های ویندوز می‌توانند (و در عمل چنین می‌کنند) با برداشتن بیت «delete on close» از درخواست حذف خود صرف‌نظر کنند، Samba نمی‌تواند فایل را بلافاصله پس از درخواست «باز کردن برای حذف» پاک کند، زیرا امکان بازیابی چنین فایل حذف‌شده‌ای وجود ندارد. با تنظیم این پارامتر روی true (پیش‌فرض)، smbd مجوزهای سیستم فایل را مستقیماً هنگام «باز کردن برای حذف» بررسی می‌کند و در صورتی که به نظر برسد مجوزهای سیستم فایل آن را منع می‌کنند، درخواست را بدون حذف واقعی فایل رد می‌کند. این روش بی‌نقص نیست، زیرا ممکن است کاربری بتواند فایلی را بدون اینکه Samba امکان بررسی درست مجوزها را داشته باشد حذف کند، اما برای یک رفتار عمدتاً صحیح، به اندازه کافی به مفاهیم ویندوز نزدیک است. Samba در این حالت قواعد POSIX ACL را به درستی بررسی خواهد کرد.

اگر این پارامتر روی "false" تنظیم شود، Samba مجوزها را در زمان «باز کردن برای حذف» بررسی نکرده و باز کردن فایل را مجاز می‌داند. اگر کاربر مجوز حذف فایل را نداشته باشد، این موضوع تنها در زمان بستن فایل مشخص می‌شود، که برای ابزارهای کاربری ویندوز جهت نمایش پیام خطا به کاربر خیلی دیر است. نشانه این وضعیت فایل‌هایی است که به نظر می‌رسد حذف شده‌اند اما با بازآوری (refresh) در مرورگر فایل ویندوز (Windows Explorer) به شکلی جادویی دوباره ظاهر می‌شوند. این یک گزینه پروتکلی فوق‌العاده پیشرفته است که نیازی به تغییر آن نیست. این پارامتر در شکل نهایی خود در نسخه 3.0.21 معرفی شد؛ نسخه‌ای قبلی با مفاهیمی کمی متفاوت در 3.0.20 معرفی شده بود که آن نسخه قدیمی در اینجا مستند نشده است.

Default: acl check permissions = yes

acl claims evaluation (G)

این گزینه نحوه مدیریت ارزیابی توصیف‌کننده‌های امنیتی (security descriptors) در Samba را با توجه به Active Directory Claims کنترل می‌کند. AD Claims که با ویندوز 2012 معرفی شد، اساساً جفت‌های کلید-مقداری هستند که توسط مدیر سیستم تعریف می‌شوند و می‌توانند هم در Active Directory (که از طریق Kerberos PAC مبادله می‌شوند) و هم در خود توصیف‌کننده‌های امنیتی تنظیم گردند.

قابلیت Active Directory claims در Samba 4.20 جدید است. از آنجایی که این ادعاها (claims) در برابر یک زبان عبارت بسیار منعطف در توصیف‌کننده امنیتی ارزیابی می‌شوند، این گزینه سازوکاری فراهم می‌کند تا در صورت نیاز مدیر سیستم، این منطق غیرفعال گردد.

رفتار پیش‌فرض بدین صورت است که ارزیابی ادعاها تنها در AD DC فعال است. علاوه بر این، ارزیابی ادعاها در AD DC تنها در صورتی فعال است که سطح عملکردی DC (یا functional level) نسخه 2012 یا بالاتر باشد. ببینید: ad dc functional level.

مقادیر ممکن عبارتند از:

•AD DC only: برای Samba AD DC فعال است (برای سطح عملکردی DC نسخه 2012 یا بالاتر).
•never: در تمام موارد غیرفعال است. این گزینه برخی (اما نه همه) ویژگی‌های Authentication Policies و Authentication Policy Silos مربوط به سطح عملکردی Windows 2012R2 را در AD DC غیرفعال می‌کند.
Default: acl claims evaluation = AD DC only

acl flag inherited canonicalization (S)

این گزینه نحوه مدیریت درخواست‌های کلاینت برای تنظیم توصیف‌کننده امنیتی (Security Descriptor) فایل‌ها و دایرکتوری‌ها و تأثیری که این عملیات بر روی فلگ توصیف‌کننده امنیتی «DACL auto-inherited» (یا DI) می‌گذارد را کنترل می‌کند. به طور کلی، اگر دایرکتوری والد فلگ DI را داشته باشد و دارای ACEهای قابل ارث‌بری باشد، این فلگ هنگام ایجاد روی فایل (یا دایرکتوری) تنظیم می‌شود.

از سوی دیگر، زمانی که یک Security Descriptor به طور صریح روی یک فایل تنظیم شود، فلگ DI پاک می‌شود، مگر اینکه فلگ «DACL Inheritance Required» (یا DR) نیز در Security Descriptor جدید تنظیم شده باشد (جهت اطلاع، DR هرگز روی دیسک ذخیره نمی‌شود).

این رفتار پیش‌فرض در هنگام فعال بودن این گزینه (پیش‌فرض) است. هنگام تنظیم این گزینه روی no، مقدار حاصل از فلگ DI روی دیسک مستقیماً از مقدار DI توصیف‌کننده امنیتیِ در حال تنظیم گرفته می‌شود. این حالت می‌تواند به ابزارهای پشتیبان‌گیری مانند rsync که بلوک‌های داده را از ویژگی‌های گسترده (xattrs) نمایانگر ACLهای ساخته‌شده توسط ماژول VFS با نام acl_xattr کپی می‌کنند اجازه دهد رونوشت‌هایی از ACL بسازند که دقیقاً مشابه مبدأ باشد. بدون این گزینه، تمام ACLهای رونوشت‌برداری‌شده فلگ DI را در صورت وجود در مبدأ از دست می‌دهند.

Default: acl flag inherited canonicalization = yes

acl group control (S)

در یک سیستم فایل POSIX، تنها مالک یک فایل یا دایرکتوری و کاربر ارشد (superuser) می‌توانند مجوزها و ACLهای یک فایل را تغییر دهند. در صورت تنظیم این پارامتر، Samba این محدودیت را نادیده گرفته و به primary group owner (مالک گروه اصلی) یک فایل یا دایرکتوری نیز اجازه می‌دهد مجوزها و ACLهای آن فایل را تغییر دهد.

در یک سرور ویندوز، گروه‌ها می‌توانند مالک یک فایل یا دایرکتوری باشند؛ بنابراین هر فردی در آن گروه اجازه دارد مجوزهای آن را اصلاح کند. این قابلیت امکان تفویض کنترل‌های امنیتی در نقطه‌ای از سیستم فایل را به گروه مالک یک دایرکتوری و تمام موارد زیرمجموعه آن که متعلق به همان گروه هستند، می‌دهد. این به معنی آن است که افراد متعددی مجوز ویرایش ACLهای یک فایل یا دایرکتوری را دارند و مدیریت سیستم آسان‌تر می‌شود.

این پارامتر به Samba اجازه می‌دهد تا کنترل روی نقطه‌ای از ساختار سلسله‌مراتبی دایرکتوری به اشتراک‌گذاشته‌شده را تقریباً به همان روش ویندوز تفویض کند. این کار به همه اعضای یک گروه UNIX امکان می‌دهد مجوزهای فایل یا دایرکتوری‌ای را که مالکیت گروهی آن را دارند، کنترل نمایند.

این پارامتر بهتر است همراه با گزینه inherit owner و همچنین روی اشتراک‌هایی استفاده شود که شامل دایرکتوری‌هایی با بیت UNIX setgid bit تنظیم‌شده روی آن‌ها هستند، که باعث می‌شود فایل‌ها و دایرکتوری‌های جدید ایجادشده در آن، مالکیت گروهی را از دایرکتوری دربرگیرنده به ارث ببرند.

این پارامتر در Samba 3.0.23 منسوخ شده بود، اما در Samba 3.0.31 و بالاتر مجدداً فعال شد؛ زیرا اکنون تنها در صورتی تغییرات مجوز را کنترل می‌کند که کاربر در گروه اصلیِ مالک عضو باشد. این پارامتر دیگر معادل گزینه dos filemode نیست.

Default: acl group control = no

acl map full control (S)

این پارامتر بولی کنترل می‌کند که آیا smbd(8) ورودی POSIX ACE با مقدار "rwx" (خواندن/نوشتن/اجرا) که حداکثر مجموعه مجوزهای مجاز POSIX است را به یک Windows ACL با دسترسی "FULL CONTROL" نگاشت کند یا خیر. اگر این پارامتر روی true تنظیم شود، هر ورودی POSIX ACE با مقدار "rwx" در Windows ACL به صورت "FULL CONTROL" بازگردانده می‌شود؛ اگر این پارامتر روی false تنظیم شود، هر ورودی POSIX ACE با مقدار "rwx" به صورت بیت‌های خاص Windows ACL که نمایانگر خواندن، نوشتن و اجرا هستند بازگردانده خواهد شد.

Default: acl map full control = yes

ad dc functional level (G)

مقدار این پارامتر (یک رشته) نشان‌دهنده سطح عملکردی (functional level) دامین Active Directory است که این Domain Controller ادعای پشتیبانی از آن را دارد.

مقادیر ممکن عبارتند از:

•2008_R2: مشابه با سطح عملکردی Windows 2008 R2
•2012: مشابه با سطح عملکردی Windows 2012
•2012_R2: مشابه با سطح عملکردی Windows 2012 R2
•2016: مشابه با سطح عملکردی Windows 2016
به طور معمول نیازی به تنظیم این گزینه نیست، زیرا Samba بر اساس قابلیت‌های منتشرشده Samba Active Directory Domain Controller کار خواهد کرد.

با این حال برای دسترسی به ویژگی‌های هنوز کامل‌نشده در سطح عملکردی دامین 2016، ممکن است تنظیم این مقدار پیش از ارتقای سطح عملکردی دامنه مفید باشد.

اگر این گزینه به صورت دستی تنظیم شود، محافظت در برابر عدم تطابق ویژگی‌ها میان Domain Controllerها کاهش می‌یابد؛ بنابراین همه Domain Controllerها باید نسخه یکسانی از Samba را اجرا کنند تا اطمینان حاصل شود که رفتار مشاهده‌شده توسط کلاینت، بدون توجه به اینکه با کدام DC ارتباط برقرار کرده است، یکسان خواهد بود.

تنظیم این گزینه روی 2016 امکان ارتقای سطح عملکردی دامنه را با دستور samba-tool domain level raise --domain-level=2016 فراهم کرده و دسترسی به قابلیت‌های Kerberos Claims و Dynamic Access Control در Samba را امکان‌پذیر می‌سازد.


هشدار
ویژگی‌های Kerberos Claims و Dynamic Access Control در Samba که با مقدار 2016 فعال می‌شوند، در Samba 4.19 کامل نیستند.
Default: ad dc functional level = 2008_R2

Example: ad dc functional level = 2016

add group script (G)

این مسیر کامل اسکریپتی است که در هنگام درخواست ایجاد یک گروه جدید، AS ROOT توسط smbd(8) اجرا خواهد شد. این پارامتر هر %g را به نام گروه ارسال‌شده بسط خواهد داد. این اسکریپت تنها برای محیط‌هایی مفید است که از ابزارهای مدیریت دامین Windows NT استفاده می‌کنند. اسکریپت مجاز است برای دور زدن محدودیت‌های نام‌گذاری گروه‌ها در یونیکس، گروهی با نام دلخواه بسازد. در این حالت، اسکریپت باید شناسه عددی gid گروه ایجادشده را در خروجی استاندارد (stdout) چاپ کند.

Default: add group script =

Example: add group script = /usr/sbin/groupadd %g

additional dns hostnames (G)

فهرستی از نام‌های DNS اضافی که این میزبان می‌تواند با آن‌ها شناسایی شود.

Default: additional dns hostnames = # empty string (no additional dns names)

Example: additional dns hostnames = host2.example.com host3.other.com

add machine script (G)

این مسیر کامل اسکریپتی است که در هنگام اضافه شدن یک ماشین به دامنهٔ Samba و در صورتی که یک حساب کاربری Unix منطبق با نام ماشین همراه با یک «$» در انتهای آن از پیش وجود نداشته باشد، توسط smbd(8) اجرا خواهد شد.

این گزینه بسیار شبیه به add user script است و مشابهاً از جایگزینی %u برای نام حساب کاربری استفاده می‌کند. از جایگزینی %m استفاده نکنید.

Default: add machine script =

Example: add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /var/lib/nobody -s /bin/false %u

addport command (G)

در Samba 3.0.23 پشتیبانی از افزودن درگاه‌های (پورت‌های) چاپگر از راه دور با استفاده از «Add Standard TCP/IP Port Wizard» ویندوز ارائه شد. این گزینه یک برنامهٔ خارجی را برای اجرا تعیین می‌کند؛ زمانی که smbd درخواستی مبنی بر افزودن یک درگاه جدید به سیستم دریافت نماید. دو پارامتر به این اسکریپت ارسال می‌شود:
•port name
•device URI
قالب deviceURI به صورت socket://<hostname>[:<portnumber>] یا lpd://<hostname>/<queuename> است.

Default: addport command =

Example: addport command = /etc/samba/scripts/addport.sh

addprinter command (G)

با معرفی پشتیبانی از چاپ مبتنی بر MS-RPC برای کلاینت‌های Windows NT/2000 در Samba 2.2، اکنون آیکون MS Add Printer Wizard (APW) در پوشهٔ «...Printers» در فهرست اشتراک‌ها نیز در دسترس قرار گرفته است. قابلیت APW امکان افزودن چاپگرها را از راه دور به یک سرور چاپ Samba یا Windows NT/2000 فراهم می‌کند.

برای یک میزبان Samba، این بدان معناست که چاپگر باید به‌طور فیزیکی به سیستم چاپ زیرین اضافه شود. گزینهٔ addprinter command اسکریپتی را برای اجرا مشخص می‌کند که عملیات لازم را برای افزودن چاپگر به سیستم چاپ و اضافه کردن تعریف سرویس مناسب به فایل smb.conf انجام می‌دهد تا بتواند توسط smbd(8) به اشتراک گذاشته شود.

گزینهٔ addprinter command به‌طور خودکار با پارامترهای زیر (به ترتیب) فراخوانی می‌شود:

•printer name
•share name
•port name
•driver name
•location
•Windows 9x driver location
تمام پارامترها به جز یک مورد، از ساختار PRINTER_INFO_2 ارسال‌شده از سوی کلاینت Windows NT/2000 پر می‌شوند. پارامتر «Windows 9x driver location» تنها برای سازگاری با نسخه‌های قدیمی‌تر گنجانده شده است. سایر فیلدهای موجود در این ساختار از پاسخ‌های داده‌شده به پرسش‌های APW تولید می‌شوند.

پس از اجرای addprinter command، دیمن smbd فایل smb.conf را مجدداً تجزیه می‌کند تا بررسی کند آیا اشتراک تعریف‌شده توسط APW وجود دارد یا خیر. اگر نام اشتراک همچنان نامعتبر باشد، smbd خطای ACCESS_DENIED را به کلاینت برمی‌گرداند.

برنامهٔ addprinter command می‌تواند یک خط متن خروجی تولید کند که سامبا آن را به‌عنوان درگاهی که چاپگر جدید به آن متصل است تنظیم خواهد کرد. اگر این خط خروجی داده نشود، سامبا اشتراک‌های چاپگر خود را مجدداً بارگذاری نخواهد کرد.

Default: addprinter command =

Example: addprinter command = /usr/bin/addprinter

add share command (G)

در Samba 2.2.0 قابلیت افزودن و حذف پویای اشتراک‌ها از طریق Windows NT 4.0 Server Manager معرفی شد. گزینهٔ add share command برای تعریف یک برنامه یا اسکریپت خارجی استفاده می‌شود که یک تعریف سرویس جدید را به smb.conf اضافه خواهد کرد.

برای اجرای موفقیت‌آمیز add share command، دیمن smbd الزام می‌کند که مدیر سیستم با استفاده از یک حساب ریشه (یعنی uid == 0) متصل شود یا دارای دسترسی SeDiskOperatorPrivilege باشد. اسکریپت‌های تعریف‌شده در پارامتر add share command با دسترسی ریشه (root) اجرا می‌شوند.

هنگام اجرا، smbd به‌طور خودکار add share command را با پنج پارامتر فراخوانی می‌کند.

•configFile - مکان فایل سراسری smb.conf.
•shareName - نام اشتراک جدید.
•pathName - مسیر یک دایرکتوری **موجود** بر روی دیسک.
•comment - رشته توضیحات برای انتساب به اشتراک جدید.
•max connections حداکثر تعداد اتصال‌های هم‌زمان به این اشتراک.
این پارامتر تنها برای افزودن اشتراک‌های فایل به کار می‌رود. برای افزودن اشتراک‌های چاپگر، addprinter command را ببینید.

Default: add share command =

Example: add share command = /usr/local/bin/addshare

add user script (G)

این مسیر کامل به اسکریپتی است که تحت شرایط خاص شرح داده شده در زیر، توسط smbd(8) AS ROOT (با دسترسی ریشه) اجرا خواهد شد.

به‌طور معمول، یک سرور Samba نیازمند آن است که برای تمامی کاربرانی که به فایل‌های روی این سرور دسترسی دارند، کاربران UNIX ایجاد شده باشند. برای مراکزی که از پایگاه‌های داده حساب کاربری Windows NT به‌عنوان پایگاه داده اصلی کاربران خود استفاده می‌کنند، ایجاد این کاربران و همگام نگه داشتن فهرست کاربران با PDC در Windows NT کاری طاقت‌فرسا و دشوار است. این گزینه به smbd اجازه می‌دهد تا هنگام دسترسی کاربر به سرور Samba، کاربران UNIX مورد نیاز را ON DEMAND (برحسب تقاضا) ایجاد کند.

هنگامی که کاربر Windows برای دسترسی به سرور Samba تلاش می‌کند، در زمان ورود به سیستم (برپاسازی نشست در پروتکل SMB)، smbd(8) با password server ارتباط برقرار کرده و سعی می‌کند کاربر داده‌شده را با گذرواژه ارائه‌شده احراز هویت کند. اگر احراز هویت موفقیت‌آمیز باشد، آن‌گاه smbd تلاش می‌کند یک کاربر UNIX را در پایگاه داده گذرواژه‌های UNIX بیابد تا کاربر Windows را به آن نگاشت کند. اگر این جستجو ناموفق باشد و add user script تنظیم شده باشد، smbd اسکریپت مشخص‌شده را AS ROOT فراخوانی کرده و هر آرگومان %u را به نام کاربری که باید ایجاد شود بسط می‌دهد.

اگر این اسکریپت با موفقیت کاربر را ایجاد کند، smbd طوری به کار خود ادامه می‌دهد که گویی کاربر UNIX از قبل وجود داشته است. به این ترتیب، کاربران UNIX به‌صورت پویا متناسب با حساب‌های موجود Windows NT ایجاد می‌شوند.

همچنین ببینید: security، password server، delete user script.

Default: add user script =

Example: add user script = /usr/local/samba/bin/add_user %u

add user to group script (G)

مسیر کامل اسکریپتی که در هنگام اضافه شدن یک کاربر به یک گروه با استفاده از ابزارهای مدیریت دامین Windows NT فراخوانی خواهد شد. این اسکریپت توسط smbd(8) AS ROOT (با دسترسی ریشه) اجرا خواهد شد. هر %g با نام گروه و هر %u با نام کاربر جایگزین خواهد شد.

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

Default: add user to group script =

Example: add user to group script = /usr/sbin/adduser %u %g

administrative share (S)

اگر این پارامتر برای یک اشتراک روی yes تنظیم شود، آن اشتراک یک اشتراک مدیریتی خواهد بود. اشتراک‌های مدیریتی (Administrative Shares)، اشتراک‌های شبکه پیش‌فرضی هستند که توسط تمامی سیستم‌عامل‌های مبتنی بر Windows NT ایجاد می‌شوند. این‌ها اشتراک‌هایی مانند C$، D$ یا ADMIN$ هستند. نوع این اشتراک‌ها STYPE_DISKTREE_HIDDEN است.

برای اطلاعات بیشتر درباره این گزینه، بخش security را در زیر ببینید.

Default: administrative share = no

admin users (S)

این فهرستی از کاربرانی است که دسترسی‌های مدیریتی روی اشتراک به آن‌ها اعطا می‌شود. این بدان معناست که آن‌ها تمام عملیات فایلی را به‌عنوان کاربر ارشد (root) انجام خواهند داد.

باید از این گزینه با احتیاط بسیار استفاده کنید، چرا که هر کاربری در این فهرست بدون در نظر گرفتن دسترسی‌ها و مجوزهای فایل، قادر خواهد بود هر کاری که می‌خواهد در اشتراک انجام دهد.

Default: admin users =

Example: admin users = jason

afs share (S)

این پارامتر کنترل می‌کند که آیا ویژگی‌های ویژه AFS برای این اشتراک فعال باشند یا خیر. در صورت فعال بودن، فرض را بر این می‌گذارد که دایرکتوری صادرشده از طریق پارامتر path یک واردات محلی AFS است. ویژگی‌های ویژه AFS شامل تلاش برای ساخت دستی یک توکن AFS در صورت فعال کردن --with-fake-kaserver در configure است.

Default: afs share = no

afs token lifetime (G)

این پارامتر طول عمر توکن‌هایی را کنترل می‌کند که fake-kaserver مربوط به AFS مدعی آن‌هاست. در واقعیت این‌ها هرگز منقضی نمی‌شوند، اما این طول عمر کنترل می‌کند که کلاینت afs چه زمانی توکن را فراموش کند.

این پارامتر را برای دریافت NEVERDATE روی 0 تنظیم کنید.

Default: afs token lifetime = 604800

afs username map (G)

اگر از ویژگی fake kaserver در AFS استفاده می‌کنید، ممکن است بخواهید نام‌های کاربری که برای آن‌ها توکن می‌سازید را به‌صورت دستی شکل دهید. برای مثال اگر کاربرانی از چندین دامین مختلف در AFS Protection Database خود داشته باشید، این امر ضروری است. یک روش ممکن، کدگذاری کاربران به‌صورت DOMAIN+User است، همان‌گونه که توسط winbind با جداکننده + انجام می‌شود.

نام کاربری نگاشت‌شده باید حاوی نام cell برای ورود باشد؛ بنابراین بدون تنظیم این پارامتر، هیچ توکنی وجود نخواهد داشت.

Default: afs username map =

Example: afs username map = %u@afs.samba.org

aio max threads (G)

این پارامتر با مقدار عددی صحیح، حداکثر تعداد ریسه‌هایی (thread) را مشخص می‌کند که هر پردازش smbd هنگام انجام فراخوانی‌های ورودی/خروجی (IO) ناهمگام و موازی ایجاد خواهد کرد. اگر تعداد فراخوانی‌های معلق بیشتر از این مقدار باشد، درخواست‌ها رد نخواهند شد بلکه در یک صف قرار می‌گیرند و با تکمیل فراخوانی‌های در حال انتظار، به‌نوبت زمان‌بندی خواهند شد.

دستور مرتبط: aio read size

دستور مرتبط: aio write size

Default: aio max threads = 100

aio read size (S)

اگر این پارامتر عددی صحیح روی مقداری غیر از صفر تنظیم شود، هرگاه اندازه درخواست بزرگ‌تر از این مقدار باشد، Samba فایل‌ها را به‌صورت ناهمگام می‌خواند. توجه داشته باشید که این اتفاق فقط برای خواندن‌های غیرزنجیره‌ای و فاقد زنجیره (non-chained and non-chaining) رخ می‌دهد.

تنها مقادیر منطقی برای این پارامتر 0 (عدم استفاده از I/O ناهمگام) و 1 (همیشه انجام I/O ناهمگام) هستند.

دستور مرتبط: aio write size

Default: aio read size = 1

Example: aio read size = 0 # Always do reads synchronously

aio write behind (S)

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

ساختار نحوی آن دقیقاً مشابه پارامتر veto files است.

Default: aio write behind =

Example: aio write behind = /*.tmp/

aio write size (S)

اگر این پارامتر عددی صحیح روی مقداری غیر از صفر تنظیم شود، هرگاه اندازه درخواست بزرگ‌تر از این مقدار باشد، Samba داده‌ها را به‌صورت ناهمگام در فایل‌ها می‌نویسد. توجه داشته باشید که این موضوع تنها برای نوشتن‌های غیرزنجیره‌ای و فاقد زنجیره (non-chained and non-chaining) رخ می‌دهد.

تنها مقادیر منطقی برای این پارامتر 0 (عدم استفاده از I/O ناهمگام) و 1 (همیشه انجام I/O ناهمگام) هستند.

در مقایسه با aio read size این پارامتر تأثیر کمتری دارد، چرا که بیشتر عملیات نوشتن در حافظه نهان (کَش) سامانه فایل قرار می‌گیرند. عملیات نوشتنی که نیازمند تخصیص فضا هستند ممکن است بیشترین بهره را از ناهمگام شدن ببرند.

دستور مرتبط: aio read size

Default: aio write size = 1

Example: aio write size = 0 # Always do writes synchronously

algorithmic rid base (G)

این گزینه تعیین می‌کند که Samba چگونه از نگاشت الگوریتمی خود از uidها/gidها به RIDهای لازم برای ساخت شناسه امنیت NT (شناسه‌های NT Security Identifiers) استفاده کند.

تنظیم این گزینه روی مقداری بزرگ‌تر می‌تواند برای مراکزی که در حال مهاجرت از WinNT و Win2k هستند مفید باشد، زیرا در غیر این صورت RIDهای موجود کاربران و گروه‌ها با کاربران سیستمی و غیره تداخل پیدا می‌کنند.

تمامی UIDها و GIDها باید برای عملکرد صحیح ACLها روی سرور، قابل تجزیه به SIDها باشند. به همین جهت، نگاشت الگوریتمی را نمی‌توان 'خاموش کرد'، اما 'کنار زدن آن' (با اختصاص بازه بالاتر) باید مشکلات را برطرف کند. سپس می‌توان به کاربران و گروه‌ها در backendهایی که از RID دلخواه پشتیبانی می‌کنند، RIDهای 'پایین' تخصیص داد.

Default: algorithmic rid base = 1000

Example: algorithmic rid base = 100000

allocation roundup size (S)

این پارامتر به مدیر سیستم اجازه می‌دهد اندازه تخصیص (allocation size) گزارش‌شده به کلاینت‌های Windows را تنظیم کند. این گزینه تنها برای کلاینت‌های قدیمی SMB1 مفید است، چرا که لهجه‌های جدیدتر SMB این گلوگاه را از میان برداشته‌اند و به‌طور پیش‌فرض عملکرد بهتری دارند. استفاده از این پارامتر ممکن است برای برخی از برنامه‌ها، مانند MS Visual Studio، مشکلاتی ایجاد کند. اگر کامپایلر MS Visual Studio با خطای داخلی شروع به از کار افتادن (crash) کرد، این پارامتر را برای این اشتراک روی صفر تنظیم کنید. تنظیم این پارامتر روی مقداری بزرگ می‌تواند همچنین باعث شود فایل‌های کوچک بیش از حد نیاز فضا روی دیسک اشغال کنند.

این پارامتر منسوخ شده است و در یکی از نسخه‌های آینده Samba حذف خواهد شد.

این پارامتر عددی صحیح، اندازه گرد کردن (roundup size) را برحسب بایت مشخص می‌کند.

Default: allocation roundup size = 0

Example: allocation roundup size = 1048576 # (to set it to the former default of 1 MiB)

allow dcerpc auth level connect (G)

این گزینه کنترل می‌کند که آیا سرویس‌های DCERPC مجاز به استفاده با DCERPC_AUTH_LEVEL_CONNECT هستند یا خیر؛ سطحی که احراز هویت را فراهم می‌کند، اما محافظتی از یکپارچگی یا حریم خصوصی پیام‌ها ارائه نمی‌دهد.

برخی از رابط‌ها (interfaces) مانند samr، lsarpc و netlogon دارای پیش‌فرض تغییرناپذیر درون‌کدی no هستند و epmapper، mgmt و rpcecho دارای پیش‌فرض تغییرناپذیر yes می‌باشند.

این رفتار می‌تواند به ازای هر نام رابط (مانند lsarpc، netlogon، samr، srvsvc، winreg، wkssvc ...) با استفاده از گزینه 'allow dcerpc auth level connect:interface = yes' بازنویسی (override) شود.

این گزینه توسط محدودیت‌های خاص پیاده‌سازی باطل می‌شود؛ به‌عنوان مثال پروتکل‌های drsuapi و backupkey نیازمند DCERPC_AUTH_LEVEL_PRIVACY هستند. پروتکل dnsserver نیز به DCERPC_AUTH_LEVEL_INTEGRITY نیاز دارد.

Default: allow dcerpc auth level connect = no

Example: allow dcerpc auth level connect = yes

allow dns updates (G)

این گزینه تعیین می‌کند که چه نوع به‌روزرسانی‌هایی برای DNS مجاز هستند.

به‌روزرسانی‌های DNS را می‌توان یا با تنظیم روی disabled به‌طور کامل غیرمجاز کرد، یا با تنظیم روی secure only فقط از طریق اتصالات امن مجاز نمود، یا با تنظیم روی nonsecure در تمام موارد مجاز دانست.

Default: allow dns updates = secure only

Example: allow dns updates = disabled

allow insecure wide links (G)

در عملکرد عادی، گزینهٔ wide links که به سرور اجازه می‌دهد پیوندهای نمادین (symlinks) خارج از مسیر اشتراک را دنبال کند، هنگامی که unix extensions در سرور Samba فعال باشد، به‌طور خودکار غیرفعال می‌شود. این کار به دلایل امنیتی انجام می‌گیرد تا از ایجاد پیوندهای نمادین توسط کلاینت‌های UNIX به بخش‌هایی از سیستم‌فایل سرور که مدیر سیستم تمایلی به اشتراک‌گذاری آن‌ها ندارد، جلوگیری شود.

تنظیم allow insecure wide links روی true، پیوند میان این دو پارامتر را غیرفعال کرده و با حذف این محافظت، به سیستم اجازه می‌دهد تا سرور را برای دنبال کردن پیوندهای نمادین پیکربندی کند (با تنظیم wide links روی "true") حتی زمانی که unix extensions فعال باشد.

فعال کردن این گزینه توصیه نمی‌شود مگر اینکه پیامدهای اجازه دادن به سرور برای دنبال کردن پیوندهای نمادین ایجادشده توسط کلاینت‌های UNIX را به‌طور کامل درک کنید. در بیشتر پیکربندی‌های عادی Samba، این مورد یک حفرهٔ امنیتی در نظر گرفته می‌شود و تنظیم این پارامتر توصیه نمی‌شود.

این گزینه به درخواست مراکزی اضافه شد که Samba را عمداً به این روش پیکربندی کرده بودند و نیاز داشتند بدون نیاز به پچ کردن کد Samba، به پشتیبانی از این قابلیت ادامه دهند.

Default: allow insecure wide links = no

allow nt4 crypto (G)

این گزینه منسوخ شده است و در آینده حذف خواهد شد، زیرا در صورتی که روی "no" تنظیم نشود (که در آینده رفتار توکار و تغییرناپذیر خواهد بود) یک مشکل امنیتی است.

این گزینه کنترل می‌کند که آیا سرور netlogon (در حال حاضر فقط در حالت 'active directory domain controller')، کلاینت‌هایی را که نه از NETLOGON_NEG_STRONG_KEYS و نه از NETLOGON_NEG_SUPPORTS_AES پشتیبانی نمی‌کنند رد کند یا خیر.

این گزینه در Samba 4.2.0 اضافه شد. ممکن است کلاینت‌هایی را که با نسخه‌های Samba تا 4.1.x به‌خوبی کار می‌کردند مسدود کند، زیرا پیش‌فرض عملی در آن نسخه‌ها "yes" بود، در حالی که اکنون "no" است.

اگر کلاینت‌هایی دارید که فاقد RequireStrongKey = 1 در رجیستری هستند، ممکن است لازم باشد تا زمان اصلاح تمام کلاینت‌ها، "allow nt4 crypto = yes" را تنظیم کنید.

تنظیم "allow nt4 crypto = yes" امکان مذاکره برای رمزنگاری ضعیف را، احتمالاً از طریق حملات تنزل رتبه (downgrade attacks)، فراهم می‌کند.

از استفاده از این گزینه خودداری کنید! در عوض از گزینهٔ صریح 'allow nt4 crypto:COMPUTERACCOUNT = yes' استفاده کنید! که همراه با پچ‌های مربوط به CVE-2022-38023 در دسترس است؛ نگاه کنید به https://bugzilla.samba.org/show_bug.cgi?id=15240

اگر یک کلاینت قدیمی (legacy) رد شود یا بدون یک گزینهٔ صریح 'allow nt4 crypto:COMPUTERACCOUNT = yes' برای آن کلاینت مجاز گردد، Samba خطایی را در فایل‌های لاگ در سطح لاگ 0 ثبت خواهد کرد. اگر نرم‌افزار کلاینت قدیمی به آن نیاز داشته باشد، این پیام خط صریح 'allow nt4 crypto:COMPUTERACCOUNT = yes' را که باید اضافه شود مشخص می‌کند. (سطح لاگ را می‌توان با 'CVE_2022_38023:error_debug_level = 1' تنظیم کرد تا تنها در سطوح لاگ بالاتر گزارش شود).

این امکان به مدیران سیستم اجازه می‌دهد از "yes" فقط برای یک دورهٔ مهلت کوتاه استفاده کنند تا گزینه‌های صریح 'allow nt4 crypto:COMPUTERACCOUNT = yes' را جمع‌آوری نمایند.

این گزینه توسط مقدار مؤثر 'yes' از گزینه‌های 'server reject md5 schannel:COMPUTERACCOUNT'، 'reject md5 clients'، 'server reject aes schannel:COMPUTERACCOUNT' و/یا 'server reject aes schannel' لغو (override) می‌شود.

Default: allow nt4 crypto = no

allow nt4 crypto:COMPUTERACCOUNT (G)

اگر هنوز اعضای دامنهٔ قدیمی (legacy) دارید که به 'allow nt4 crypto = yes' نیاز دارند، می‌توانید با استفاده از گزینهٔ 'allow nt4 crypto:COMPUTERACCOUNT = yes' یک استثنای صریح به ازای هر حساب رایانه مشخص کنید. توجه داشته باشید که COMPUTERACCOUNT باید مقدار sAMAccountName مربوط به حساب رایانه باشد (شامل علامت '$' پایانی).

اگر گزینه روی "yes" تنظیم شده باشد اما رایانهٔ مربوطه به آن نیازی نداشته باشد، Samba در فایل‌های لاگ در سطح لاگ 0 شکایتی را دربارهٔ این مشکل امنیتی ثبت می‌کند. (سطح لاگ را می‌توان با 'CVE_2022_38023:warn_about_unused_debug_level = 1' تنظیم کرد تا تنها در سطوح لاگ بالاتر گزارش دهد).

اگر این تنظیم همچنان برای حساب رایانهٔ مشخص‌شده مورد نیاز باشد، Samba هشداری را در فایل‌های لاگ در سطح لاگ 5 ثبت خواهد کرد.

نگاه کنید به CVE-2022-38023، https://bugzilla.samba.org/show_bug.cgi?id=15240.

این گزینه بر گزینهٔ allow nt4 crypto ارجحیت دارد و آن را لغو (override) می‌کند.

این گزینه توسط مقدار مؤثر 'yes' از گزینه‌های 'server reject md5 schannel:COMPUTERACCOUNT'، 'reject md5 clients'، 'server reject aes schannel:COMPUTERACCOUNT' و/یا 'server reject aes schannel' لغو می‌شود.

به این معنی که 'allow nt4 crypto:COMPUTERACCOUNT = yes' فقط در ترکیب با 'server reject md5 schannel:COMPUTERACCOUNT = no' و 'server reject aes schannel:COMPUTERACCOUNT = no' کاربرد دارد.

allow nt4 crypto:LEGACYCOMPUTER1$ = yes
server reject md5 schannel:LEGACYCOMPUTER1$ = no
server reject aes schannel:LEGACYCOMPUTER1$ = no
allow nt4 crypto:NASBOX$ = yes
server reject md5 schannel:NASBOX$ = no
server reject aes schannel:NASBOX$ = no
allow nt4 crypto:LEGACYCOMPUTER2$ = yes
server reject md5 schannel:LEGACYCOMPUTER2$ = no
server reject aes schannel:LEGACYCOMPUTER2$ = no

No default

allow trusted domains (G)

این گزینه تنها زمانی اعمال می‌شود که گزینهٔ security روی server، domain یا ads تنظیم شده باشد. اگر روی no تنظیم شود، تلاش‌ها برای اتصال به یک منبع از دامنه‌ای یا گروه کاری (workgroup) غیر از دامنه‌ای که smbd در آن اجرا می‌شود ناموفق خواهد بود، حتی اگر آن دامنه توسط سرور راه دور که اعتبارسنجی را انجام می‌دهد مورد اعتماد (trusted) باشد.

این قابلیت زمانی مفید است که فقط بخواهید سرور Samba شما به کاربران دامنه‌ای که در آن عضو است خدمات‌رسانی کند. به عنوان مثال، فرض کنید دو دامنهٔ DOMA و DOMB وجود دارند. دامنهٔ DOMB توسط DOMA (که شامل سرور Samba است) مورد اعتماد است. در شرایط عادی، کاربری که دارای حسابی در DOMB است می‌تواند به منابع یک حساب UNIX با همان نام در سرور Samba دسترسی داشته باشد، حتی اگر حسابی در DOMA نداشته باشد. این موضوع می‌تواند پیاده‌سازی یک مرز امنیتی را دشوار کند.

Default: allow trusted domains = yes

allow unsafe cluster upgrade (G)

اگر روی no (پیش‌فرض) تنظیم شود، smbd در زمان راه‌اندازی بررسی می‌کند که آیا نسخه‌های دیگر smbd در کلاستر در حال اجرا هستند یا خیر، و در این صورت از شروع به کار خودداری می‌کند. این کار برای جلوگیری از خرابی داده‌ها در ساختارهای داده‌ای داخلی ناشی از اجرای هم‌زمان نسخه‌های ناسازگار Samba در یک کلاستر انجام می‌شود. تنظیم این پارامتر روی yes این بررسی ایمنی را غیرفعال می‌کند.

Default: allow unsafe cluster upgrade = no

apply group policies (G)

این گزینه کنترل می‌کند که آیا winbind دستور gpupdate تعریف‌شده در gpo update command را در بازهٔ زمانی به‌روزرسانی Group Policy اجرا کند یا خیر. بازهٔ زمانی به‌روزرسانی Group Policy به‌صورت هر ۹۰ دقیقه، به‌علاوه یک آفست تصادفی بین ۰ تا ۳۰ دقیقه تعریف شده است. این گزینه خط‌مشی‌های ماشین (machine policies) مربوط به Group Policy را روی کلاینت یا KDC و خط‌مشی‌های ماشین را روی سرور اعمال می‌کند.

Default: apply group policies = no

Example: apply group policies = yes

async dns timeout (G)

تعداد ثانیه‌هایی که کد تحلیل‌گر ناهمگام DNS در Samba منتظر پاسخ‌ها می‌ماند. بخشی از کد کتابخانهٔ کلاینت Samba هنگام تلاش برای یافتن کنترل‌کننده‌های دامنهٔ Active Directory (یا همان Active Directory Domain controllers)، از تحلیل نام ناهمگام داخلی DNS برای رکوردهای A و AAAA استفاده می‌کند. این مقدار از معطل ماندن کد تحلیل نام برای اتمام مهلت زمانی (timeout) سرور DNS جلوگیری می‌کند.

حداقل مقدار این پارامتر روی ۱ ثانیه محدود شده است.

Default: async dns timeout = 10

Example: async dns timeout = 20

async smb echo handler (G)

این پارامتر مشخص می‌کند که آیا Samba باید async smb echo handler را fork کند یا خیر. اگر سیستم‌فایل شما فراخوان‌های سیستمی (syscalls) را برای مدتی بسیار طولانی مسدود (block) کند، این قابلیت می‌تواند مفید باشد. در برخی شرایط، این گزینه مهلت زمانی (timeout) را که ویندوز برای تشخیص قطع بودن اتصال استفاده می‌کند طولانی‌تر می‌سازد. این پارامتر فقط برای SMB1 است. برای SMB2 و بالاتر می‌توان در عوض از TCP keepalives استفاده کرد.

Default: async smb echo handler = no

auth event notification (G)

هنگامی که فعال باشد، این گزینه باعث می‌شود Samba (در نقش Active Directory Domain Controller) رویدادهای اعتبارسنجی را از طریق گذرگاه پیام داخلی پخش کند. اسکریپت‌های ایجادشده با استفاده از بایندینگ‌های پایتونِ Samba می‌توانند با ثبت به عنوان سرویس auth_event به این رویدادها گوش دهند.

این گزینه برای لاگ‌گیری حسابرسی (audit logging) شرح‌داده‌شده در log level لازم نیست.

در عوض، این قابلیت باید بیشتر یک گزینهٔ توسعه‌دهندگان در نظر گرفته شود (که در مجموعه آزمون‌های Samba کمک می‌کند) تا ابزاری برای حسابرسی خارجی، زیرا تحویل پیام‌ها تضمین‌شده نیست (ویژگی‌ای که مجموعه آزمون‌ها با روش‌های خود آن را دور می‌زنند).

همچنین رویدادهای اعتبارسنجی در صورتی که log level به‌طور مناسب، مثلاً روی auth_json_audit:3 تنظیم شده باشد، از طریق روش‌های عادی لاگ‌گیری نیز ثبت می‌شوند.

Default: auth event notification = no

preload

این پارامتر مترادفی برای auto services است.

auto services (G)

این فهرستی از سرویس‌هایی است که می‌خواهید به‌طور خودکار به فهرست‌های مرور اضافه شوند. این گزینه بیش از همه برای سرویس‌های homes و printers کاربرد دارد که در غیر این صورت قابل مشاهده نبودند.

توجه داشته باشید که اگر فقط می‌خواهید تمام چاپگرهای موجود در فایل printcap شما بارگذاری شوند، گزینهٔ load printers راحت‌تر است.

Default: auto services =

Example: auto services = fred lp colorlp

automount fs types (G)

این پارامتر فهرستی از شماره‌های جادویی (magic numbers) اضافی سیستم‌فایل را مشخص می‌کند که در هنگام دسترسی، باید عمل سوار کردن خودکار (automounting) را فعال کنند.

مقادیر باید به‌صورت اعداد هگزادسیمال (با یا بدون پیشوند 0x)، که با فاصله یا کاما از هم جدا شده‌اند، مشخص شوند.

نکته: این پارامتر فقط در سیستم‌های لینوکس در دسترس است.

برای یافتن شمارهٔ جادویی یک سیستم‌فایل سوارشده، به /usr/include/linux/magic.h مراجعه کنید یا دستور زیر را فراخوانی نمایید: stat -f -c '0x%t' /path/to/mountpoint

نکته: autofs (0x187) همیشه بررسی می‌شود و نیازی نیست در این فهرست گنجانده شود.

Default: automount fs types =

Example: automount fs types = 0xA0B0C0D0 0x12345678

available (S)

این پارامتر به شما امکان می‌دهد یک سرویس را «خاموش» کنید. اگر available = no باشد، آن‌گاه تمام تلاش‌ها برای اتصال به این سرویس با شکست مواجه خواهد شد. چنین شکست‌هایی در لاگ ثبت می‌شوند.

Default: available = yes

bind dns directory

این پارامتر مترادفی برای binddns dir است.

binddns dir (G)

این پارامتر دایرکتوری مورد استفاده سامبا را برای ذخیره فایل‌های پیکربندی bind، مانند named.conf مشخص می‌کند. نکته: دایرکتوری bind dns باید روی همان نقطه اتصال (mount point) دایرکتوری private قرار داشته باشد!

Default: binddns dir = /var/lib/samba/bind-dns

bind interfaces only (G)

این پارامتر سراسری به مدیر سامبا امکان می‌دهد رابط‌های شبکه‌ای روی ماشین را که به درخواست‌های SMB پاسخ می‌دهند، محدود کند. این پارامتر بر سرویس فایل smbd(8) و سرویس نام nmbd(8) به روش‌های اندکی متفاوت تأثیر می‌گذارد.

برای سرویس نام، باعث می‌شود nmbd به پورت‌های ۱۳۷ و ۱۳۸ روی رابط‌های فهرست‌شده در پارامتر interfaces متصل (bind) شود. nmbd همچنین به منظور خواندن پیام‌های همگانی (broadcast) به رابط «همه نشانی‌ها» (0.0.0.0) روی پورت‌های ۱۳۷ و ۱۳۸ متصل می‌شود. اگر این گزینه تنظیم نشده باشد، nmbd به درخواست‌های نام روی همه این سوکت‌ها پاسخ خواهد داد. اگر bind interfaces only تنظیم شده باشد، nmbd نشانی مبدأ هر بسته‌ای را که از سوکت‌های برودکست می‌آید بررسی کرده و هر بسته‌ای را که با نشانی‌های برودکست رابط‌های موجود در فهرست پارامتر interfaces تطابق نداشته باشد، دور می‌ریزد. از آنجا که بسته‌های تک‌پخشی (unicast) روی سوکت‌های دیگر دریافت می‌شوند، این ویژگی به nmbd امکان می‌دهد از پاسخ به درخواست نامِ ماشین‌هایی که بسته‌های آن‌ها از هر رابطی به غیر از رابط‌های فهرست‌شده در interfaces دریافت شده است، خودداری کند. با این حال، جعل نشانی مبدأ IP (IP Source address spoofing) این بررسی ساده را بی‌اثر می‌کند؛ بنابراین نباید به عنوان یک راهکار امنیتی جدی برای nmbd در نظر گرفته شود.

برای سرویس فایل، این گزینه باعث می‌شود smbd(8) تنها به فهرست رابط‌های ارائه‌شده در پارامتر interfaces متصل شود. این کار شبکه‌هایی را که smbd به آن‌ها سرویس می‌دهد، به بسته‌های دریافتی از آن رابط‌ها محدود می‌کند. توجه داشته باشید که نباید از این پارامتر برای ماشین‌هایی که از PPP یا سایر رابط‌های شبکه موقت، متناوب یا فاقد قابلیت برودکست استفاده می‌کنند بهره ببرید، زیرا با رابط‌های غیردائمی سازگار نخواهد بود.

اگر bind interfaces only تنظیم شده باشد و نشانی شبکه 127.0.0.1 به فهرست پارامتر interfaces اضافه نشده باشد، ممکن است smbpasswd(8) به دلایلی که در ادامه شرح داده شده است، طبق انتظار کار نکند.

برای تغییر رمز عبور SMB یک کاربر، دستور smbpasswd به طور پیش‌فرض به عنوان یک کلاینت SMB به نشانی localhost - 127.0.0.1 متصل می‌شود تا درخواست تغییر رمز عبور را ارسال کند. اگر bind interfaces only تنظیم شده باشد، تا زمانی که نشانی شبکه 127.0.0.1 به فهرست پارامتر interfaces افزوده نشود، اتصال smbpasswd در حالت پیش‌فرض ناموفق خواهد بود. می‌توان smbpasswd را با استفاده از پارامتر smbpasswd(8) -r remote machine وادار کرد تا از رابط IP اصلی میزبان محلی استفاده کند، به طوری که remote machine روی نام IP رابط اصلی میزبان محلی تنظیم شده باشد.

Default: bind interfaces only = no

blocking locks (S)

این پارامتر رفتار smbd(8) را هنگامی کنترل می‌کند که درخواستی از سوی کلاینت برای دستیابی به قفل محدوده بایت (byte range lock) روی بخشی از یک فایل باز دریافت می‌شود و آن درخواست دارای محدودیت زمانی است.

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

اگر این پارامتر روی no تنظیم شود، سامبا مانند نسخه‌های پیشین خود عمل خواهد کرد و در صورتی که محدوده قفل بلافاصله قابل دستیابی نباشد، درخواست قفل فوراً ناموفق اعلام می‌شود.

Default: blocking locks = yes

block size (S)

این پارامتر رفتار smbd(8) را هنگام گزارش میزان فضای خالی دیسک کنترل می‌کند. به طور پیش‌فرض، اندازه بلوک دیسک ۱۰۲۴ بایت گزارش می‌شود.

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

تغییر این گزینه اندازه کل فضای خالی گزارش‌شده دیسک را تغییر نمی‌دهد، بلکه صرفاً واحد اندازه بلوکِ گزارش‌شده به کلاینت را تغییر خواهد داد.

Default: block size = 1024

Example: block size = 4096

browsable

این پارامتر مترادفی برای browseable است.

browseable (S)

این گزینه تعیین می‌کند که آیا این اشتراک در فهرست اشتراک‌های موجود هنگام اجرای دستور net view و همچنین در فهرست مرور شبکه (browse list) دیده شود یا خیر.

Default: browseable = yes

browse list (G)

این گزینه تعیین می‌کند که آیا smbd(8) به کلاینتی که فراخوانی NetServerEnum را انجام می‌دهد، فهرست مرور ارائه دهد یا خیر. این گزینه معمولاً روی yes تنظیم می‌شود. هرگز نباید نیازی به تغییر این پارامتر داشته باشید.

Default: browse list = yes

cache directory (G)

معمولاً اکثر فایل‌های TDB در lock directory ذخیره می‌شوند. از نسخه Samba 3.4.0، با استفاده از گزینه‌های state directory و cache directory می‌توان بین فایل‌های TDB با داده‌های ماندگار (persistent) و فایل‌های TDB با داده‌های موقت و غیرماندگار تمایز قائل شد.

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

Default: cache directory = /var/cache/samba

Example: cache directory = /var/run/samba/locks/cache

casesignames

این پارامتر مترادفی برای case sensitive است.

case sensitive (S)

به توضیحات موجود در بخش name mangling مراجعه کنید.

Default: case sensitive = auto

change notify (G)

این پارامتر مشخص می‌کند که آیا سامبا باید به درخواست‌های کلاینت مبنی بر اطلاع‌رسانی از تغییرات فایل (file change notify) پاسخ دهد یا خیر.

هرگز نباید نیازی به تغییر این پارامتر داشته باشید.

Default: change notify = yes

change share command (G)

نسخه Samba 2.2.0 قابلیت افزودن و حذف پویای اشتراک‌ها را از طریق Windows NT 4.0 Server Manager معرفی کرد. گزینه change share command برای تعریف یک برنامه یا اسکریپت خارجی استفاده می‌شود که تعاریف سرویس‌های موجود را در smb.conf تغییر می‌دهد.

به منظور اجرای موفقیت‌آمیز change share command، دیمن smbd ملزم می‌کند که مدیر سیستم با یک حساب ریشه (یعنی uid == 0) متصل شده باشد یا امتیاز SeDiskOperatorPrivilege را دارا باشد. اسکریپت‌های تعریف‌شده در پارامتر change share command با دسترسی ریشه (root) اجرا می‌شوند.

هنگام اجرا، smbd به طور خودکار change share command را با شش پارامتر فراخوانی خواهد کرد.

•configFile - مکان فایل سراسری smb.conf.
•shareName - نام اشتراک جدید.
•pathName - مسیر مربوط به یک دایرکتوری **موجود** بر روی دیسک.
•comment - رشته توضیحات جهت انتساب به اشتراک جدید.
•max connections حداکثر تعداد اتصالات هم‌زمان مجاز به این اشتراک.
•CSC policy - سیاست حافظه موقت سمت کلاینت (client side caching policy) در قالب متنی. مقادیر معتبر عبارتند از: manual، documents، programs، disable.
این پارامتر صرفاً برای اصلاح تعاریف اشتراک‌های فایل موجود استفاده می‌شود. برای اصلاح اشتراک‌های چاپگر، از پوشه "Printers..." که هنگام مرور میزبان سامبا دیده می‌شود استفاده کنید.

Default: change share command =

Example: change share command = /usr/local/bin/changeshare

check parent directory delete on close (S)

یک کارساز SMB در ویندوز، کلاینت را از ایجاد فایل‌ها در دایرکتوری‌ای که فلگ delete-on-close برای آن تنظیم شده باشد، بازمی‌دارد. به‌طور پیش‌فرض Samba این بررسی را انجام نمی‌دهد، زیرا این بررسی در Samba عملیاتی بسیار پرهزینه و سنگین است.

Default: check parent directory delete on close = no

check password script (G)

نام برنامه‌ای که می‌تواند برای بررسی پیچیدگی گذرواژه استفاده شود. گذرواژه به ورودی استاندارد (standard input) برنامه ارسال می‌شود.

این برنامه در صورت مناسب بودن گذرواژه باید مقدار 0، یا در صورت نامناسب بودن گذرواژه هر مقدار دیگری را برگرداند. در صورتی که گذرواژه ضعیف در نظر گرفته شود (برنامه مقدار 0 را برنگرداند)، به کاربر اطلاع داده خواهد شد و تغییر گذرواژه با شکست مواجه می‌شود.

در Samba AD، این اسکریپت AS ROOT (با دسترسی ریشه) توسط samba(8) بدون هیچ‌گونه جایگزینی اجرا خواهد شد.

توجه داشته باشید که از Samba 4.11 به بعد، متغیرهای محیطی زیر به اسکریپت صادر (export) می‌شوند:

•متغیر SAMBA_CPS_ACCOUNT_NAME همیشه وجود دارد و حاوی sAMAccountName کاربر است. این متغیر معادل جایگزینی '%u' در حالت غیر AD DC است.
•متغیر SAMBA_CPS_USER_PRINCIPAL_NAME در حالت AD DC اختیاری است، در صورتی که userPrincipalName وجود داشته باشد.
•متغیر SAMBA_CPS_FULL_NAME اختیاری است، در صورتی که displayName وجود داشته باشد.
حتی در حالت غیر AD DC نیز استفاده از SAMBA_CPS_ACCOUNT_NAME روش ارجح برای دسترسی به نام حساب کاربری است، زیرا حاوی مقدار خامی است که کلاینت ارائه کرده است. اگر این کار امکان‌پذیر نیست، باید از علامت‌های نقل‌قول تکی (مستقیماً) در اطراف %u استفاده کنید، مانند '%u' path/to/somescript/؛ برای جزئیات بیشتر CVE-2026-4408 را ببینید.

نکته: در دایرکتوری نمونه‌ها، یک برنامه نمونه به نام crackcheck وجود دارد که از cracklib برای بررسی کیفیت گذرواژه استفاده می‌کند.

Default: check password script = # Disabled

Example: check password script = /usr/local/sbin/crackcheck

client ipc max protocol (G)

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

به‌طور معمول این گزینه نباید تنظیم شود زیرا مرحله مذاکره خودکار (automatic negotiation) در پروتکل SMB وظیفه انتخاب پروتکل مناسب را بر عهده دارد.

مقدار default به آخرین پروتکل پشتیبانی‌شده اشاره دارد، که در حال حاضر SMB3_11 است.

برای فهرست کاملی از پروتکل‌های موجود، client max protocol را ببینید. مقادیر CORE، COREPLUS، LANMAN1 و LANMAN2 بدون اعلان به NT1 ارتقا می‌یابند.

Default: client ipc max protocol = default

Example: client ipc max protocol = SMB2_10

client ipc min protocol (G)

این تنظیم حداقل نسخه پروتکلی را که برای اتصالات $IPC به عنوان بستر انتقال DCERPC تلاش خواهد شد استفاده شود، کنترل می‌کند.

به‌طور معمول این گزینه نباید تنظیم شود زیرا مرحله مذاکره خودکار در پروتکل SMB وظیفه انتخاب پروتکل مناسب را بر عهده دارد.

مقدار default به مقدار بالاتر میان NT1 و مقدار موثر client min protocol اشاره دارد.

برای فهرست کاملی از پروتکل‌های موجود، client max protocol را ببینید. مقادیر CORE، COREPLUS، LANMAN1 و LANMAN2 بدون اعلان به NT1 ارتقا می‌یابند.

Default: client ipc min protocol = default

Example: client ipc min protocol = SMB3_11

client ipc signing (G)

این گزینه کنترل می‌کند که آیا کلاینت مجاز است یا ملزم است که از امضای SMB برای اتصالات $IPC به عنوان بستر انتقال DCERPC استفاده کند یا خیر. مقادیر ممکن عبارتند از desired، required و disabled.

هنگامی که روی required یا default تنظیم شود، امضای SMB اجباری است.

هنگامی که روی desired تنظیم شود، امضای SMB پیشنهاد می‌شود، اما اجباری نیست و در صورت تنظیم روی disabled، امضای SMB حتی پیشنهاد نیز نمی‌شود.

اتصالات از winbindd به Domain Controllerهای Active Directory همیشه امضا را اجباری می‌کنند.

Default: client ipc signing = default

client lanman auth (G)

این پارامتر از زمان Samba 4.13 منسوخ شده است و پشتیبانی از احراز هویت LanMan (به عنوان هویتی متمایز از NTLM، NTLMv2 یا Kerberos) در سمت کلاینت، در انتشار آینده Samba حذف خواهد شد.

به این معنی که در آینده، رفتار پیش‌فرض فعلی یعنی client NTLMv2 auth = yes رفتار اجباری خواهد بود.

این پارامتر تعیین می‌کند که آیا smbclient(8) و سایر ابزارهای کلاینت samba تلاش خواهند کرد تا با استفاده از هش گذرواژه ضعیف‌تر LANMAN به کارسازها احراز هویت کنند یا خیر. در صورت غیرفعال بودن، تنها کارسازهایی که از هش‌های گذرواژه NT پشتیبانی می‌کنند (مانند Windows NT/2000، Samba و غیره، اما نه Windows 95/98) قادر خواهند بود از طریق کلاینت Samba متصل شوند.

پاسخ رمزنگاری‌شده LANMAN به دلیل حساس نبودن به کوچکی و بزرگی حروف و همچنین الگوریتم انتخابی‌اش، به‌سادگی شکسته می‌شود. به کلاینت‌هایی که فاقد کارسازهای Windows 95/98 هستند توصیه می‌شود این گزینه را غیرفعال کنند.

غیرفعال کردن این گزینه، گزینه client plaintext auth را نیز غیرفعال می‌کند.

به همین ترتیب، اگر پارامتر client ntlmv2 auth فعال باشد، تنها برای ورودهای NTLMv2 تلاش خواهد شد.

Default: client lanman auth = no

client ldap sasl wrapping (G)

گزینه client ldap sasl wrapping تعیین می‌کند که آیا ترافیک ldap امضا خواهد شد یا امضا و رمزنگاری (مهر و موم / sealed) می‌شود. مقادیر ممکن عبارتند از plain، sign و seal.

مقادیر sign و seal تنها زمانی در دسترس هستند که Samba در برابر یک نسخه امروزی OpenLDAP (نسخه 2.3.x یا بالاتر) کامپایل شده باشد.

این گزینه در درجه اول برای تامین امنیت حریم خصوصی اتصالات مدیریتی از جانب samba-tool، به‌ویژه شامل گذرواژه‌های جدید یا بازنشانی‌شده برای کاربران، مورد نیاز است. به همین دلیل مقدار پیش‌فرض seal است.

علاوه بر این، winbindd و ابزار net می‌توانند از LDAP برای برقراری ارتباط با Domain Controllerها استفاده کنند، بنابراین این گزینه سطح حریم خصوصی آن اتصالات را نیز کنترل می‌کند. تمام نسخه‌های پشتیبانی‌شده AD DC به‌طور پیش‌فرض استفاده از حداقل اتصالات LDAP امضاشده را اجباری می‌کنند، بنابراین در عمل مقداری حداقل برابر با sign مورد نیاز است.

مقدار پیش‌فرض seal است. این امر در صورت استفاده از Kerberos، مستلزم همگام‌سازی زمان با KDC است.

به منظور اجبار به استفاده از LDAP (روی پورت 389) به همراه STARTTLS یا LDAPS (روی پورت 636)، امکان استفاده از starttls یا ldaps وجود دارد. در این حالت احراز هویت NTLMSSP یا Kerberos از پیوندهای کانال TLS (TLS channel bindings) به منظور پیوند دادن آن به اتصال استفاده می‌کند.

Default: client ldap sasl wrapping = seal

client max protocol (G)

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

مقادیر ممکن عبارتند از:

•CORE: نخستین نسخه. بدون مفهوم نام‌های کاربری.
•COREPLUS: بهبودهای جزئی بر روی CORE برای بهره‌وری بیشتر.
•LANMAN1: نخستین نسخه مدرن از پروتکل. پشتیبانی از نام‌های طولانی فایل.
•LANMAN2: به‌روزرسانی‌هایی برای پروتکل Lanman1.
•NT1: نسخه به‌روز فعلی پروتکل. مورداستفاده توسط Windows NT. شناخته‌شده تحت عنوان CIFS.
•SMB2: بازپیاده‌سازی پروتکل SMB. مورداستفاده در ویندوز ویستا و نسخه‌های بعدی ویندوز. SMB2 دارای زیرپروتکل‌های متعددی است.
•SMB2_02: نخستین نسخه SMB2.
•SMB2_10: نسخه SMB2 در ویندوز 7.
به‌طور پیش‌فرض SMB2 نگارش SMB2_10 را انتخاب می‌کند.
•SMB3: مشابه SMB2. مورداستفاده در ویندوز 8. SMB3 دارای زیرپروتکل‌های متعددی است.
•SMB3_00: نسخه SMB3 در ویندوز 8.
•SMB3_02: نسخه SMB3 در ویندوز 8.1.
•SMB3_11: نسخه SMB3 در ویندوز 10.
به‌طور پیش‌فرض SMB3 نگارش SMB3_11 را انتخاب می‌کند.
به‌طور معمول این گزینه نباید تنظیم شود زیرا مرحله مذاکره خودکار در پروتکل SMB وظیفه انتخاب پروتکل مناسب را بر عهده دارد.

مقدار default به SMB3_11 اشاره دارد.

اتصالات $IPC برای DCERPC، به عنوان مثال در winbindd، توسط گزینه client ipc max protocol مدیریت می‌شوند.

Default: client max protocol = default

Example: client max protocol = LANMAN1

client min protocol (G)

این تنظیم، حداقل نسخه پروتکلی را که کلاینت برای استفاده تلاش خواهد کرد، کنترل می‌کند.

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

برای فهرست کامل پروتکل‌های موجود، دستور مرتبط: client max protocol را ببینید.

اتصالات IPC$ برای DCERPC برای مثال در winbindd، توسط گزینه client ipc min protocol مدیریت می‌شوند.

توجه داشته باشید که اکثر ابزارهای خط فرمان از --option='client min protocol=NT1' پشتیبانی می‌کنند، بنابراین ممکن است نیازی به فعال‌سازی سراسری پروتکل‌های SMB1 در smb.conf نباشد.

Default: client min protocol = SMB2_02

Example: client min protocol = NT1

client netlogon ping protocol (G)

این گزینه پروتکلی را که Samba برای ارسال درخواست‌های پینگ netlogon استفاده می‌کند، کنترل می‌نماید. این کار معمولاً از طریق ldap بدون اتصال (connectionless) انجام می‌شود، اما برخی راه‌اندازی‌ها برای این منظور به LDAPS روی درگاه TCP 636 نیاز دارند.

مقادیر ممکن عبارتند از:

•CLDAP
•LDAP
•LDAPS
•STARTTLS
Default: client netlogon ping protocol = CLDAP

client NTLMv2 auth (G)

این پارامتر از نسخه Samba 4.13 منسوخ شده است و پشتیبانی از NTLM و LanMan (به عنوان متمایز از احراز هویت NTLMv2 یا Kerberos) در نسخه‌های آینده Samba حذف خواهد شد.

بدین معنی که در آینده، مقدار پیش‌فرض فعلی client NTLMv2 auth = yes رفتار اجباری خواهد بود.

این پارامتر مشخص می‌کند که آیا smbclient(8) تلاش خواهد کرد تا با استفاده از پاسخ رمزگذاری‌شده گذرواژه NTLMv2 هویت خود را نزد کارگزاران احراز کند یا خیر.

در صورت فعال بودن، تنها یک پاسخ NTLMv2 و LMv2 (هر دو بسیار امن‌تر از نسخه‌های پیشین هستند) ارسال خواهد شد. سرورهای قدیمی‌تر (شامل NT4 < SP4، Win9x و Samba 2.2) در صورتی که در دامنه‌ای با پشتیبانی از NTLMv2 نباشند، با NTLMv2 سازگار نیستند.

به همین ترتیب، در صورت فعال بودن، احراز هویت‌های NTLMv1، client lanman auth و client plaintext auth غیرفعال خواهند شد. این امر همچنین احراز هویت در سطح اشتراک (share-level) را غیرفعال می‌کند.

در صورت غیرفعال بودن، بسته به مقدار client lanman auth، یک پاسخ NTLM (و احتمالاً یک پاسخ LANMAN) توسط کلاینت ارسال خواهد شد.

توجه داشته باشید که Windows Vista و نسخه‌های پس از آن از قبل به‌طور پیش‌فرض از NTLMv2 استفاده می‌کنند، و برخی سایت‌ها (به‌ویژه آن‌هایی که از سیاست‌های امنیتی 'best practice' پیروی می‌کنند) تنها اجازه پاسخ‌های NTLMv2 را می‌دهند، نه پاسخ‌های ضعیف‌تر LM یا NTLM.

هنگامی که client use spnego نیز روی yes تنظیم شده باشد، امنیت ارتقایافته (SPNEGO) الزامی است تا از NTLMv2 صرفاً درون NTLMSSP استفاده شود. این رفتار همراه با وصله‌های مربوط به CVE-2016-2111 معرفی شد.

Default: client NTLMv2 auth = yes

client plaintext auth (G)

این پارامتر از نسخه Samba 4.13 منسوخ شده است و پشتیبانی از متن ساده (plaintext) (به عنوان متمایز از احراز هویت NTLM، NTLMv2 یا Kerberos) در نسخه‌های بعدی Samba حذف خواهد شد.

بدین معنی که در آینده، مقدار پیش‌فرض فعلی client plaintext auth = no رفتار اجباری خواهد بود.

مشخص می‌کند که اگر سرور از گذرواژه‌های رمزشده پشتیبانی نکند، آیا کلاینت باید گذرواژه را به صورت متن ساده (plaintext) ارسال کند یا خیر.

Default: client plaintext auth = no

client protection (G)

این پارامتر تعیین می‌کند که ابزارهای کلاینت Samba به‌طور پیش‌فرض باید از کدام سطح محافظت استفاده کنند.

تنظیمات ممکن کلاینت عبارتند از:

•default - استفاده از مقادیر پیش‌فرض جداگانه گزینه‌های:
•client signing
•client smb encrypt
•plain - این حالت همه چیز را فقط به صورت متن ساده ارسال می‌کند؛ امضا یا رمزگذاری خاموش هستند.
•sign - این حالت بررسی یکپارچگی را فعال می‌کند.
•encrypt - این حالت بررسی‌های یکپارچگی را فعال کرده و برای حفظ محرمانگی، رمزگذاری را اجباری می‌کند.
Default: client protection = default

client schannel (G)

این گزینه از Samba 4.8 منسوخ شده است و در آینده حذف خواهد شد. هم‌زمان مقدار پیش‌فرض به yes تغییر یافت، که در آینده رفتار ثابت کدگذاری‌شده (hardcoded) خواهد بود.

این گزینه کنترل می‌کند که آیا کلاینت استفاده از netlogon schannel را پیشنهاد می‌دهد یا حتی تقاضا می‌کند. client schannel = no کانال schannel را پیشنهاد نمی‌دهد، client schannel = auto کانال schannel را پیشنهاد می‌دهد اما آن را اجباری نمی‌کند، و client schannel = yes اگر سرور قادر به استفاده از netlogon schannel نباشد، دسترسی را رد می‌کند.

توجه داشته باشید که برای دامنه‌های اکتیو دایرکتوری (Active Directory) این مقدار به‌صورت سخت‌کدشده (hardcoded) برابر با client schannel = yes است.

این گزینه توسط گزینه require strong key نادیده گرفته و جایگزین (override) می‌شود.

Default: client schannel = yes

Example: client schannel = auto

client signing (G)

این گزینه کنترل می‌کند که آیا کلاینت مجاز است یا ملزم است که از امضای SMB (یا همان SMB signing) استفاده کند. مقادیر ممکن عبارتند از desired، required و disabled.

هنگامی که روی desired یا default تنظیم شود، امضای SMB پیشنهاد می‌شود، اما اجباری نخواهد بود.

هنگامی که روی required تنظیم شود، امضای SMB اجباری است و اگر روی disabled تنظیم گردد، امضای SMB حتی پیشنهاد نیز داده نخواهد شد.

اتصالات IPC$ برای DCERPC برای مثال در winbindd، توسط گزینه client ipc signing مدیریت می‌شوند.

Default: client signing = default

client smb encrypt (G)

این پارامتر کنترل می‌کند که آیا یک کلاینت باید برای استفاده از رمزنگاری SMB تلاش کند یا ملزم به استفاده از آن است یا خیر. این گزینه بسته به اینکه اتصال از SMB1 یا SMB3 استفاده می‌کند، اثرات متفاوتی دارد:
•اگر اتصال از SMB1 استفاده کند، این گزینه استفاده از یک افزونه ویژه سامبا برای پروتکل SMB را کنترل می‌کند که در Samba 3.2 معرفی شد و از Unix extensions استفاده می‌کند.
•اگر اتصال از SMB2 یا جدیدتر استفاده کند، این گزینه استفاده از رمزنگاری در سطح SMB را کنترل می‌کند که در SMB نسخه ۳.۰ و بالاتر پشتیبانی شده و در Windows 8 و جدیدتر در دسترس است.
این پارامتر را می‌توان به صورت سراسری تنظیم کرد. مقادیر ممکن عبارتند از off، if_required، desired و required. یک مقدار ویژه نیز default است که تنظیم پیش‌فرض ضمنی if_required می‌باشد.

اثرات برای SMB1

رمزنگاری ویژه سامبا در اتصالات SMB1، یک افزونه برای پروتکل SMB است که به عنوان بخشی از UNIX extensions مذاکره می‌شود. رمزنگاری SMB از قابلیت GSSAPI (در Windows به صورت SSPI) برای رمزنگاری و امضای هر درخواست/پاسخ در جریان پروتکل SMB استفاده می‌کند. در صورت فعال بودن، روشی امن برای ارتباط SMB/CIFS شبیه به یک نشست محافظت‌شده با ssh فراهم می‌آورد، اما از احراز هویت SMB/CIFS برای مذاکره بر سر کلیدهای رمزنگاری و امضا بهره می‌برد. در حال حاضر این ویژگی فقط توسط smbclient در Samba 3.2 و جدیدتر پشتیبانی می‌شود. Windows از این ویژگی پشتیبانی نمی‌کند.

هنگامی که روی default تنظیم شود، رمزنگاری SMB بررسی (probe) می‌شود، اما اجباری نخواهد بود. هنگامی که روی required تنظیم شود، رمزنگاری SMB الزامی است و اگر روی disabled تنظیم شود، امکان مذاکره برای رمزنگاری SMB وجود ندارد.

اثرات برای SMB3 و جدیدتر

رمزنگاری بومی لایه انتقال SMB در نسخه ۳.۰ یا جدیدتر پروتکل SMB در دسترس است. این قابلیت تنها زمانی توسط Samba استفاده می‌شود که client max protocol روی SMB3 یا جدیدتر تنظیم شده باشد.

این قابلیت‌ها را می‌توان با تنظیمات client smb encrypt به شرح زیر کنترل کرد:

•باقی گذاشتن آن روی حالت پیش‌فرض، تنظیم صریح default، یا تنظیم آن روی if_required به صورت سراسری، مذاکره برای رمزنگاری را فعال می‌کند اما رمزنگاری داده‌ها را به صورت سراسری روشن نمی‌کند.
•تنظیم آن روی desired به صورت سراسری، مذاکره را فعال کرده و برای سرورهایی که از آن پشتیبانی می‌کنند، رمزنگاری داده‌ها را روی نشست‌ها و اتصالات اشتراک روشن می‌کند.
•تنظیم آن روی required به صورت سراسری، مذاکره را فعال کرده و رمزنگاری داده‌ها را روی نشست‌ها و اتصالات اشتراک روشن می‌سازد. کلاینت‌هایی که از رمزنگاری پشتیبانی نکنند، از دسترسی به سرور منع خواهند شد.
•تنظیم آن روی off به صورت سراسری، قابلیت رمزنگاری را برای تمامی اتصالات به طور کامل غیرفعال می‌کند.

Default: client smb encrypt = default

client smb3 encryption algorithms (G)

این پارامتر، در دسترس بودن و ترتیب الگوریتم‌های رمزنگاری موجود برای مذاکره در لهجه SMB3_11 را مشخص می‌کند.

همچنین می‌توان با قرار دادن پیشوند '-' پیش از الگوریتم‌ها، آن‌ها را به صورت تکی از فهرست پیش‌فرض حذف کرد. این کار از نیاز به مشخص کردن یک فهرست ثابت (hardcoded) جلوگیری می‌کند.

نکته: حذف AES-128-CCM از فهرست منجر به در دسترس نبودن SMB3_00 و SMB3_02 خواهد شد، چرا که این مورد، الگوریتم پیش‌فرض و تنها الگوریتم موجود برای این لهجه‌ها است.

Default: client smb3 encryption algorithms = AES-128-GCM, AES-128-CCM, AES-256-GCM, AES-256-CCM

Example: client smb3 encryption algorithms = AES-256-GCM

Example: client smb3 encryption algorithms = -AES-128-GCM -AES-128-CCM

client smb encryption over quic (G)

این پارامتر کنترل می‌کند که آیا کلاینت به رمزنگاری در سطح SMB نیاز دارد یا خیر، حتی زمانی که لایه انتقال قبلاً از طریق QUIC و در نتیجه TLS رمزنگاری شده باشد.

client smb encrypt استفاده از سازوکار رمزنگاری معرفی‌شده با SMB3.0 را کنترل می‌کند. اگر مقدار client smb encryption over quic بر روی no تنظیم شده باشد، و کلاینت از طریق یک اتصال معتبر QUIC (و در نتیجه TLS) متصل شود، کلاینت برای جلوگیری از رمزنگاری دوگانه، الزامات ناشی از پارامتر client smb encrypt را نادیده می‌گیرد.

اگر client smb encryption over quic روی مقدار پیش‌فرض خود یعنی yes باقی بماند، کلاینت از طریق TCP معمولی متصل شود، یا tls verify peer روی مقداری کمتر از ca_and_name تنظیم شده باشد، الزامات client smb encrypt اعمال خواهند شد.

توجه داشته باشید که رمزنگاری لایه QUIC مبتنی بر گواهی سطح TLS ارائه‌شده توسط سرور است. رمزنگاری لایه SMB مبتنی بر نشست‌های کاربری مجزا و در نتیجه اساساً بر پایه اعتبارنامه‌های اولیه کاربر مانند گذرواژه کاربر یا اعتبارنامه‌های معادلِ مورد استفاده برای ورود به یک نشست Windows است. این موضوع ممکن است بر ارزیابی امنیتی شما درباره پارامتر client smb encryption over quic تأثیر بگذارد.

Default: client smb encryption over quic = yes

client smb3 signing algorithms (G)

این پارامتر، در دسترس بودن و ترتیب الگوریتم‌های امضا (signing) را که برای مذاکره در لهجه SMB3_11 موجود هستند، مشخص می‌کند.

همچنین می‌توان با قرار دادن پیشوند '-' پیش از الگوریتم‌ها، آن‌ها را به صورت تکی از فهرست پیش‌فرض حذف کرد. این کار از نیاز به مشخص کردن یک فهرست ثابت (hardcoded) جلوگیری می‌کند.

نکته: حذف AES-128-CMAC از فهرست منجر به در دسترس نبودن SMB3_00 و SMB3_02 خواهد شد، و حذف HMAC-SHA256 موجب در دسترس نبودن SMB2_02 و SMB2_10 می‌شود، چرا که این موارد، الگوریتم‌های پیش‌فرض و تنها الگوریتم‌های در دسترس برای این لهجه‌ها هستند.

Default: client smb3 signing algorithms = AES-128-GMAC, AES-128-CMAC, HMAC-SHA256

Example: client smb3 signing algorithms = AES-128-CMAC, HMAC-SHA256

Example: client smb3 signing algorithms = -AES-128-CMAC

client smb transports (G)

مشخص می‌کند که کلاینت برای ترافیک SMB باید برای اتصال به کدام لایه‌های انتقال و درگاه‌ها تلاش کند.

ترتیب آن‌ها مهم است، چرا که به همان ترتیب با تأخیرهای کوتاه برای حالت‌های جایگزین (fallback) آزمایش می‌شوند.

لایه انتقال 'tcp' از tcp خام با یک سرآیند طول ۴ بایتی به ازای هر PDU پروتکل SMB استفاده می‌کند. درگاه پیش‌فرض برای 'tcp' عدد ۴۴۵ است. سایر درگاه‌ها را می‌توان با افزودن آن‌ها پس از ':' مشخص کرد، مانند 'tcp:1445'.

لایه انتقال 'nbt' از فریم‌بندی netbios بر روی tcp به ازای هر PDU پروتکل SMB استفاده می‌کند. درگاه پیش‌فرض برای 'nbt' عدد ۱۳۹ است. سایر درگاه‌ها را می‌توان با افزودن آن‌ها پس از ':' مشخص کرد، مانند 'nbt:1139'.

لایه انتقال 'quic' از پروتکل quic بر روی udp استفاده می‌کند. درگاه پیش‌فرض برای 'quic' عدد ۴۴۳ است. سایر درگاه‌ها را می‌توان با افزودن آن‌ها پس از ':' مشخص کرد، مانند 'quic:1443'. گزینه‌های زیر نیز مرتبط هستند: tls enabled، tls ca directories، tls trust system cas، tls cafile، tls certfile، tls keyfile و tls verify peer.

نکته: 'quic' به ماژول هسته quic.ko برای Linux از https://github.com/lxin/quic نیاز دارد (آزمایش‌شده با Linux 6.14). نسخه‌های آینده Linux ممکن است به صورت بومی از آن پشتیبانی کنند.

درگاه‌های عددی به عنوان 'tcp' مدیریت می‌شوند، به جز درگاه '139' که به عنوان 'nbt' مدیریت می‌شود.

توجه داشته باشید که در حال حاضر محدودیتی معادل ۱۰ انتقال یکتا وجود دارد و تمام موارد دیگر نادیده گرفته خواهند شد.

Default: client smb transports = tcp, nbt

Example: client smb transports = 445

Example: client smb transports = tcp, tcp:1445

Example: client smb transports = 8000, nbt:1139

Example: client smb transports = tcp, quic, nbt

Example: client smb transports = +quic

client use kerberos (G)

این پارامتر مشخص می‌کند که آیا ابزارهای کلاینت Samba برای احراز هویت با استفاده از Kerberos تلاش خواهند کرد یا خیر. برای احراز هویت Kerberos هنگام اتصال به یک سرویس، باید به جای آدرس‌های IP از نام‌های dns استفاده کنید.

تنظیمات ممکن برای این گزینه عبارتند از:

•desired - احراز هویت با Kerberos ابتدا امتحان می‌شود و در صورت شکست، به طور خودکار به NTLM بازمی‌گردد.
•required - احراز هویت با Kerberos الزامی خواهد بود. هیچ بازگشتی به NTLM یا گزینه جایگزین دیگری وجود نخواهد داشت.
•off - از Kerberos استفاده نشود؛ در عوض از NTLM یا جایگزین دیگری استفاده شود.
در صورتی که استفاده از رمزنگاری ضعیف مجاز نباشد (مانند حالت FIPS)، مقدار پیش‌فرض اجباراً بر روی required قرار خواهد گرفت.

Default: client use kerberos = desired

client use krb5 netlogon (G)

این گزینه فعلاً آزمایشی است!

این گزینه کنترل می‌کند که آیا winbindd (و سایر ابزارهای کلاینت) تلاش کنند از ServerAuthenticateKerberos برای کانال امن netlogon استفاده کنند یا خیر.

این رفتار می‌تواند به ازای هر دامنه NetBIOS با استفاده از گزینه 'client use krb5 netlogon:NETBIOSDOMAIN = yes|no' کنترل شود.

این گزینه توسط گزینه reject aes netlogon servers (در صورتی که به صورت مؤثر فعال باشد) بازنویسی (override) می‌شود و اجازه می‌دهد client use krb5 netlogon نیز yes باشد.

مقدار 'default' در حال حاضر به 'no' نگاشت می‌شود.

معنای 'auto' به کتابخانه Kerberos استفاده شده و نوع اعتماد (trust)/دامنه بستگی دارد.

اگر سامبا با '--without-ads' یا '--with-system-heimdalkrb5' کامپایل شده باشد، امکان فعال‌سازی ویژگی ServerAuthenticateKerberos وجود ندارد، زیرا تابع krb5_init_creds_step() در دسترس نیست. این امر 'auto' را وادار می‌کند تا مانند 'no' رفتار کند.

مقدار 'auto' در صورتی که دامنه به عنوان یک دامنه Active Directory تشخیص داده شود (مثلاً با 'SECURITY = ADS' یا روی یک دامین کنترلر Active Directory)، به 'yes' نگاشت می‌شود.

هشدار: این گزینه در این نسخه Samba آزمایشی است (بخش VERSION را در ادامه ببینید) و نباید در محیط‌های عملیاتی استفاده شود!

Default: client use krb5 netlogon = default

Example: client use krb5 netlogon = no

Example: client use krb5 netlogon = auto

Example: client use krb5 netlogon = yes

client use spnego (G)

این پارامتر از Samba 4.13 منسوخ شده است و پشتیبانی از احراز هویت NTLMv2، NTLM و LanMan خارج از NTLMSSP در نسخه‌های آینده Samba حذف خواهد شد.

بدین معنا که در آینده، رفتار پیش‌فرض فعلی client use spnego = yes به صورت اجباری اعمال خواهد شد.

این متغیر کنترل می‌کند که آیا کلاینت‌های Samba برای توافق بر سر یک سازوکار احراز هویت با سرورهای پشتیبانی‌کننده (شامل WindowsXP، Windows2000 و Samba 3.0)، تلاش کنند از مذاکره ساده و محافظت‌شده یا Simple and Protected NEGOtiation (طبق مشخصات rfc2478) استفاده کنند یا خیر. این گزینه به‌ویژه احراز هویت Kerberos را ممکن می‌سازد.

هنگامی که client NTLMv2 auth نیز بر روی yes تنظیم شده باشد، امنیت گسترش‌یافته (SPNEGO) برای استفاده از NTLMv2 صرفاً در بستر NTLMSSP الزامی است. این رفتار با وصله‌های مربوط به CVE-2016-2111 معرفی شد.

Default: client use spnego = yes

cluster addresses (G)

با این پارامتر می‌توانید آدرس‌های اضافی را مشخص کنید که nmbd در یک سرور WINS ثبت خواهد کرد. به همین ترتیب، هنگامی که clustering = yes پیکربندی شده باشد و net ads dns register فراخوانی شود، این آدرس‌ها به طور پیش‌فرض ثبت خواهند شد.

Default: cluster addresses =

Example: cluster addresses = 10.0.0.1 10.0.0.2 10.0.0.3

clustering (G)

این پارامتر مشخص می‌کند که آیا Samba باید برای دسترسی به فایل‌های tdb خود با ctdb ارتباط برقرار کند و از ctdb به عنوان بک‌اند پیام‌رسانی (messaging backend) خود استفاده نماید یا خیر.

این پارامتر را تنها در صورتی بر روی yes تنظیم کنید که یک پیکربندی کلاستر با ctdb در حال اجرا داشته باشید.

Default: clustering = no

comment (S)

این یک فیلد متنی است که هنگام پرس‌وجوی کلاینت از سرور جهت فهرست کردن اشتراک‌های موجود، چه از طریق Network Neighborhood و چه از طریق net view، در کنار نام اشتراک نمایش داده می‌شود.

اگر می‌خواهید رشته‌ای را که در کنار نام ماشین نمایش داده می‌شود تنظیم کنید، پارامتر server string را ببینید.

Default: comment = # No comment

Example: comment = Fred's Files

config backend (G)

این گزینه بک‌اند ذخیره‌سازی پیکربندی را کنترل می‌کند. مقادیر ممکن عبارتند از file (پیش‌فرض) و registry. هنگامی که در حین بارگذاری smb.conf به عبارت config backend = registry برخورد شود، پیکربندی خوانده‌شده تا آن نقطه نادیده گرفته شده و گزینه‌های سراسری در عوض از رجیستری خوانده می‌شوند. بنابراین این امر باعث ایجاد یک پیکربندی صرفاً مبتنی بر رجیستری می‌شود. تعاریف اشتراک‌ها بلافاصله خوانده نمی‌شوند، بلکه در عوض registry shares بر روی yes تنظیم می‌شود.

نکته: این گزینه نمی‌تواند درون خودِ پیکربندی رجیستری تنظیم شود.

Default: config backend = file

Example: config backend = registry

config file (G)

این گزینه به شما اجازه می‌دهد فایل پیکربندی مورد استفاده را به جای فایل پیش‌فرض (که معمولاً smb.conf است) بازنویسی کنید. در اینجا یک مسئله مرغ و تخم‌مرغ وجود دارد، زیرا این گزینه درون خودِ فایل پیکربندی تنظیم می‌شود!

به همین دلیل، اگر هنگام بارگذاری پارامترها نام فایل پیکربندی تغییر کرده باشد، پارامترها مجدداً از فایل پیکربندی جدید بارگذاری خواهند شد.

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

اگر فایل پیکربندی وجود نداشته باشد بارگذاری نخواهد شد (که به شما اجازه می‌دهد فایل‌های پیکربندی را فقط برای چند کلاینت خاص سفارشی کنید).

No default

Example: config file = /usr/local/samba/lib/smb.conf.%m

copy (S)

این پارامتر به شما اجازه می‌دهد مدخل‌های سرویس را «همتاسازی» (clone) کنید. سرویس مشخص‌شده به سادگی تحت نام سرویس فعلی تکثیر می‌شود. هر پارامتری که در بخش فعلی مشخص شده باشد، پارامترهای بخش کپی‌شده را بازنویسی خواهد کرد.

این ویژگی به شما امکان می‌دهد یک سرویس «الگو» (template) راه‌اندازی کرده و سرویس‌های مشابه را به آسانی ایجاد نمایید. توجه داشته باشید سرویسی که کپی می‌شود باید در فایل پیکربندی پیش از سرویسی که کپی‌برداری را انجام می‌دهد قرار گرفته باشد.

Default: copy =

Example: copy = otherservice

create krb5 conf (G)

تنظیم این پارامتر بر روی no مانع از ایجاد فایل‌های سفارشی krb5.conf توسط winbind می‌شود. Winbind معمولاً این کار را انجام می‌دهد زیرا کتابخانه‌های krb5 از سایت‌های اکتیو دایرکتوری (AD-site) آگاه نیستند و بنابراین ممکن است هر دامین کنترلری را از بین کنترلرهای متعدد انتخاب کنند. Winbind از سایت‌ها آگاه است (site-aware) و با ساخت فایل‌های krb5.conf ویژه خود، کتابخانه‌های krb5 را به استفاده از یک DC محلی هدایت می‌کند.

جلوگیری از انجام این کار توسط winbind ممکن است زمانی ضروری شود که نیاز داشته باشید گزینه‌های خاصی را به فایل krb5.conf سیستم خود اضافه کنید که winbind آن‌ها را در نظر نمی‌گیرد.

Default: create krb5 conf = yes

create mode

این پارامتر مترادفی برای create mask است.

create mask (S)

هنگامی که فایلی ایجاد می‌شود، مجوزهای لازم بر اساس نگاشت حالت‌های DOS به مجوزهای UNIX محاسبه شده و حالت UNIX حاصل، به صورت بیتی با این پارامتر «AND» می‌شود. این پارامتر را می‌توان به عنوان یک ماسک (MASK) بیتی برای حالت‌های UNIX یک فایل در نظر گرفت. هر بیتی که در اینجا تنظیم نشده باشد، از حالت‌های تنظیم‌شده روی فایل هنگام ایجاد آن حذف خواهد شد.

مقدار پیش‌فرض این پارامتر، بیت‌های نوشتن و اجرای مربوط به group و other را از حالت‌های UNIX حذف می‌کند.

به دنبال آن، Samba حالت UNIX ایجاد شده از این پارامتر را به صورت بیتی با مقدار پارامتر force create mode (که به طور پیش‌فرض روی 000 تنظیم شده است) «OR» می‌کند.

این پارامتر بر ماسک‌های دایرکتوری تأثیری ندارد. برای جزئیات بیشتر به پارامتر directory mask مراجعه کنید.

Default: create mask = 0744

Example: create mask = 0775

csc policy (S)

این عبارت مخفف client-side caching policy (خط‌مشی حافظه پنهان سمت کلاینت) است و مشخص می‌کند کلاینت‌هایی که قابلیت کش آفلاین دارند چگونه فایل‌های موجود در اشتراک را ذخیره خواهند کرد. مقادیر معتبر عبارتند از: manual ،documents ،programs ،disable.

این مقادیر متناظر با موارد مورد استفاده در سرورهای Windows هستند.

به عنوان مثال، اشتراک‌های حاوی پروفایل‌های سرگردان (roaming profiles) می‌توانند کش آفلاین را با استفاده از csc policy = disable غیرفعال کنند.

Default: csc policy = manual

Example: csc policy = programs

ctdbd socket (G)

در یک محیط آزمایشی، هنگامی که clustering=yes تنظیم شده باشد، می‌توان از این پارامتر برای مشخص کردن یک مکان جایگزین برای سوکت دامنه یونیکس (Unix domain socket) مربوط به CTDB استفاده کرد.

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

Default: ctdbd socket =

Example: ctdbd socket = /var/run/altctdb/ctdbd.socket

ctdb locktime warn threshold (G)

در یک محیط کلاستر با استفاده از Samba و ctdb بسیار حیاتی است که قفل‌ها روی پایگاه‌های داده مرکزی میزبانی‌شده توسط ctdb مانند locking.tdb برای مدت طولانی نگه داشته نشوند. با معماری فعلی Samba ممکن است Samba یک قفل را در اختیار بگیرد و در حین نگه‌داشتن آن قفل، فراخوانی‌های فایل‌سیستمی به سمت فایل‌سیستم اشتراکی کلاستر برقرار کند. این گزینه باعث می‌شود که اگر Samba متوجه شود قفل‌ها را به میزان میلی‌ثانیه مشخص‌شده نگه داشته است، هشدار دهد. در صورت رخ دادن این موضوع، smbd یک پیام با سطح اشکال‌زدایی صفر (debug level 0) در لاگ‌های خود و احتمالاً در syslog صادر خواهد کرد. محتمل‌ترین دلیل برای چنین پیام لاگی این است که یکی از عملیات‌های فایل‌سیستم کلاستر که توسط Samba ارائه می‌شود، بیش از حد انتظار طول کشیده است. این پیام‌ها به عنوان یک راهنمای اشکال‌زدایی برای مشکلات احتمالی کلاستر در نظر گرفته شده‌اند.

مقدار پیش‌فرض 0 این لاگ‌گیری را غیرفعال می‌کند.

Default: ctdb locktime warn threshold = 0

ctdb timeout (G)

این پارامتر یک مهلت زمانی (timeout) را بر حسب میلی‌ثانیه برای اتصال میان Samba و ctdb مشخص می‌کند. این گزینه تنها در صورتی معتبر است که Samba را با قابلیت خوشه‌بندی (clustering) کامپایل کرده و clustering=yes را تنظیم کرده باشید.

هنگامی که بخشی از کلاستر مسدود (block) می‌شود، ممکن است به مدت نامحدود در انتظار ctdb بمانیم که این امر وضعیت مسدودی را تشدید می‌کند. در یک کلاستر بدون نقص این اتفاق نباید رخ دهد، اما اجزای بسیار زیادی در یک کلاستر وجود دارند که ممکن است دچار وقفه یا اختلال موقت شوند. انتخاب تعادل مناسب برای این مقدار بسیار حساس است، زیرا در یک کلاستر شلوغ، زمان‌های طولانی سرویس‌دهی برای انتقال داده‌ها در سراسر کلاستر ممکن است معتبر و طبیعی باشد. تنظیم این مقدار بر روی عددی بسیار کوتاه کیفیت سرویس‌دهی کلاستر شما را کاهش می‌دهد، و تنظیم بیش از حد طولانی آن ممکن است مانع از آن شود که کلاستر بتواند پس از یک خرابی جدی در مدت‌زمان معقول بازیابی شود.

توجه داشته باشید که در صورت تنظیم این پارامتر، حتماً باید در فایل smb.conf قرار گیرد؛ قرار دادن آن در پیکربندی رجیستری (که در کلاسترها متداول است) مفید نخواهد بود، زیرا دسترسی به رجیستری نیازمند برقراری ارتباط با ctdb است.

تنظیم ctdb timeout بر روی n باعث می‌شود هر فرآیندی که بیش از n میلی‌ثانیه در انتظار پاسخ از کلاستر بماند دچار هراس (panic) شود. تنظیم آن بر روی 0 (پیش‌فرض) موجب می‌شود Samba تا ابد منتظر بماند (مسدود شود)، که این مقدار پیش‌فرض به شدت توصیه می‌شود.

Default: ctdb timeout = 0

cups connection timeout (G)

این پارامتر تنها زمانی کاربرد دارد که printing بر روی cups تنظیم شده باشد.

در صورت تنظیم، این گزینه تعداد ثانیه‌هایی را مشخص می‌کند که smbd هنگام تلاش برای برقراری ارتباط با سرور CUPS منتظر خواهد ماند. اگر برقراری اتصال بیش از این تعداد ثانیه طول بکشد، ناموفق خواهد بود.

Default: cups connection timeout = 30

Example: cups connection timeout = 60

cups encrypt (G)

این پارامتر تنها زمانی کاربرد دارد که printing بر روی cups تنظیم شده باشد و از نسخه‌ای از CUPS جدیدتر از 1.0.x استفاده کنید. این پارامتر تعیین می‌کند که آیا Samba هنگام برقراری ارتباط با سرور CUPS باید از رمزنگاری استفاده کند یا خیر. مقادیر ممکن عبارتند از auto، yes و no

هنگامی که بر روی auto تنظیم شود، در هر برپایی اتصال با CUPS برای انجام یک مصافحه (handshake) TLS تلاش خواهد شد. در صورت شکست، به عملکرد غیررمزنگاری‌شده بازگشت داده می‌شود.

Default: cups encrypt = no

cups options (S)

این پارامتر تنها زمانی کاربرد دارد که printing بر روی cups تنظیم شده باشد. مقدار آن یک رشته با قالب آزاد از گزینه‌هاست که مستقیماً به کتابخانه cups منتقل می‌شود.

شما می‌توانید هر گزینه عمومی چاپ شناخته‌شده برای CUPS (همان‌طور که در «راهنمای کاربران نرم‌افزار» CUPS ذکر شده) را ارسال کنید. همچنین می‌توانید هر گزینه اختصاصی چاپگر (همان‌طور که در «lpoptions -d printername -l» فهرست شده) که برای صف مقصد معتبر است را ارسال نمایید. پارامترهای چندگانه باید مطابق با مشخصات ABNF مربوط به گزینه‌های متنی PAPI، به صورت جفت‌های نام/مقدار جداشده با فاصله باشند. مقادیر مجموعه‌ای («name={a=... b=... c=...}») به همراه آکولادها به صورت دست‌نخورده ذخیره می‌شوند.

در صورتی که فایل error_log سرور CUPS شما هنگام چاپ از طریق یک کلاینت Windows به واسطه Samba حاوی پیام‌هایی مانند «Unsupported format 'application/octet-stream'» است، باید این پارامتر را بر روی raw تنظیم کنید. دیگر نیازی به فعال‌سازی چاپ خام (raw) به صورت سراسری در /etc/cups/mime.{convs,types} نیست.

Default: cups options = ""

Example: cups options = "raw media=a4"

cups server (G)

این پارامتر تنها زمانی کاربرد دارد که printing بر روی cups تنظیم شده باشد.

در صورت تنظیم، این گزینه بر گزینه ServerName در فایل client.conf مربوط به CUPS اولویت داشته و آن را بازنویسی می‌کند. این قابلیت در صورتی که سرورهای مجازی samba دارید که به دیمن‌های مختلف CUPS متصل می‌شوند، ضروری است.

به صورت اختیاری، می‌توان یک درگاه (پورت) را با جدا کردن نام سرور و شماره پورت توسط دو‌نقطه (:) مشخص کرد. اگر پورتی مشخص نشود، پورت پیش‌فرض برای IPP (شماره 631) استفاده خواهد شد.

Default: cups server = ""

Example: cups server = mycupsserver

Example: cups server = mycupsserver:1631

dcerpc endpoint servers (G)

مشخص می‌کند که کدام سرورهای پایانه DCE/RPC باید اجرا شوند.

Default: dcerpc endpoint servers = epmapper, samr, netlogon, lsarpc, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver

Example: dcerpc endpoint servers = rpcecho

deadtime (G)

مقدار این پارامتر (یک عدد صحیح ده‌دهی) نشان‌دهنده تعداد دقایق عدم فعالیت قبل از منقضی تلقی شدن یک اتصال و قطع آن است. پارامتر deadtime تنها در صورتی اعمال می‌شود که تعداد فایل‌های باز صفر باشد.

این قابلیت برای جلوگیری از تحلیل رفتن منابع سرور توسط تعداد زیادی از اتصال‌های غیرفعال مفید است.

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

استفاده از این پارامتر با یک مهلت زمانی چند دقیقه‌ای برای اکثر سیستم‌ها توصیه می‌شود.

مقدار صفر برای deadtime نشان می‌دهد که هیچ قطع اتصال خودکاری نباید انجام شود.

Default: deadtime = 10080

Example: deadtime = 15

debug class (G)

با فعال بودن این پارامتر بولی (boolean)، کلاس اشکال‌زدایی (DBGC_CLASS) در سرآیند پیام اشکال‌زدایی نمایش داده خواهد شد.

برای دریافت اطلاعات بیشتر در مورد کلاس‌های اشکال‌زدایی موجود، بخش مربوط به log level را ببینید.

Default: debug class = no

debug encryption (G)

این گزینه باعث می‌شود که سرور smbd و کدهای کلاینتی که از libsmb استفاده می‌کنند (مانند smbclient، smbget، smbspool و غیره) در هر بار برقراری نشست SMB3+، مقادیر Session Id، کلید رمزگشایی‌شده نشست (Session Key)، کلید امضا (Signing Key)، کلید برنامه (Application Key)، کلید رمزنگاری (Encryption Key) و کلید رمزگشایی (Decryption Key) را تخلیه (dump) کنند. این اطلاعات در لاگ‌ها با سطح 0 چاپ خواهند شد.

هشدار: دسترسی به این مقادیر امکان رمزگشایی هرگونه ترافیک رمزنگاری‌شده در نشست‌های تخلیه‌شده را فراهم می‌کند. این گزینه تنها باید برای اهداف اشکال‌زدایی فعال شود.

Default: debug encryption = no

debug hires timestamp (G)

گاهی اوقات برچسب‌های زمانی در پیام‌های لاگ با دقتی بالاتر از ثانیه مورد نیاز هستند؛ این پارامتر بولی در صورت فعال بودن، دقت میکروثانیه‌ای را به سرآیند برچسب زمانی پیام اضافه می‌کند.

توجه داشته باشید که پارامتر debug timestamp یا debug syslog format باید فعال باشد تا این گزینه اثرگذار شود.

Default: debug hires timestamp = yes

debug pid (G)

هنگام استفاده از تنها یک فایل لاگ برای بیش از یک فرآیند انشعاب‌یافته (forked) از smbd(8)، ممکن است پیگیری اینکه کدام فرآیند چه پیامی را خروجی می‌دهد دشوار باشد. این پارامتر بولی در صورت فعال بودن، شناسه فرآیند (process-id) را به سرآیند برچسب زمانی پیام در فایل لاگ اضافه می‌کند.

توجه داشته باشید که پارامتر debug timestamp باید فعال باشد تا این گزینه اثرگذار شود.

Default: debug pid = no

debug prefix timestamp (G)

با فعال بودن این گزینه، سرآیند برچسب زمانی پیام، بدون نام فایل و اطلاعات تابعی که توسط پارامتر debug timestamp درج می‌شود، به ابتدای پیام اشکال‌زدایی اضافه می‌گردد. این امر باعث می‌شود پیام‌ها بدون اضافه شدن یک سطر جدید، دارای برچسب زمانی شوند.

توجه داشته باشید که این پارامتر بر پارامتر debug timestamp اولویت دارد و آن را باطل می‌کند.

Default: debug prefix timestamp = no

debug syslog format (G)

با فعال بودن این گزینه (yes (نام مستعار in_logs) یا always)، پیام‌های اشکال‌زدایی در یک قالب تک‌سطری شبیه به آنچه که به طور سنتی توسط syslog تولید می‌شود، چاپ می‌شوند. برچسب زمانی شامل نام مخفف ماه، تاریخ با فاصله‌گذاری، و زمان به همراه ثانیه‌ها است. پس از آن نام میزبان و نام برنامه به همراه شناسه فرآیند در داخل کروشه قرار می‌گیرد.

مقدار always این قالب لاگ را حتی در STDOUT یا STDERR نیز اعمال می‌کند.

مقدار no رویه را به سایر پارامترها واگذار کرده و معمولاً لاگ‌های سنتی دوسطر‌ی Samba را در فایل‌های لاگ تولید می‌کند.

اگر debug hires timestamp نیز فعال باشد، در این صورت به جای آن از برچسب زمانی مطابق با RFC5424 استفاده می‌شود.

Default: debug syslog format = no

winbind debug traceid (G)

با فعال بودن این پارامتر بولی، یک شناسه ردگیری (traceid) یکتا به ازای هر درخواست در سرآیند پیام‌های اشکال‌زدایی برای فرآیندهای winbind نمایش داده خواهد شد.

Default: winbind debug traceid = yes

debug uid (G)

سرویس Samba گاهی در نقش کاربر ریشه (root) و گاهی در نقش کاربر متصل‌شده اجرا می‌شود؛ این پارامتر بولی در صورت فعال بودن، مقادیر کنونی euid، egid، uid و gid را در سرآیند برچسب زمانی پیام در فایل لاگ درج می‌کند.

توجه داشته باشید که پارامتر debug timestamp باید فعال باشد تا این گزینه اثرگذار شود.

Default: debug uid = no

dedicated keytab file (G)

هنگامی که kerberos method بر روی "dedicated keytab" تنظیم شده باشد، مسیر مطلق فایل keytab مربوط به Kerberos را مشخص می‌کند.

Default: dedicated keytab file =

Example: dedicated keytab file = /usr/local/etc/krb5.keytab

default case (S)

بخش مربوط به name mangling را ببینید. همچنین به پارامتر short preserve case توجه داشته باشید.

Default: default case = lower

default devmode (S)

این پارامتر تنها برای سرویس‌های printable کاربرد دارد. هنگامی که smbd درایورهای چاپگر را به کلاینت‌های Windows NT/2k/XP ارائه می‌دهد، هر چاپگر روی کارساز سامبا دارای یک Device Mode است که مواردی چون اندازه کاغذ، جهت صفحه و تنظیمات دورو (duplex) را تعریف می‌کند. این حالت دستگاه تنها می‌تواند به درستی توسط خود درایور چاپگر تولید شود (که فقط روی پلتفرم Win32 قابل اجرا است). از آنجا که smbd قادر به اجرای کد درایور برای تولید حالت دستگاه نیست، رفتار پیش‌فرض این است که این فیلد روی NULL تنظیم شود.

بیشتر مشکلات در ارائه درایورهای چاپگر به کلاینت‌های Windows NT/2k/XP به مشکلی در حالت دستگاهِ تولیدشده برمی‌گردد. برخی از درایورها با یک devmode تهی (NULL) کارهایی مانند کرش دادن Explorer.exe کلاینت را انجام می‌دهند. با این حال، درایورهای چاپگر دیگری نیز می‌توانند باعث از کار افتادن سرویس اسپولر کلاینت (spoolsv.exe) شوند اگر devmode توسط خود درایور ایجاد نشده باشد (یعنی smbd یک devmode پیش‌فرض تولید کند).

این پارامتر باید با احتیاط استفاده شده و با درایور چاپگر مورد نظر آزمایش شود. بهتر است حالت دستگاه روی NULL رها شود و به کلاینت ویندوز اجازه داده شود تا مقادیر صحیح را تنظیم کند. از آنجا که درایورها همیشه این کار را انجام نمی‌دهند، مقداردهی default devmode = yes به smbd دستور می‌دهد تا یک مورد پیش‌فرض ایجاد کند.

برای اطلاعات بیشتر در مورد چاپ و Device Modes در Windows NT/2k، مستندات MSDN را ببینید.

Default: default devmode = yes

default

این پارامتر مترادفی برای default service است.

default service (G)

این پارامتر نام سرویسی را مشخص می‌کند که در صورت پیدا نشدن سرویسِ درخواست‌شده واقعی، به آن متصل خواهد شد. توجه داشته باشید که کروشه‌ها در مقدار پارامتر قرار NOT داده نمی‌شوند (مثال زیر را ببینید).

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

به طور معمول سرویس پیش‌فرض یک سرویس guest ok و read only خواهد بود.

همچنین توجه داشته باشید که نام ظاهری سرویس مطابق با نام سرویس درخواست‌شده تغییر خواهد کرد؛ این قابلیت بسیار مفید است زیرا به شما امکان می‌دهد از ماکروهایی مانند %S برای ایجاد یک سرویس عام (wildcard) استفاده کنید.

توجه داشته باشید که هر نویسه "_" در نام سرویسِ استفاده‌شده در سرویس پیش‌فرض به یک "/" نگاشت خواهد شد. این امر امکان پیاده‌سازی موارد جالبی را فراهم می‌سازد.

Default: default service =

Example: default service = pub

defer sharing violations (G)

ویندوز اجازه می‌دهد هنگام باز شدن یک فایل، نحوه اشتراک‌گذاری آن با سایر پردازه‌ها مشخص شود. نقض‌های اشتراک‌گذاری (Sharing violations) زمانی رخ می‌دهند که یک فایل توسط پردازه‌ای دیگر با استفاده از گزینه‌هایی باز شود که تنظیمات اشتراک‌گذاریِ تعیین‌شده توسط سایر پردازه‌ها را نقض کند. این پارامتر باعث می‌شود smbd مانند یک کارساز ویندوز عمل کرده و بازگرداندن پیام خطای "sharing violation" را تا حداکثر یک ثانیه به تعویق بیندازد، که به کلاینت اجازه می‌دهد در این فاصله، فایلی را که باعث نقض شده است ببندد.

یونیکس (UNIX) به طور پیش‌فرض این رفتار را ندارد.

هیچ دلیلی برای غیرفعال کردن این پارامتر وجود ندارد، چرا که طراحی شده تا سامبا بتواند ویندوز را به شکل دقیق‌تری شبیه‌سازی کند.

Default: defer sharing violations = yes

delete group script (G)

این مسیر کامل به اسکریپتی است که هنگام درخواست حذف یک گروه، AS ROOT (با دسترسی ریشه) توسط smbd(8) اجرا خواهد شد. این اسکریپت هر %g را به نام گروه ارسال‌شده بسط می‌دهد. این اسکریپت تنها برای ساختارهایی مفید است که از ابزارهای مدیریتی دامنه‌ی Windows NT استفاده می‌کنند.

Default: delete group script =

deleteprinter command (G)

با معرفی پشتیبانی از چاپگرهای مبتنی بر MS-RPC برای کلاینت‌های Windows NT/2000 در Samba 2.2، اکنون می‌توان با صدور فراخوانی DeletePrinter() RPC، یک چاپگر را در زمان اجرا حذف کرد.

برای یک میزبان سامبا این بدان معناست که چاپگر باید به صورت فیزیکی از سیستم چاپ زیرین حذف شود. پارامتر deleteprinter command اسکریپتی را برای اجرا مشخص می‌کند که عملیات لازم برای حذف چاپگر از سیستم چاپ و از smb.conf را انجام می‌دهد.

گزینه deleteprinter command به صورت خودکار تنها با یک پارامتر فراخوانی می‌شود: printer name.

هنگامی که deleteprinter command اجرا شد، smbd فایل smb.conf را مجدداً تجزیه می‌کند تا بررسی کند که چاپگر مربوطه دیگر وجود ندارد. اگر نام اشتراک همچنان معتبر باشد، آنگاه smbd یک خطای ACCESS_DENIED به کلاینت برمی‌گرداند.

Default: deleteprinter command =

Example: deleteprinter command = /usr/bin/removeprinter

delete readonly (S)

این پارامتر امکان حذف فایل‌های فقط‌خواندنی (readonly) را فراهم می‌کند. این رفتار معناشناسی معمول DOS نیست، اما توسط UNIX مجاز است.

این گزینه ممکن است برای اجرای برنامه‌هایی مانند rcs مفید باشد؛ جایی که مالکیت فایل در UNIX مانع از تغییر مجوزهای فایل می‌شود، و معناشناسی DOS مانع از حذف یک فایل فقط‌خواندنی می‌گردد.

Default: delete readonly = no

delete share command (G)

سامبا در نگارش 2.2.0 قابلیت افزودن و حذف پویای اشتراک‌ها را از طریق Windows NT 4.0 Server Manager معرفی کرد. پارامتر delete share command برای تعریف یک برنامه یا اسکریپت خارجی استفاده می‌شود که تعریف یک سرویس موجود را از smb.conf حذف می‌کند.

برای اجرای موفقیت‌آمیز delete share command، دیمن smbd نیاز دارد که مدیر سیستم با استفاده از یک حساب ریشه (یعنی uid == 0) متصل شود یا دارای امتیاز SeDiskOperatorPrivilege باشد. اسکریپت‌های تعریف‌شده در پارامتر delete share command با دسترسی ریشه (root) اجرا می‌شوند.

هنگام اجرا، smbd به طور خودکار delete share command را با دو پارامتر فراخوانی می‌کند.

•configFile - مکان فایل سراسری smb.conf.
•shareName - نام سرویس موجود.
این پارامتر فقط برای حذف اشتراک‌های فایل به کار می‌رود. برای حذف اشتراک‌های چاپگر، deleteprinter command را ببینید.

Default: delete share command =

Example: delete share command = /usr/local/bin/delshare

delete user from group script (G)

مسیر کامل به اسکریپتی که هنگام حذف یک کاربر از یک گروه با استفاده از ابزارهای مدیریتی دامنه Windows NT فراخوانی می‌شود. این اسکریپت توسط smbd(8) AS ROOT (با دسترسی ریشه) اجرا خواهد شد. هرگونه %g با نام گروه و هرگونه %u با نام کاربر جایگزین خواهد شد.

Default: delete user from group script =

Example: delete user from group script = /usr/sbin/deluser %u %g

delete user script (G)

این مسیر کامل به اسکریپتی است که توسط smbd(8) هنگام مدیریت کاربران با ابزارهای راه دور RPC (NT) اجرا می‌شود.

این اسکریپت زمانی فراخوانی می‌شود که یک کلاینت از راه دور، کاربری را از کارساز حذف کند که معمولاً با استفاده از 'User Manager for Domains' یا rpcclient انجام می‌گیرد.

این اسکریپت باید نام کاربری UNIX داده‌شده را حذف کند.

Default: delete user script =

Example: delete user script = /usr/local/samba/bin/del_user %u

delete veto files (S)

این گزینه زمانی استفاده می‌شود که سامبا تلاش می‌کند دایرکتوری‌ای را که حاوی یک یا چند فایل یا دایرکتوری وتوشده (vetoed) یا فایل‌ها یا دایرکتوری‌های غیرقابل‌مشاهده است (مانند پیوندهای نمادین معلق که به جایی اشاره نمی‌کنند) حذف کند (گزینه‌های veto files، hide special files، hide unreadable و hide unwriteable files را ببینید). اگر این گزینه روی no (پیش‌فرض) تنظیم شده باشد، در صورتی که یک دایرکتوری وتوشده شامل هرگونه فایل یا دایرکتوری غیروتوشده باشد، حذف دایرکتوری با شکست مواجه خواهد شد. این حالت معمولاً همان چیزی است که می‌خواهید.

اگر این گزینه روی yes تنظیم شود، آنگاه سامبا تلاش خواهد کرد تا تمامی فایل‌ها و دایرکتوری‌های درون دایرکتوری وتوشده را به صورت بازگشتی حذف کند. این قابلیت می‌تواند برای یکپارچه‌سازی با سیستم‌های اشتراک فایل مانند NetAtalk مفید باشد که فایل‌های متا را درون دایرکتوری‌هایی ایجاد می‌کنند که شما معمولاً کاربران DOS/Windows را از دیدن آنها منع می‌کنید (مانند .AppleDouble).

تنظیمِ delete veto files = yes به این دایرکتوری‌ها اجازه می‌دهد هنگام حذف دایرکتوری والد، به طور نامحسوس حذف شوند (تا زمانی که کاربر دسترسی‌های لازم برای این کار را داشته باشد).

Default: delete veto files = no

dfree cache time (S)

پارامتر dfree cache time تنها باید در سیستم‌هایی استفاده شود که در محاسبات داخلی فضای دیسک با مشکل مواجه می‌شوند. این مشکل در Ultrix سابقه داشته است، اما ممکن است در سایر سیستم‌عامل‌ها نیز رخ دهد. نشانه‌ای که مشاهده می‌شد، خطای «Abort Retry Ignore» در انتهای فهرست هر دایرکتوری بود.

این پارامتر جدیدی است که در نسخه 3.0.21 سامبا معرفی شده است. این پارامتر مدت زمانی را به ثانیه مشخص می‌کند که smbd خروجی یک پرس‌وجوی فضای خالی دیسک (disk free) را کَش خواهد کرد. اگر روی صفر (پیش‌فرض) تنظیم شود، هیچ کَشینگی انجام نمی‌شود. این به سرورهای با بار سنگین اجازه می‌دهد تا از فراخوانی سریع و پی‌درپی اسکریپت‌های dfree command که موجب افزایش بار سیستم می‌شود جلوگیری کنند.

به طور پیش‌فرض مقدار این پارامتر صفر است، یعنی هیچ کَشینگی انجام نخواهد شد.

بدون پیش‌فرض

Example: dfree cache time = 60

dfree command (S)

تنظیم dfree command تنها باید در سیستم‌هایی استفاده شود که در محاسبات داخلی فضای دیسک با مشکل مواجه می‌شوند. این مشکل در Ultrix سابقه داشته است، اما ممکن است در سایر سیستم‌عامل‌ها نیز رخ دهد. نشانه‌ای که مشاهده می‌شد، خطای «Abort Retry Ignore» در انتهای فهرست هر دایرکتوری بود.

این تنظیم امکان جایگزینی روال‌های داخلی محاسبه فضای کل دیسک و مقدار فضای در دسترس را با یک روال خارجی فراهم می‌کند. مثال زیر اسکریپت احتمالی را نشان می‌دهد که می‌تواند این کارکرد را برآورده سازد.

در نسخه 3.0.21 سامبا این پارامتر به یک پارامتر به ازای هر اشتراک (per-share) تغییر یافته است، و علاوه بر آن پارامتر dfree cache time اضافه شده است تا امکان کَش کردن خروجی این اسکریپت برای سیستم‌های تحت بار سنگین فراهم شود.

به این برنامه خارجی یک پارامتر ارسال می‌شود که نشان‌دهنده یک دایرکتوری در سیستم‌فایل مورد پرس‌وجو است. این مقدار معمولاً شامل رشته ./ خواهد بود. اسکریپت باید دو عدد صحیح را در قالب ASCII بازگرداند. عدد اول باید کل فضای دیسک بر حسب بلوک، و عدد دوم باید تعداد بلوک‌های در دسترس باشد. مقدار بازگشتی سوم و اختیاری می‌تواند اندازه بلوک را بر حسب بایت مشخص کند. اندازه بلوک پیش‌فرض ۱۰۲۴ بایت است.

نکته: اسکریپت شما نباید دارای مجوزهای setuid یا setgid باشد و باید در مالکیت کاربر root باشد (و تنها توسط root قابل نوشتن باشد)!

در جایی که اسکریپت dfree (که باید قابل اجرا شود) می‌تواند چنین باشد:

#!/bin/sh
df "$1" | tail -1 | awk '{print $(NF-4),$(NF-2)}'

یا احتمالاً (در سیستم‌های مبتنی بر Sys V):

#!/bin/sh
/usr/bin/df -k "$1" | tail -1 | awk '{print $3" "$5}'

توجه داشته باشید که ممکن است در برخی سیستم‌ها مجبور شوید نام دستورها را با مسیر کامل آنها جایگزین کنید. همچنین توجه داشته باشید آرگومان‌های ارسالی به اسکریپت باید در داخل اسکریپت درون علامت نقل‌قول قرار گیرند تا در صورت وجود کاراکترهای خاص مانند فاصله یا خطوط جدید مشکلی پیش نیاید.

به طور پیش‌فرض، روال‌های داخلی برای تعیین ظرفیت دیسک و فضای باقی‌مانده استفاده خواهند شد.

بدون پیش‌فرض

Example: dfree command = /usr/local/samba/bin/dfree

dgram port (G)

مشخص می‌کند که سرور باید برای ترافیک دیتاگرام NetBIOS به کدام درگاه‌ها گوش فرا دهد.

Default: dgram port = 138

directory mode

این پارامتر مترادفی برای directory mask است.

directory mask (S)

این پارامتر، حالت‌های هشت‌هشتی (octal modes) هستند که هنگام تبدیل حالت‌های DOS به حالت‌های UNIX در زمان ساخت دایرکتوری‌های UNIX استفاده می‌شوند.

هنگام ایجاد یک دایرکتوری، مجوزهای لازم بر اساس نگاشت حالت‌های DOS به مجوزهای UNIX محاسبه شده و سپس حالت نهایی UNIX به صورت بیتی با این پارامتر AND منطقی ('AND'ed) می‌شود. این پارامتر را می‌توان به عنوان یک ماسک (MASK) بیتی برای حالت‌های UNIX یک دایرکتوری در نظر گرفت. هر بیتی که در اینجا تنظیم نشده باشد، هنگام ایجاد دایرکتوری از حالت‌های تنظیم‌شده روی آن حذف خواهد شد.

مقدار پیش‌فرض این پارامتر بیت‌های نوشتن 'group' (گروه) و 'other' (دیگران) را از حالت UNIX حذف می‌کند و تنها به کاربری که مالک دایرکتوری است اجازه می‌دهد آن را تغییر دهد.

به دنبال آن، سامبا حالت UNIX ایجاد شده از این پارامتر را به صورت بیتی با مقدار پارامتر force directory mode مقایسه و OR منطقی ('OR') می‌کند. این پارامتر به طور پیش‌فرض روی 000 تنظیم شده است (یعنی هیچ بیت حالت اضافی افزوده نمی‌شود).

Default: directory mask = 0755

Example: directory mask = 0775

directory security mask (S)

این پارامتر در نسخه 4.0.0 سامبا حذف شده است.

بدون پیش‌فرض

disable netbios (G)

فعال‌سازی این پارامتر، پشتیبانی از NetBIOS را در سامبا غیرفعال می‌کند. در نسخه‌های ویندوز پیش از Windows 2000، پروتکل NetBIOS تنها شیوه مرور شبکه (browsing) موجود است.

نکته
کلاینت‌هایی که فقط از NetBIOS پشتیبانی می‌کنند، در صورت غیرفعال بودن پشتیبانی از NetBIOS قادر به دیدن سرور سامبای شما نخواهند بود.
Default: disable netbios = no

disable spoolss (G)

فعال‌سازی این پارامتر پشتیبانی سامبا از مجموعه تماس‌های راه دور MS-RPC مربوط به SPOOLSS را غیرفعال کرده و رفتاری مشابه نسخه 2.0.x سامبا ارائه خواهد داد. کلاینت‌های Windows NT/2000 به استفاده از دستورهای چاپ به سبک Lanman تنزل پیدا خواهند کرد. ویندوزهای 9x/ME تحت تأثیر این پارامتر قرار نمی‌گیرند. با این حال، این کار همچنین توانایی بارگذاری درایورهای چاپگر در سرور سامبا را از طریق «Windows NT Add Printer Wizard» یا با استفاده از پنجره محاوره‌ای ویژگی‌های چاپگر NT غیرفعال می‌کند. این تنظیم همچنین قابلیت کلاینت‌های Windows NT/2000 را برای دانلود درایورهای چاپ بر حسب تقاضا از میزبان سامبا غیرفعال خواهد کرد. در فعال‌سازی این پارامتر بسیار محتاط باشید.

Default: disable spoolss = no

dmapi support (S)

این پارامتر مشخص می‌کند که آیا سامبا باید از DMAPI برای تعیین آفلاین بودن یا نبودن یک فایل استفاده کند یا خیر. این قابلیت معمولاً در ارتباط با یک سیستم ذخیره‌سازی سلسله‌مراتبی استفاده می‌شود که فایل‌ها را به طور خودکار به نوار مغناطیسی (tape) منتقل می‌کند.

توجه داشته باشید که سامبا با بررسی رویدادهایی که یک برنامه DMAPI تمایل خود را برای آنها ثبت کرده است، وضعیت فایل را استنباط می‌کند. این روش ابتکاری برای تعدادی از سیستم‌های ذخیره‌سازی سلسله‌مراتبی رضایت‌بخش است، اما ممکن است سیستم‌هایی وجود داشته باشند که این روش در آنها ناموفق باشد. در این حالت، سامبا ممکن است به اشتباه فایل‌ها را آفلاین گزارش دهد.

این پارامتر تنها در صورتی در دسترس است که پیاده‌سازی پشتیبانی‌شده‌ای از DMAPI در زمان کامپایل یافت شده باشد. همچنین فقط زمانی استفاده خواهد شد که DMAPI در زمان اجرا روی سیستم فعال باشد.

Default: dmapi support = no

dns hostname (G)


این مقدار در موارد زیر استفاده می‌شود:

•جهت ثبت رکورد DNS در AD در حین الحاق (join) یا با فراخوانی دستور
net ads dns register
•در طول احراز هویت Kerberos برای ایجاد service principal nameها
•در حین ایجاد keytab - پارامتر sync machine password to keytab را ببینید
این قابلیت هنوز در samba-tool پشتیبانی نمی‌شود.

Default: dns hostname = [netbios name].[realm]

Example: dns hostname = client-hostname.example.com

dns forwarder (G)

این گزینه فهرستی از سرورهای DNS را مشخص می‌کند که در صورت عدم امکان رسیدگی به درخواست‌های DNS توسط خود سامبا، درخواست‌ها به آنها فوروارد (هدایت) می‌شوند.

فورواردکننده DNS تنها در صورتی استفاده می‌شود که از سرور DNS داخلی سامبا استفاده شود. شماره پورت‌ها را می‌توان با جدا کردن آنها از آدرس به وسیله دونقطه (':') اضافه کرد. هنگام تعیین پورت، آدرس‌های IPv6 باید در براکت ('[' و ']') قرار گیرند. آدرس‌های فورواردر IPv6 بدون پورت مشخص، نیازی به براکت ندارند و پیش‌فرض آنها پورت ۵۳ است.

Default: dns forwarder =

Example: dns forwarder = 192.168.0.1 192.168.0.2 ::1 [2001:db8::1] [2001:db8:1:2::1]:54

dns port (G)

مشخص می‌کند که سرور باید برای ترافیک DNS به کدام درگاه‌ها گوش فرا دهد.

این گزینه امکان استفاده از یک سرور DNS دیگر را به عنوان پیش‌رو (front) و فوروارد به سامبا فراهم می‌سازد.


هشدار
به‌روزرسانی‌های پویای DNS (Dynamic DNS) ممکن است در هنگام فوروارد به سامبا توسط سرور DNS پیش‌رو پروکسی نشوند. پروکسی کردن به‌روزرسانی پویای DNS به قابلیت‌های سرور DNS دیگر که به عنوان پیش‌رو استفاده می‌شود بستگی دارد.
Default: dns port = 53

dns proxy (G)

مشخص می‌کند که آیا nmbd(8) هنگامی که به عنوان یک کارساز WINS عمل می‌کند و متوجه می‌شود که یک نام NetBIOS ثبت نشده است، باید با نام NetBIOS دقیقاً کلمه به کلمه مانند یک نام DNS رفتار کرده و از طرف کلاینت درخواست‌کنندهٔ نام، آن را در سرور DNS جستجو کند یا خیر.

توجه داشته باشید که حداکثر طول برای یک نام NetBIOS برابر ۱۵ نویسه است، بنابراین نام DNS (یا نام مستعار DNS) نیز به همین صورت حداکثر می‌تواند ۱۵ نویسه باشد.

دیمن nmbd یک رونوشت دوم از خود ایجاد (انشعاب) می‌کند تا درخواست‌های جستجوی نام DNS را انجام دهد، چرا که انجام جستجوی نام یک عملیات مسدودکننده (blocking) است.

Default: dns proxy = yes

dns update command (G)

این گزینه دستوری را مشخص می‌کند که هنگام وجود به‌روزرسانی‌های DNS فراخوانی می‌شود. این دستور باید نام‌های DNS ماشین‌های محلی را با استفاده از TSIG-GSS به‌روزرسانی کند.

Default: dns update command = /build/samba/src/samba-4.24.6/source4/scripting/bin/samba_dnsupdate

Example: dns update command = /usr/local/sbin/dnsupdate

dns zone scavenging (G)

در صورت فعال بودن (پیش‌فرض غیرفعال است)، رکوردهای پویای بلااستفادهٔ DNS به‌طور دوره‌ای پاکسازی می‌شوند.

هشدار
این گزینه نباید برای محیط‌های ایجادشده با نسخه‌های Samba قبل از 4.9 فعال شود. انجام این کار منجر به از دست رفتن ورودی‌های ایستا (static) در DNS خواهد شد. دلیل این امر وجود یک اشکال در نسخه‌های قبلی Samba (اشکال BUG 12451) است که رکوردهای پویای DNS را به عنوان ایستا، و رکوردهای ایستا را به عنوان پویا علامت‌گذاری می‌کرد.

نکته
اگر یک رکورد برای یک نام DNS از نوع ایستا (بدون انقضا / non-aging) باشد، هیچ رکورد دیگری برای آن نام DNS پاکسازی نخواهد شد.
Default: dns zone scavenging = no

dns zone transfer clients allow (G)

این گزینه فهرستی از نشانی‌های IP مجاز برای درخواست انتقال منطقه (zone transfer) در DNS از ماژول bind DLZ را مشخص می‌کند.

فهرست IP با ویرگول و فاصله از هم جدا می‌شود و با همان ساختار استفاده‌شده در hosts allow مشخص می‌گردد، به‌ویژه شامل نشانی‌های IP، پیشوندهای IP و ماسک‌های نشانی IP.

از آنجایی که این گزینه مربوط به سرور DNS است، طبیعتاً نام‌های میزبان (hostnames) مجاز نیستند.

رفتار پیش‌فرض، رد کردن هرگونه درخواست است. یک درخواست تنها در صورتی مجاز خواهد بود که کلاینت ارسال‌کننده در این فهرست مشخص شده باشد، و در dns zone transfer clients deny وجود نداشته باشد.

Default: dns zone transfer clients allow =

Example: dns zone transfer clients allow = 192.168.0.1

dns zone transfer clients deny (G)

این گزینه فهرستی از نشانی‌های IP غیرمجاز (رد شده) برای درخواست انتقال منطقه (zone transfer) در DNS از ماژول bind DLZ را مشخص می‌کند.

فهرست IP با ویرگول و فاصله از هم جدا می‌شود و با همان ساختار استفاده‌شده در hosts allow مشخص می‌گردد، به‌ویژه شامل نشانی‌های IP، پیشوندهای IP و ماسک‌های نشانی IP.

از آنجایی که این گزینه مربوط به سرور DNS است، طبیعتاً نام‌های میزبان مجاز نیستند.

اگر کلاینتی که در این فهرست مشخص شده است درخواست انتقال منطقه ارسال کند، همواره رد خواهد شد، حتی اگر در dns zone transfer clients allow قرار داشته باشد. این ویژگی امکان تعریف کلاینت‌های غیرمجاز مشخص را در یک زیرشبکهٔ (subnet) مجاز فراهم می‌کند.

Default: dns zone transfer clients deny =

Example: dns zone transfer clients deny = 192.168.0.1

domain logons (G)

این پارامتر از زمان Samba 4.13 منسوخ شده است و پشتیبانی از ورود به دامنه به سبک NT4 (به عنوان متمایز از Samba AD DC) در نگارش‌های آتی Samba حذف خواهد شد.

بدین معنا که در آینده، مقدار پیش‌فرض فعلی یعنی domain logons = no رفتار اجباری خواهد بود.

در صورت تنظیم روی yes، سرور Samba سرویس netlogon را برای ورودهای شبکهٔ Windows 9X مربوط به workgroup که در آن قرار دارد فراهم می‌کند. این کار همچنین باعث می‌شود که سرور Samba به عنوان یک کنترل‌کنندهٔ دامنه برای سرویس‌های دامنه به سبک NT4 عمل کند. برای جزئیات بیشتر در مورد راه‌اندازی این ویژگی، به فصل Domain Control از مجموعه راهنماهای Samba HOWTO Collection مراجعه کنید.

Default: domain logons = no

domain master (G)

به smbd(8) دستور می‌دهد تا یکپارچه‌سازی فهرست مرور (browse list) را در سطح کل شبکهٔ گسترده (WAN) فعال کند. تنظیم این گزینه باعث می‌شود nmbd مدعی یک نام NetBIOS خاصِ دامنه شود که آن را به عنوان مرورگر اصلی دامنه (domain master browser) برای workgroup مربوطه معرفی می‌کند. مرورگرهای اصلی محلی (Local master browsers) در همان workgroup روی زیرشبکه‌های ایزوله‌شده از نظر برودکست، فهرست‌های مرور محلی خود را به این nmbd ارائه می‌دهند و سپس از smbd(8) یک رونوشت کامل از فهرست مرور برای کل شبکهٔ گسترده درخواست می‌کنند. سپس کلاینت‌های مرورگر با مرورگر اصلی محلی خود تماس گرفته و فهرست مرور کل دامنه را دریافت می‌کنند، نه فقط فهرست زیرشبکهٔ ایزوله‌شدهٔ خودشان را.

توجه داشته باشید که کنترل‌کننده‌های اصلی دامنه در Windows NT (موسوم به PDC) به‌طور پیش‌فرض انتظار دارند بتوانند مدعی این نام خاص NetBIOS مربوط به workgroup شوند که آن‌ها را به عنوان domain master browser برای آن workgroup مشخص می‌کند (یعنی هیچ راهی برای جلوگیری از تلاش یک Windows NT PDC برای انجام این کار وجود ندارد). این بدان معناست که اگر این پارامتر تنظیم شده باشد و nmbd پیش از آن‌که Windows NT PDC بتواند اقدام کند، مدعی نام ویژه برای یک workgroup شود، آنگاه مرور بین زیرشبکه‌ها رفتاری عجیب نشان داده و ممکن است با خطا مواجه شود.

اگر domain logons = yes باشد، رفتار پیش‌فرض فعال کردن پارامتر domain master است. اگر domain logons فعال نباشد (تنظیم پیش‌فرض)، آنگاه domain master نیز به‌طور پیش‌فرض فعال نخواهد بود.

هنگامی که domain logons = Yes باشد، تنظیم پیش‌فرض برای این پارامتر Yes است که منجر به این می‌شود که Samba یک PDC باشد. اگر domain master = No باشد، Samba به عنوان یک BDC عمل خواهد کرد. به‌طور کلی، این پارامتر تنها در یک BDC باید روی 'No' تنظیم شود.

Default: domain master = auto

dont descend (S)

در برخی سیستم‌ها دایرکتوری‌های خاصی وجود دارند (مانند درخت /proc در لینوکس) که یا مورد توجه کلاینت‌ها نیستند یا بی‌نهایت عمیق (بازگشتی) هستند. این پارامتر به شما امکان می‌دهد فهرستی از دایرکتوری‌ها را که با ویرگول جدا شده‌اند مشخص کنید تا سرور همیشه آن‌ها را خالی نشان دهد.

توجه داشته باشید که Samba ممکن است در مورد قالب دقیق ورودی‌های "dont descend" بسیار سخت‌گیر باشد. به عنوان مثال ممکن است به جای صرفاً /proc به ./proc نیاز داشته باشید. آزمودن بهترین رویکرد است :-)

Default: dont descend =

Example: dont descend = /proc,/dev

dos charset (G)

کلاینت‌های DOS SMB فرض می‌کنند که سرور دارای همان مجموعه نویسه‌ای (charset) است که خودشان استفاده می‌کنند. این گزینه مشخص می‌کند که Samba باید از کدام charset برای ارتباط با کلاینت‌های DOS استفاده کند.

مقدار پیش‌فرض بستگی به این دارد که چه مجموعه‌های نویسه‌ای را نصب کرده باشید. سامبا سعی می‌کند از charset 850 استفاده کند اما در صورتی که در دسترس نباشد به ASCII بازمی‌گردد. برای بررسی پیش‌فرض روی سیستم خود، testparm(1) را اجرا کنید.

بدون مقدار پیش‌فرض

dos filemode (S)

رفتار پیش‌فرض در Samba ارائهٔ رفتاری شبیه به یونیکس است که در آن تنها مالک یک فایل/دایرکتوری قادر به تغییر دسترسی‌های آن است. با این حال، این رفتار اغلب برای کاربران DOS/Windows گیج‌کننده است. فعال کردن این پارامتر به کاربری که دسترسی نوشتن روی فایل دارد (از هر طریقی، از جمله مجوز ACL) اجازه می‌دهد دسترسی‌های آن (از جمله ACL) را تغییر دهد. توجه داشته باشید که کاربری متعلق به گروهِ مالک فایل، در صورتی که فقط دسترسی خواندن به گروه اعطا شده باشد، مجاز به تغییر دسترسی‌ها نخواهد بود. مالکیت فایل/دایرکتوری نیز ممکن است تغییر کند. توجه داشته باشید که استفاده از ماژول‌های VFS به نام‌های acl_xattr یا acl_tdb که اطلاعات بومی ویندوز را به عنوان فراداده ذخیره می‌کنند، این گزینه را به‌طور خودکار برای هر اشتراکی که در آن بارگذاری شوند روشن می‌کند، زیرا آن‌ها برای شبیه‌سازی صحیح ACLهای ویندوز به این گزینه نیاز دارند.

Default: dos filemode = no

dos filetime resolution (S)

در سیستم فایل FAT در DOS و Windows، دقیق‌ترین تفکیک‌پذیری زمانی دو ثانیه است. تنظیم این پارامتر برای یک اشتراک باعث می‌شود Samba هنگام فراخوانی درخواستی از smbd(8) که نیازمند دقت یک‌ثانیه‌ای است، زمان گزارش‌شده را به نزدیک‌ترین مرز دو ثانیه به سمت پایین گرد کند.

این گزینه عمدتاً به عنوان یک گزینهٔ سازگاری برای Visual C++ هنگام استفاده با اشتراک‌های Samba به کار می‌رود. اگر oplocks روی یک اشتراک فعال باشد، Visual C++ از دو فراخوانی مختلف خواندن زمان برای بررسی این‌که آیا فایل از زمان آخرین خواندن تغییر کرده است یا خیر استفاده می‌کند. یکی از این فراخوانی‌ها از تفکیک‌پذیری یک‌ثانیه‌ای و دیگری از تفکیک‌پذیری دوثانیه‌ای استفاده می‌کند. از آنجا که فراخوانی دوثانیه‌ای هر ثانیهٔ فرد را به سمت پایین گرد می‌کند، در نتیجه اگر فایل برچسب زمانی با ثانیهٔ فرد داشته باشد، دو برچسب زمانی مطابقت نخواهند داشت و Visual C++ مدام گزارش می‌دهد که فایل تغییر کرده است. تنظیم این گزینه باعث می‌شود که دو برچسب زمانی مطابقت داشته باشند و مشکل Visual C++ برطرف شود.

Default: dos filetime resolution = no

dos filetimes (S)

در DOS و Windows، اگر کاربری بتواند در فایلی بنویسد، می‌تواند برچسب زمانی آن را نیز تغییر دهد. طبق معناشناسی POSIX، تنها مالک فایل یا کاربر ریشه (root) مجاز به تغییر برچسب زمانی است. به‌طور پیش‌فرض، Samba معناشناسی DOS را شبیه‌سازی می‌کند و در صورتی که کاربرِ مورد عملِ smbd دارای مجوز نوشتن باشد، اجازهٔ تغییر برچسب زمانی فایل را می‌دهد. به دلیل تغییرات در Microsoft Office 2000 و نسخه‌های پس از آن، مقدار پیش‌فرض این پارامتر در Samba 3.0.14 و بالاتر از "no" به "yes" تغییر یافته است. اگر این پارامتر روی "yes" تنظیم نشده باشد و فایل‌ها بین کاربران به اشتراک گذاشته شوند، Microsoft Excel هشدارهایی را در قالب کادر محاوره‌ای مبنی بر تغییر فایل توسط کاربری دیگر نمایش می‌دهد.

Default: dos filetimes = yes

dsdb event notification (G)

در صورت فعال بودن، این گزینه باعث می‌شود Samba (هنگام عمل به عنوان Active Directory Domain Controller) رویدادهای پایگاه‌دادهٔ Samba را روی گذرگاه پیام داخلی ارسال (استریم) کند. اسکریپت‌های ساخته‌شده با استفاده از بایندینگ‌های پایتون Samba می‌توانند با ثبت به عنوان سرویس dsdb_event به این رویدادها گوش دهند.

این گزینه برای ثبت وقایع حسابرسی (audit logging) شرح داده شده در log level مورد نیاز نیست.

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

رویدادهای پایگاه‌دادهٔ Samba همچنین از طریق روش‌های عادی ثبت وقایع، زمانی که log level به‌طور مناسب (مثلاً روی dsdb_json_audit:5) تنظیم شده باشد، ثبت می‌شوند.

Default: dsdb event notification = no

dsdb group change notification (G)

در صورت فعال بودن، این گزینه باعث می‌شود که Samba (در نقش Active Directory Domain Controller) رخدادهای تغییر عضویت در گروه‌ها را از طریق گذرگاه پیام داخلی (internal message bus) مخابره کند. اسکریپت‌هایی که با استفاده از بایندرهای پایتون Samba ساخته شده‌اند می‌توانند با ثبت‌نام به عنوان سرویس dsdb_group_event به این رخدادها گوش فرا دهند.

این گزینه برای ثبت رخدادهای بازرسی شرح داده شده در log level لازم نیست.

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

رخدادهای پایگاه‌داده Samba همچنین از طریق روش‌های عادی ثبت لاگ، در زمانی که log level به‌طور مناسب، برای مثال روی dsdb_group_json_audit:5 تنظیم شده باشد، در لاگ ثبت می‌شوند.

Default: dsdb group change notification = no

dsdb password event notification (G)

در صورت فعال بودن، این گزینه باعث می‌شود Samba (در نقش Active Directory Domain Controller) رخدادهای تغییر و بازنشانی گذرواژه را از طریق گذرگاه داخلی پیام (internal message bus) مخابره کند. اسکریپت‌هایی که با استفاده از بایندرهای پایتون Samba ساخته شده‌اند می‌توانند با ثبت‌نام به عنوان سرویس password_event به این رخدادها گوش دهند.

این گزینه برای ثبت گزارش‌های بازرسی شرح داده شده در log level لازم نیست.

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

رخدادهای پایگاه داده Samba همچنین از طریق روش‌های عادی ثبت لاگ، زمانی که log level به‌درستی تنظیم شده باشد، مثلاً به صورت dsdb_password_json_audit:5، در لاگ ثبت می‌شوند.

Default: dsdb password event notification = no

durable handles (S)

این پارامتر بولی کنترل می‌کند که آیا Samba می‌تواند دستگیره‌های فایل پایا (durable file handles) را در SMB2 برای یک اشتراک اعطا کند یا خیر.

توجه داشته باشید که دستگیره‌های پایا تنها زمانی فعال می‌شوند که kernel oplocks = no، kernel share modes = no و posix locking = no باشند؛ یعنی اگر اشتراک فقط برای دسترسی CIFS/SMB2 پیکربندی شده باشد و از ویژگی‌های هم‌کنش‌پذیری با فرایندهای محلی UNIX یا عملیات NFS پشتیبانی نکند.

همچنین توجه داشته باشید که در حال حاضر، برای دستگیره‌ای که فلگ delete on close روی آن تنظیم شده باشد، قابلیت پایداری اعطا نمی‌شود.

Default: durable handles = yes

ea support (S)

این پارامتر بولی کنترل می‌کند که آیا smbd(8) به کلاینت‌ها اجازه تلاش برای دسترسی به مشخصه‌های توسعه‌یافته (extended attributes) روی یک اشتراک را می‌دهد یا خیر. برای فعال‌سازی این پارامتر در ساختاری با ماژول‌های پیش‌فرض VFS:
•سامبا باید با پشتیبانی از مشخصه‌های توسعه‌یافته (extended attributes) کامپایل شده باشد.
•سیستم‌فایل زیرین که توسط اشتراک ارائه می‌شود باید از مشخصه‌های توسعه‌یافته پشتیبانی کند (برای نمونه، ابزارهای getfattr(1) / setfattr(1) باید به درستی کار کنند).
•دسترسی به مشخصه‌های کاربری توسعه‌یافته (extended user attributes) باید توسط سیستم‌فایل زیرین مجاز شمرده شود (مثلاً هنگامی که با گزینه‌ای وابسته به سیستم مانند user_xattr در لینوکس سوار شده باشد).
این گزینه فضای نام مشخصه "user" را از سیستم‌فایل زیرین در دسترس کلاینت‌ها قرار می‌دهد. به منظور مطابقت با قراردادهای ویندوز، پیشوند فضای نام ("user.") در سمت کلاینت از نام مشخصه حذف می‌شود. نحوه مدیریت سایر فضاهای نام مشخصه‌ها (مانند "security"، "system" یا "trusted") تحت تأثیر این گزینه قرار نمی‌گیرد.

توجه داشته باشید که پروتکل SMB امکان تنظیم مشخصه‌هایی با مقدار تا اندازه 64K بایت را می‌دهد و در NTFS، حداکثر فضای ذخیره‌سازی برای مشخصه‌های توسعه‌یافته به ازای هر فایل 64K است. در برخی سیستم‌فایل‌ها ممکن است این محدودیت‌ها کمتر باشد. سیستم‌فایل‌هایی با فضای بیش از حد محدود برای EA ممکن است با رفتارهای غیرمنتظره و عجیبی مواجه شوند. مقدار پیش‌فرض در نگارش 4.9.0 و بالاتر Samba به yes تغییر یافته است تا سازگاری بهتری با فایل‌سرور ویندوز در نصب پیش‌فرض فراهم شود.

Default: ea support = yes

elasticsearch:address (S)

نام سرور Elasticsearch را برای استفاده در پرس‌وجوهای Spotlight هنگام استفاده از بک‌اند Elasticsearch مشخص می‌کند.

Default: elasticsearch:address = localhost

Example: elasticsearch:address = needle.haystack.samba.org

elasticsearch:default_fields (G)

مشخصه‌های پیش‌فرض در Elasticsearch برای جستجو هنگام دریافت یک پرس‌وجوی Spotlight که در مشخصه ویژه "*" جستجو می‌کند. این حالت پیش‌فرضی است که توسط کلاینت‌های macOS هنگام جستجو از طریق Finder استفاده می‌شود.

این گزینه فهرستی از مشخصه‌های Elasticsearch را انتظار دارد که با کاما از یکدیگر جدا شده و هر مشخصه باید داخل گیومه مضاعف (double quotes) قرار گیرد.

Default: elasticsearch:default_fields = "file.filename", "content"

Example: elasticsearch:default_fields = "foo", "bar"

elasticsearch:force substring search (G)

جستجوهای رشته‌ای در مشخصه‌های متنی مانند مسیرها را با افزودن یک * به عنوان پیشوند، مجبور می‌کند تا به صورت جستجوی پیشوندی (prefix search) انجام شوند. مثال: یک جستجوی Spotlight برای '*=="samba*"' به جای "'query': '(samba*)'" به صورت "'query': '(*samba*)'" نگاشت خواهد شد.

Default: elasticsearch:force substring search = no

Example: elasticsearch:force substring search = yes

elasticsearch:ignore unknown attribute (G)

مشخصه‌های ناشناخته Spotlight را در پرس‌وجوهای جستجو نادیده می‌گیرد. یک پرس‌وجوی نمونه با استفاده از مشخصه پشتیبانی‌نشده "kMDItemTopic" به صورت kMDItemTopic=="hotstuff" خواهد بود. به طور پیش‌فرض هر پرس‌وجویی با چنین مشخصه‌ای کاملاً با شکست مواجه می‌شود. با فعال کردن این گزینه، اگر نوع منطبق‌شده جزئی از یک عبارت بزرگ‌تر باشد، آن عبارت فرعی نادیده گرفته می‌شود.

Default: elasticsearch:ignore unknown attribute = no

Example: elasticsearch:ignore unknown attribute = yes

elasticsearch:ignore unknown type (G)

نوع‌های ناشناخته Spotlight را در پرس‌وجوهای جستجو نادیده می‌گیرد. یک پرس‌وجوی نمونه با استفاده از نوع پشتیبانی‌نشده "public.calendar-event" به صورت kMDItemContentType=="public.calendar-event" خواهد بود. به طور پیش‌فرض هر پرس‌وجویی با استفاده از چنین نوعی کاملاً با شکست مواجه می‌شود. با فعال کردن این گزینه، اگر تطابق نوع، یک عبارت فرعی از یک عبارت بزرگ‌تر باشد، این عبارت فرعی نادیده گرفته می‌شود.

Default: elasticsearch:ignore unknown type = no

Example: elasticsearch:ignore unknown type = yes

elasticsearch:index (S)

نام اندیس Elasticsearch را برای استفاده در پرس‌وجوهای Spotlight هنگام استفاده از بک‌اند Elasticsearch مشخص می‌کند. مقدار پیش‌فرض "_all" یک مقدار ویژه در Elasticsearch است که عملیات جستجو را در تمام اندیس‌ها انجام می‌دهد.

Default: elasticsearch:index = _all

Example: elasticsearch:index = spotlight

elasticsearch:mappings (G)

مسیر یک فایل که نگاشت‌های مشخصه‌های فراداده (metadata) را در قالب JSON مشخص می‌کند. این فایل توسط بک‌اند Elasticsearch در سرویس Spotlight RPC استفاده می‌شود.

Default: elasticsearch:mappings = /usr/share/samba/elasticsearch_mappings.json

Example: elasticsearch:mappings = /usr/share/foo/mymappings.json

elasticsearch:max results (S)

مسیر فایلی که نگاشت مشخصه‌های فراداده را در قالب JSON مشخص می‌کند. توسط بک‌اند Elasticsearch در سرویس Spotlight RPC استفاده می‌شود. مقدار 0 به معنای نامحدود است.

Default: elasticsearch:max results = 100

Example: elasticsearch:max results = 10

elasticsearch:port (S)

پورت TCP سرور Elasticsearch را برای استفاده در پرس‌وجوهای Spotlight هنگام استفاده از بک‌اند Elasticsearch مشخص می‌کند.

Default: elasticsearch:port = 9200

Example: elasticsearch:port = 9201

elasticsearch:use tls (S)

مشخص می‌کند که هنگام ارتباط با سرور Elasticsearch مورد استفاده برای پرس‌وجوهای Spotlight (هنگام استفاده از بک‌اند Elasticsearch) از HTTPS استفاده شود یا خیر.

Default: elasticsearch:use tls = no

Example: elasticsearch:use tls = yes

enable asu support (G)

میزبان‌هایی که محصول "Advanced Server for Unix (ASU)" را اجرا می‌کنند نیازمند برخی سازگاری‌های خاص هستند؛ مانند ایجاد یک اشتراک توکار [ADMIN$] که تنها از اتصالات IPC پشتیبانی می‌کند. این رفتار برای سال‌های متمادی رفتار پیش‌فرض در smbd بوده است. با این حال، برخی از برنامه‌های مایکروسافت مانند ابزار Print Migrator نیاز دارند که سرور راه دور از یک اشتراک فایل [ADMIN$] پشتیبانی کند. غیرفعال کردن این پارامتر امکان ایجاد اشتراک فایل [ADMIN$] را در smb.conf فراهم می‌کند.

Default: enable asu support = no

enable core files (G)

این پارامتر مشخص می‌کند که آیا در هنگام خروج‌های داخلی (internal exits)، فایل‌های core dump نوشته شوند یا خیر. معمولاً روی yes تنظیم است. شما هرگز نباید نیازی به تغییر این مقدار داشته باشید.

Default: enable core files = yes

Example: enable core files = no

enable privileges (G)

این پارامتر منسوخ‌شده کنترل می‌کند که آیا smbd امتیازهای (privileges) اختصاص‌یافته به SIDهای خاص از طریق net rpc rights یا یکی از ابزارهای مدیریت کاربر و گروه ویندوز را رعایت می‌کند یا خیر. این پارامتر به‌طور پیش‌فرض فعال است. می‌توان آن را غیرفعال کرد تا از امکان تخصیص امتیازها توسط اعضای گروه Domain Admins به کاربران یا گروه‌ها جلوگیری شود؛ امتیازهایی که می‌توانند منجر به اجرای برخی عملیات‌های smbd با دسترسی ریشه (root) شوند، در حالی که در حالت عادی تحت بستر کاربری متصل‌شده اجرا می‌شدند.

نمونه‌ای از نحوه استفاده از امتیازها، اعطای حق پیوستن کلاینت‌ها به یک دامنه تحت کنترل سامبا بدون فراهم کردن دسترسی ریشه (root) به سرور از طریق smbd است.

لطفاً توضیحات مبسوط ارائه‌شده در مستندات Samba HOWTO را مطالعه کنید.

Default: enable privileges = yes

enable spoolss (G)

مترادف معکوس برای disable spoolss.

Default: enable spoolss = yes

encrypt passwords (G)

این پارامتر از نسخه Samba 4.11 منسوخ شده است و پشتیبانی از رمزهای عبور متن ساده (plaintext) (متمایز از احراز هویت NTLM ،NTLMv2 یا Kerberos) در نسخه‌های آینده سامبا حذف خواهد شد.

بدین معنا که در آینده، مقدار پیش‌فرض فعلی encrypt passwords = yes رفتار اجباری خواهد بود.

این گزینه بولی کنترل می‌کند که آیا رمزهای عبور رمزنگاری‌شده با کلاینت مذاکره می‌شوند یا خیر. توجه داشته باشید که ویندوز NT 4.0 SP3 و بالاتر و همچنین ویندوز 98 به‌طور پیش‌فرض انتظار رمزهای عبور رمزنگاری‌شده دارند مگر اینکه یک مدخل رجیستری تغییر یابد. برای استفاده از رمزهای عبور رمزنگاری‌شده در سامبا به فصل «پایگاه‌داده کاربر» (User Database) در مجموعه Samba HOWTO مراجعه کنید.

کلاینت‌های ویندوز مایکروسافت که انتظار رمزهای عبور رمزنگاری‌شده مایکروسافت را دارند و پشتیبانی از رمزهای متن ساده در آن‌ها فعال نیست، تنها می‌توانند به سرور سامبایی متصل شوند که پشتیبانی از رمز عبور رمزنگاری‌شده در آن فعال باشد و حساب‌های کاربری آن دارای رمز عبور رمزنگاری‌شده معتبر باشند. برای کسب اطلاعات درباره ایجاد رمزهای عبور رمزنگاری‌شده برای حساب‌های کاربری به صفحه راهنمای دستور smbpasswd مراجعه کنید.

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

برای اینکه رمزهای عبور رمزنگاری‌شده به‌درستی کار کنند، smbd(8) باید یا به فایل محلی smbpasswd(5) دسترسی داشته باشد (برای اطلاعات در مورد نحوه راه‌اندازی و نگهداری این فایل برنامه smbpasswd(8) را ببینید)، یا پارامتر security = [domain|ads] تنظیم شده باشد که باعث می‌شود smbd احراز هویت را در برابر سرور دیگری انجام دهد.

Default: encrypt passwords = yes

enhanced browsing (G)

این گزینه چند بهبود را برای انتشار مرور بین زیرشبکه‌ای (cross-subnet browse propagation) فعال می‌کند که در سامبا اضافه شده‌اند اما در پیاده‌سازی‌های مایکروسافت استاندارد نیستند.

اولین بهبود در انتشار مرور شامل یک پرس‌وجوی دوره‌ای با نویسه عمومی (wildcard) به یک سرور Samba WINS برای همه Domain Master Browserها است که پس از آن یک همگام‌سازی مرور با هر یک از DMBهای برگشتی انجام می‌شود. دومین بهبود شامل یک همگام‌سازی مرور تصادفی دوره‌ای با تمام DMBهای شناخته‌شده فعلی است.

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

به‌طور کلی باید این گزینه را فعال بگذارید زیرا باعث پایداری و قابلیت اطمینان بسیار بیشتر در انتشار مرور بین زیرشبکه‌ای می‌شود.

Default: enhanced browsing = yes

enumports command (G)

مفهوم «پورت» برای میزبان‌های یونیکس کاملاً بیگانه است. در سرورهای چاپ ویندوز NT/2000، یک پورت با یک پایشگر پورت (port monitor) مرتبط است و عموماً به شکل یک پورت محلی (مانند LPT1: ،COM1: ،FILE:) یا یک پورت از راه دور (مانند LPD Port Monitor و غیره) درمی‌آید. به‌طور پیش‌فرض، سامبا تنها یک پورت تعریف‌شده دارد--"Samba Printer Port". در ویندوز NT/2000، همه چاپگرها باید یک نام پورت معتبر داشته باشند. اگر می‌خواهید فهرستی از پورت‌ها (smbd از نام پورت برای هیچ کاری استفاده نمی‌کند) به غیر از پیش‌فرض "Samba Printer Port" نمایش داده شود، می‌توانید enumports command را طوری تعریف کنید که به برنامه‌ای اشاره کند که فهرستی از پورت‌ها را، هر کدام در یک خط، در خروجی استاندارد تولید کند. سپس این فهرست در پاسخ به فراخوانی‌های RPC سطح ۱ و ۲ تابع EnumPorts() استفاده خواهد شد.

Default: enumports command =

Example: enumports command = /usr/bin/listports

eventlog list (G)

این گزینه فهرستی از نام‌های لاگ را تعریف می‌کند که سامبا به ابزار EventViewer مایکروسافت گزارش خواهد داد. گزارش‌های وقایع (eventlogs) فهرست‌شده با فایل tdb روی دیسک در $(statedir)/eventlog مرتبط خواهند شد.

مدیر سیستم باید از یک فرآیند خارجی برای تجزیه لاگ‌های معمول یونیکس مانند /var/log/messages و سپس نوشتن ورودی‌ها در فایل‌های tdb گزارش وقایع (eventlog) استفاده کند. برای نحوه نوشتن مدخل‌های گزارش وقایع، به ابزار eventlogadm(8) مراجعه کنید.

Default: eventlog list =

Example: eventlog list = Security Application Syslog Apache

fake directory create times (S)

سیستم‌های فایل NTFS و ویندوز VFAT زمان ایجاد را برای همه فایل‌ها و دایرکتوری‌ها نگه می‌دارند. این مانند ctime - زمان تغییر وضعیت - که یونیکس نگه می‌دارد نیست، بنابراین سامبا به‌طور پیش‌فرض قدیمی‌ترین زمان را از بین زمان‌های مختلفی که یونیکس نگه می‌دارد گزارش می‌دهد. تنظیم این پارامتر برای یک اشتراک باعث می‌شود که سامبا همیشه نیمه‌شب ۱۹۸۰-۱-۱ را به عنوان زمان ایجاد دایرکتوری‌ها گزارش دهد.

این گزینه عمدتاً به عنوان یک گزینه سازگاری برای Visual C++ هنگام استفاده روی اشتراک‌های سامبا استفاده می‌شود. makefileهای تولیدشده توسط Visual C++ دایرکتوری اشیا (object directory) را به عنوان وابستگی برای هر فایل شیء (object file) و یک قاعده ساخت (make rule) برای ایجاد دایرکتوری دارند. همچنین، هنگامی که NMAKE برچسب‌های زمانی را مقایسه می‌کند، هنگام بررسی یک دایرکتوری از زمان ایجاد استفاده می‌کند. بنابراین دایرکتوری شیء در صورت عدم وجود ایجاد می‌شود، اما به محض اینکه وجود داشته باشد همیشه برچسب زمانی قدیمی‌تری نسبت به فایل‌های شیء درون خود خواهد داشت.

با این حال، معناشناسی زمانی یونیکس بدین معناست که زمان ایجاد گزارش‌شده توسط سامبا هر زمان که فایلی در دایرکتوری ایجاد یا حذف شود به‌روزرسانی خواهد شد. NMAKE تمام فایل‌های شیء را در دایرکتوری شیء پیدا می‌کند. سپس برچسب زمانی آخرین فایل ساخته‌شده با برچسب زمانی دایرکتوری شیء مقایسه می‌شود. اگر برچسب زمانی دایرکتوری تازه‌تر باشد، تمام فایل‌های شیء دوباره ساخته خواهند شد. فعال کردن این گزینه اطمینان حاصل می‌کند که دایرکتوری‌ها همیشه پیش از محتویات خود تاریخ‌گذاری شوند و ساخت NMAKE طبق انتظار پیش برود.

Default: fake directory create times = no

fake oplocks (S)

قفل‌های فرصت‌طلبانه (Oplocks) روشی هستند که کلاینت‌های SMB از طریق آن از سرور برای ذخیره‌سازی محلی (کش کردن) عملیات فایل مجوز می‌گیرند. اگر سرور یک oplock (قفل فرصت‌طلبانه - opportunistic lock) اعطا کند، کلاینت می‌تواند فرض کند که تنها طرف دسترسی به فایل است و داده‌های فایل را با جدیت در حافظه موقت (کش) قرار می‌دهد. در برخی انواع oplock، کلاینت حتی ممکن است عملیات باز کردن/بستن فایل را نیز کش کند. این می‌تواند مزایای کارایی فوق‌العاده‌ای به همراه داشته باشد.

هنگامی که fake oplocks = yes را تنظیم می‌کنید، smbd(8) همیشه درخواست‌های oplock را صرف‌نظر از اینکه چند کلاینت از فایل استفاده می‌کنند، اعطا خواهد کرد.

به‌طور کلی بسیار بهتر است به جای این پارامتر، از پشتیبانی واقعی oplocks استفاده کنید.

اگر این گزینه را روی تمام اشتراک‌های فقط‌خواندنی یا اشتراک‌هایی که می‌دانید در هر زمان فقط توسط یک کلاینت مورد دسترسی قرار می‌گیرند (مانند رسانه‌های فیزیکی فقط‌خواندنی مثل CDROMها) فعال کنید، بهبود عملکرد بزرگی را در بسیاری از عملیات‌ها مشاهده خواهید کرد. اگر این گزینه را روی اشتراک‌هایی فعال کنید که چندین کلاینت ممکن است به‌طور همزمان با دسترسی خواندن/نوشتن به فایل‌ها دسترسی داشته باشند، ممکن است دچار خرابی داده‌ها (data corruption) شوید. از این گزینه با احتیاط استفاده کنید!

Default: fake oplocks = no

follow symlinks (S)

این پارامتر به مدیر سامبا اجازه می‌دهد تا مانع از دنبال کردن پیوندهای نمادین (symbolic links) توسط smbd(8) در یک اشتراک خاص شود. تنظیم این پارامتر روی no از دنبال شدن هر فایل یا دایرکتوری که یک پیوند نمادین است جلوگیری می‌کند (کاربر با خطا مواجه خواهد شد). این گزینه برای جلوگیری از اینکه کاربران مثلاً یک پیوند نمادین به /etc/passwd در دایرکتوری خانگی خود اضافه کنند بسیار مفید است. با این حال، جستجوی نام فایل‌ها را کمی کُند خواهد کرد.

این گزینه به‌طور پیش‌فرض فعال است (یعنی smbd پیوندهای نمادین را دنبال خواهد کرد).

Default: follow symlinks = yes

smbd force process locks (S)

این گزینه بولی به smbd می‌گوید که آیا استفاده از قفل‌های توصیف‌گر فایل باز (Open File Description locks) در لینوکس را به‌اجبار غیرفعال کند یا خیر.

این گزینه نباید از مقدار پیش‌فرض تغییر یابد مگر اینکه بدانید چه کاری انجام می‌دهید.

Default: smbd force process locks = no

force create mode (S)

این پارامتر مجموعه‌ای از مجوزهای بیتی حالت یونیکس (UNIX mode bit permissions) را مشخص می‌کند که همیشه روی فایلی که توسط سامبا ایجاد می‌شود تنظیم خواهند شد. این کار با عمل بیتی «OR» کردن این بیت‌ها روی بیت‌های حالت فایلی که در حال ایجاد است انجام می‌شود. پیش‌فرض این پارامتر (در مبنای هشت) 000 است. حالت‌های موجود در این پارامتر پس از اعمال ماسک تعیین‌شده در پارامتر create mask، به‌صورت بیتی با حالت فایل «OR» می‌شوند.

مثال زیر تمام فایل‌های تازه ایجادشده را وادار می‌کند که مجوزهای خواندن و اجرا برای «group» و «other» و همچنین بیت‌های خواندن/نوشتن/اجرا برای «user» را داشته باشند.

Default: force create mode = 0000

Example: force create mode = 0755

force directory mode (S)

این پارامتر مجموعه‌ای از مجوزهای بیتی حالت یونیکس را مشخص می‌کند که همیشه روی دایرکتوری ایجادشده توسط سامبا تنظیم خواهند شد. این کار با عمل بیتی «OR» کردن این بیت‌ها روی بیت‌های حالت دایرکتوری در حال ایجاد انجام می‌شود. مقدار پیش‌فرض این پارامتر (در مبنای هشت) 0000 است که هیچ بیت مجوز اضافی به دایرکتوری ایجادشده اضافه نخواهد کرد. این عملیات پس از اعمال ماسک حالت در پارامتر directory mask انجام می‌شود.

مثال زیر تمام دایرکتوری‌های ایجادشده را وادار می‌کند که مجوزهای خواندن و اجرا برای «group» و «other» و همچنین بیت‌های خواندن/نوشتن/اجرا برای «user» را داشته باشند.

Default: force directory mode = 0000

Example: force directory mode = 0755

force directory security mode (S)

این پارامتر در Samba 4.0.0 حذف شده است.

No default

group

این پارامتر مترادفی برای force group است.

force group (S)

این پارامتر یک نام گروه یونیکس را مشخص می‌کند که به عنوان گروه اصلی (primary group) پیش‌فرض برای همه کاربرانی که به این سرویس متصل می‌شوند تعیین خواهد شد. این امر برای به‌اشتراک‌گذاری فایل‌ها با اطمینان از اینکه تمام دسترسی‌ها به فایل‌های موجود در سرویس از گروه نام‌برده برای بررسی مجوزهای خود استفاده می‌کنند، مفید است. بدین ترتیب، مدیر سامبا می‌تواند با اختصاص مجوزهای این گروه به فایل‌ها و دایرکتوری‌های موجود در این سرویس، اشتراک‌گذاری این فایل‌ها را محدود یا مجاز کند.

در Samba 2.0.5 و بالاتر این پارامتر عملکرد گسترش‌یافته‌ای به این صورت دارد: اگر نام گروه ذکرشده در اینجا با نویسه «+» شروع شود، تنها در صورتی گروه اصلی پیش‌فرض کاربرِ جاریِ متصل به اشتراک به این گروه تعیین می‌شود که آن کاربر پیشاپیش عضو آن گروه باشد. این به مدیر سیستم امکان می‌دهد تا تعیین کند تنها کاربرانی که در حال حاضر در یک گروه خاص عضو هستند، فایل‌هایی با مالکیت گروهی تنظیم‌شده روی آن گروه ایجاد کنند. این امر دقت بالاتری را در تخصیص مالکیت فراهم می‌کند. برای مثال، تنظیم force group = +sys بدین معناست که تنها کاربرانی که از قبل عضو گروه sys هستند، هنگام دسترسی به این اشتراک سامبا، گروه اصلی پیش‌فرض آن‌ها به sys تغییر خواهد یافت. سایر کاربران گروه اصلی عادی خود را حفظ خواهند کرد.

اگر پارامتر force user نیز تنظیم شده باشد، گروه مشخص‌شده در force group بر گروه اصلی تعیین‌شده در force user ارجحیت خواهد داشت.

Default: force group =

Example: force group = agroup

force printername (S)

هنگام چاپ از ویندوز NT (یا جدیدتر)، هر چاپگر در smb.conf دو نام مرتبط دارد که می‌توانند توسط کلاینت استفاده شوند. نام اول، نام اشتراک (یا shortname) تعریف‌شده در smb.conf است. این تنها نام چاپگری است که برای کلاینت‌های ویندوز 9x در دسترس است. نام دومی که با یک چاپگر در ارتباط است را می‌توان هنگام مرور پوشه "Printers" (یا "Printers and Faxes") در سرور سامبا مشاهده کرد. به این نام به سادگی printername گفته می‌شود (نباید با گزینه printer name اشتباه گرفته شود).

هنگام تخصیص یک درایور جدید به چاپگر در یک سرور چاپ سازگار با ویندوز مانند سامبا، کلاینت ویندوز نام چاپگر را تغییر می‌دهد تا با نام درایور بارگذاری‌شده تطابق داشته باشد. این امر در صورتی که چندین چاپگر به یک درایور متصل باشند می‌تواند منجر به سردرگمی کاربران شود. برای جلوگیری از اینکه سامبا اجازه دهد printername چاپگر با نام اشتراک (sharename) تعریف‌شده در smb.conf تفاوت داشته باشد، مقدار force printername = yes را تنظیم کنید.

توجه داشته باشید که فعال‌سازی این پارامتر ممکن است بر مهاجرت چاپگرها از یک سرور ویندوز به سامبا تأثیر بگذارد، زیرا ویندوز راهی برای اجبار به یکسان بودن نام اشتراک و printername ندارد.

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

Default: force printername = no

force security mode (S)

این پارامتر در Samba 4.0.0 حذف شده است.

No default

force unknown acl user (S)

اگر این پارامتر تنظیم شود، یک ACL مربوط به Windows NT که شامل یک SID ناشناخته (توصیف‌گر امنیت، یا نمایانگر شناسه کاربر یا گروه) به عنوان مالک یا گروه مالک فایل باشد، بدون ایجاد پیام هشدار (به‌صورت خاموش) به uid یا gid یونیکسی کاربر متصل فعلی نگاشت می‌شود.

این پارامتر به‌گونه‌ای طراحی شده است که به کلاینت‌های Windows NT اجازه دهد فایل‌ها و پوشه‌های حاوی ACLهایی را که به‌صورت محلی روی ماشین کلاینت ایجاد شده‌اند و فقط شامل کاربران محلی همان ماشین هستند (نه کاربران دامنه)، در سرور سامبا کپی کنند (معمولاً با XCOPY /O) و شناسه کاربر و شناسه گروه ناشناخته مالک فایل به کاربر متصل فعلی نگاشت شود. این مورد تنها زمانی می‌تواند به‌درستی برطرف شود که winbindd اجازه نگاشت دلخواه از هر SID مربوط به Windows NT به یک uid یا gid یونیکسی را بدهد.

هنگامی که دستور XCOPY /O خطای ACCESS_DENIED می‌دهد، استفاده از این پارامتر را امتحان کنید.

Default: force unknown acl user = no

force user (S)

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

این نام کاربری تنها پس از برقراری اتصال به کار گرفته می‌شود. بنابراین کلاینت‌ها همچنان باید به عنوان یک کاربر معتبر متصل شده و یک گذرواژه معتبر ارائه دهند. پس از برقراری اتصال، صرف‌نظر از این که کلاینت با چه نام کاربری متصل شده است، تمام عملیات‌های فایلی به عنوان «کاربر اجباری» (forced user) انجام خواهد شد. این ویژگی می‌تواند بسیار مفید باشد.

در Samba 2.0.5 و بالاتر، این پارامتر همچنین باعث می‌شود گروه اصلیِ کاربرِ اجباری، به عنوان گروه اصلی برای تمامی فعالیت‌های فایلی استفاده شود. پیش از نسخه 2.0.5، گروه اصلی همان گروه اصلیِ کاربرِ متصل‌شونده باقی می‌ماند (که این یک باگ بود).

Default: force user =

Example: force user = auser

fss: prune stale (G)

در صورت فعال بودن، سرور File Server Remote VSS Protocol (FSRVP) سامبا هنگام راه‌اندازی تمام اسنپ‌شات‌های ایجادشده توسط FSRVP را بررسی کرده و هرگونه وضعیت مربوطه (شامل تعاریف اشتراک) را برای مسیرهای ناموجود اسنپ‌شات حذف می‌نماید.

Default: fss: prune stale = no

Example: fss: prune stale = yes

fss: sequence timeout (G)

سرور پروتکل File Server Remote VSS Protocol (FSRVP) شامل یک زمان‌سنج توالی پیام است تا از پاک‌سازی در صورت قطع غیرمنتظره اتصال کلاینت اطمینان حاصل شود. این پارامتر زمان وقفه (timeout) پیش‌فرض بین عملیات‌های FSRVP را بازنویسی می‌کند. زمان‌های وقفه FSRVP را می‌توان با مقدار 0 به‌طور کامل غیرفعال کرد.

Default: fss: sequence timeout = 180 or 1800, depending on operation

Example: fss: sequence timeout = 0

fstype (S)

این پارامتر به مدیر سیستم اجازه می‌دهد رشته‌ای را پیکربندی کند که نوع سیستم‌فایل مورد استفاده یک اشتراک را مشخص می‌سازد؛ این رشته زمانی که یک کلاینت نوع سیستم‌فایل یک اشتراک را استعلام می‌کند توسط smbd(8) گزارش می‌شود. نوع پیش‌فرض برای سازگاری با Windows NT برابر با NTFS است، اما در صورت نیاز می‌توان آن را به رشته‌های دیگری مانند Samba یا FAT تغییر داد.

Default: fstype = NTFS

Example: fstype = Samba

get quota command (G)

دستور get quota command تنها زمانی باید استفاده شود که هیچ API سیستم‌عاملی از سوی سیستم‌عامل در دسترس نباشد که سامبا بتواند از آن استفاده کند.

این گزینه تنها در صورتی در دسترس است که سامبا همراه با پشتیبانی از سهمیه‌بندی (quotas) کامپایل شده باشد.

این پارامتر باید مسیر اسکریپتی را مشخص کند که اطلاعات سهمیه‌بندی (quota) را برای کاربر/گروه مشخص‌شده در پارتیشنی که دایرکتوری تعیین‌شده روی آن قرار دارد، استعلام می‌کند.

به چنین اسکریپتی ۳ آرگومان داده می‌شود:

•دایرکتوری
•نوع استعلام
•‏uid کاربر یا gid گروه
دایرکتوری در واقع اکثراً فقط «.» است - باید نسبت به دایرکتوری کاری فعلی در نظر گرفته شود که اسکریپت نیز می‌تواند آن را استعلام کند.

نوع استعلام می‌تواند یکی از موارد زیر باشد:

•1 - سهمیه‌بندی‌های کاربر
•2 - سهمیه‌بندی‌های پیش‌فرض کاربر (uid = -1)
•3 - سهمیه‌بندی‌های گروه
•4 - سهمیه‌بندی‌های پیش‌فرض گروه (gid = -1)
این اسکریپت باید یک خط را با فاصله میان ستون‌ها به عنوان خروجی چاپ کند. ستون‌های چاپ‌شده باید به شرح زیر باشند:
•1 - فلگ‌های سهمیه‌بندی (0 = بدون quota، 1 = سهمیه‌بندی فعال، 2 = سهمیه‌بندی فعال و اعمال‌شده)
•2 - تعداد بلوک‌های در حال حاضر استفاده‌شده
•3 - تعداد بلوک‌های حد نرم (softlimit)
•4 - تعداد بلوک‌های حد سخت (hardlimit)
•5 - تعداد inodeهای در حال حاضر استفاده‌شده
•6 - تعداد inodeهای حد نرم (softlimit)
•7 - تعداد inodeهای حد سخت (hardlimit)
•8 (اختیاری) - تعداد بایت‌ها در یک بلوک (پیش‌فرض 1024 است)
Default: get quota command =

Example: get quota command = /usr/local/sbin/query_quota

getwd cache (G)

این یک گزینه تنظیم کارایی (tuning) است. هنگامی که فعال باشد، یک الگوریتم کش‌گذاری برای کاهش زمان صرف‌شده در فراخوانی‌های getwd() استفاده خواهد شد. این امر می‌تواند تأثیر قابل‌توجهی بر کارایی داشته باشد، به‌ویژه زمانی که پارامتر wide links بر روی no تنظیم شده باشد.

Default: getwd cache = yes

gpo update command (G)

این گزینه دستوری را تعیین می‌کند که برای اعمال سیاست‌های GPO فراخوانی می‌شود. اسکریپت samba-gpupdate سیاست‌های System Access و Kerberos را بر روی KDC اعمال می‌کند. سیاست‌های System Access مقادیر minPwdAge، maxPwdAge، minPwdLength و pwdProperties را در samdb تنظیم می‌کنند. سیاست‌های Kerberos مقادیر kdc:service ticket lifetime، kdc:user ticket lifetime و kdc:renewal lifetime را در smb.conf تنظیم می‌نمایند.

Default: gpo update command = /build/samba/src/samba-4.24.6/source4/scripting/bin/samba-gpupdate

Example: gpo update command = /usr/local/sbin/gpoupdate

guest account (G)

این یک نام کاربری است که برای دسترسی به سرویس‌هایی که با guest ok مشخص شده‌اند (پایین را ببینید) استفاده خواهد شد. هرگونه امتیازاتی که این کاربر دارد در اختیار هر کلاینتی که به سرویس مهمان متصل می‌شود قرار خواهد گرفت. این کاربر باید در فایل گذرواژه‌ها وجود داشته باشد، اما نیازی به یک ورود (login) معتبر ندارد. حساب کاربری "ftp" معمولاً انتخاب مناسبی برای این پارامتر است.

در برخی سیستم‌ها ممکن است حساب مهمان پیش‌فرض "nobody" قادر به چاپ نباشد. در این حالت از حساب دیگری استفاده کنید. شما باید با تلاش برای ورود به‌عنوان کاربر مهمان خود (احتمالاً با استفاده از دستور su - ) و تلاش برای چاپ با دستور چاپ سیستم مانند lpr(1) یا lp(1) این موضوع را آزمایش کنید.

این پارامتر ماکروهای % را نمی‌پذیرد، زیرا بخش‌های زیادی از سیستم برای عملکرد صحیح نیاز دارند که این مقدار ثابت بماند.

Default: guest account = nobody # default can be changed at compile-time

Example: guest account = ftp

public

این پارامتر مترادفی برای guest ok است.

guest ok (S)

اگر این پارامتر برای یک سرویس برابر با yes باشد، برای اتصال به سرویس نیازی به گذرواژه نخواهد بود. امتیازات، همان امتیازاتِ guest account خواهند بود.

این پارامتر مزایای تنظیم restrict anonymous = 2 را بی‌اثر می‌کند.

برای اطلاعات بیشتر درباره این گزینه، بخش مربوط به security در ادامه را ببینید.

Default: guest ok = no

only guest

این پارامتر مترادفی برای guest only است.

guest only (S)

اگر این پارامتر برای یک سرویس برابر با yes باشد، آن‌گاه تنها اتصالات مهمان به این سرویس مجاز خواهند بود. در صورتی که guest ok برای سرویس تنظیم نشده باشد، این پارامتر هیچ تأثیری نخواهد داشت.

برای اطلاعات بیشتر درباره این گزینه، بخش مربوط به security در ادامه را ببینید.

Default: guest only = no

hide dot files (S)

این یک پارامتر بولی است که کنترل می‌کند آیا فایل‌هایی که با یک نقطه آغاز می‌شوند به‌عنوان فایل‌های مخفی نشان داده شوند یا خیر.

Default: hide dot files = yes

hide files (S)

این فهرستی از فایل‌ها یا دایرکتوری‌هایی است که قابل رؤیت نیستند ولی قابل دسترسی می‌باشند. ویژگی 'hidden' در DOS به هر فایل یا دایرکتوری منطبق با این الگو اعمال می‌شود.

هر مدخل در فهرست باید با یک '/' جدا شود، که اجازه می‌دهد فاصله‌ها نیز در مدخل گنجانده شوند. مانند کاراکترهای عام (wildcards) در DOS، می‌توان از '*' و '?' برای مشخص کردن چندین فایل یا دایرکتوری استفاده کرد.

همچنین می‌توان از hide files به‌عنوان یک گزینه پارامتری استفاده کرد که در آن NAME در

hide files : NAME =

یک نام کاربری یا گروه را با همان نحو valid users مشخص می‌کند. این شکل پارامتری می‌تواند چندین بار برای کاربران یا گروه‌های مختلف مشخص شود. این بدان معناست که مقادیر "hide files : NAME" که هم در بخش [global] و هم در بخش اشتراک تنظیم شده‌اند با یکدیگر جمع می‌شوند، در حالی که به‌طور معمول گزینه‌های تنظیم‌شده در یک بخش اشتراک، مقدار پیش‌فرض در بخش [global] را بازنویسی می‌کنند.

هر مدخل باید یک مسیر Unix باشد نه یک مسیر DOS، و نباید شامل جداکننده دایرکتوری Unix یعنی '/' باشد.

توجه داشته باشید که گزینه حساسیت به کوچکی و بزرگی حروف (case sensitivity) در پنهان کردن فایل‌ها اعمال می‌شود.

تنظیم این پارامتر بر کارایی Samba تأثیر خواهد گذاشت، چرا که مجبور است هنگام پیمایش فایل‌ها و دایرکتوری‌ها، تطابق همه آن‌ها را بررسی کند.

مثال نشان داده شده بر اساس فایل‌هایی است که کلاینت SMB مکینتاش (DAVE) ارائه‌شده توسط Thursby برای مصارف داخلی ایجاد می‌کند، و همچنین تمامی فایل‌هایی که با نقطه آغاز می‌شوند را مخفی نگه می‌دارد.

یک مثال از کاربرد این پارامتر:

hide files = /.*/DesktopFolderDB/TrashFor%m/resource.frk/
; مخفی کردن برخی فایل‌ها برای همه و برخی برای کاربران و گروه‌های خاص
hide files = /hideforall1/
hide files : USER = /hidetoforuser/
hide files : GROUP = /hideforgroup/
hide files : UNIVERSITY\Alumnis = /somefile.txt/
hide files : john@university.org = /anotherfile.txt/
hide files : S-1-5-21-123-456-789-1000 = /secretfile.txt/

Default: hide files = # no file are hidden

hide new files timeout (S)

تنظیم این پارامتر روی مقداری غیر از 0، فایل‌هایی را که کمتر از N ثانیه پیش تغییر یافته‌اند مخفی می‌کند.

این گزینه می‌تواند برای بارهای کاری از نوع صف ورود/پردازش (ingest/process queue) استفاده شود. یک برنامه پردازشی باید فقط فایل‌هایی را ببیند که قطعاً کامل شده‌اند. از آن‌جا که بسیاری از برنامه‌ها کنترل جریان کاری خارجی مناسبی ندارند، این روش می‌تواند راهی برای اطمینان از این باشد که پردازش با فرآیند ورود فایل تداخل پیدا نمی‌کند.

Default: hide new files timeout = 0

hide special files (S)

این پارامتر از مشاهده فایل‌های ویژه مانند سوکت‌ها، دستگاه‌ها و FIFOها توسط کلاینت‌ها در فهرست دایرکتوری‌ها جلوگیری می‌کند.

Default: hide special files = no

hide unreadable (S)

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

لطفاً توجه داشته باشید که فعال‌سازی این گزینه می‌تواند سرعت فهرست کردن دایرکتوری‌های بزرگ را به‌طور چشمگیری کاهش دهد. Samba باید ACLهای تمامی اعضای دایرکتوری را ارزیابی کند، که می‌تواند پردازش بسیار سنگینی باشد.

Default: hide unreadable = no

hide unwriteable files (S)

این پارامتر از مشاهده وجود فایل‌هایی که قابل نوشتن نیستند توسط کلاینت‌ها جلوگیری می‌کند. پیش‌فرض آن غیرفعال (off) است. توجه داشته باشید که دایرکتوری‌های غیرقابل نوشتن طبق معمول نمایش داده می‌شوند.

لطفاً توجه داشته باشید که فعال‌سازی این گزینه می‌تواند سرعت فهرست کردن دایرکتوری‌های بزرگ را به‌طور چشمگیری کاهش دهد. Samba باید ACLهای تمامی اعضای دایرکتوری را ارزیابی کند، که می‌تواند پردازش بسیار سنگینی باشد.

Default: hide unwriteable files = no

honor change notify privilege (S)

از این گزینه می‌توان برای به‌کارگیری امتیاز اعلان تغییرات (change notify privilege) استفاده کرد. به‌طور پیش‌فرض، نتایج اعلان (notify) در برابر مجوزهای سیستم فایل بررسی نمی‌شوند.

اگر "honor change notify privilege" فعال باشد، کاربر تنها در صورتی نتایج اعلان را دریافت خواهد کرد که دارای امتیاز change notify یا دسترسی‌های کافی در سیستم فایل باشد. اگر کاربری دارای امتیاز change notify باشد، تمام نتایج اعلان درخواستی را دریافت خواهد کرد، حتی اگر کاربر دسترسی‌های لازم را در سیستم فایل نداشته باشد.

Default: honor change notify privilege = no

host msdfs (G)

اگر روی yes تنظیم شود، Samba به‌عنوان یک سرور Dfs عمل کرده و به کلاینت‌های آگاه از Dfs اجازه می‌دهد درخت‌های Dfs میزبانی‌شده روی سرور را مرور کنند.

همچنین پارامتر سطح اشتراک msdfs root را ببینید. برای اطلاعات بیشتر در مورد راه‌اندازی درخت Dfs در Samba، به فصل MSFDS در کتاب Samba3-HOWTO مراجعه کنید.

Default: host msdfs = yes

hostname lookups (G)

مشخص می‌کند که آیا Samba باید از جستجوهای نام میزبان (که پرهزینه هستند) استفاده کند یا در عوض از آدرس‌های IP بهره ببرد. یک نمونه از مواردی که در حال حاضر جستجوی نام میزبان در آن استفاده می‌شود، هنگام بررسی hosts deny و hosts allow است.

Default: hostname lookups = no

Example: hostname lookups = yes

allow hosts

این پارامتر مترادفی برای hosts allow است.

hosts allow (S)

مترادفی برای این پارامتر allow hosts است.

این پارامتر مجموعه‌ای از میزبان‌ها است که با کاما، فاصله یا تب از هم جدا شده‌اند و مجاز به دسترسی به یک سرویس هستند.

اگر در بخش [global] مشخص شود، بدون توجه به اینکه آیا یک سرویس مجزا تنظیم متفاوتی دارد یا خیر، بر روی تمامی سرویس‌ها اعمال خواهد شد.

می‌توانید میزبان‌ها را با نام یا شماره IP مشخص کنید. به‌عنوان مثال، می‌توانید دسترسی را فقط به میزبان‌های یک زیرشبکه کلاس C با عبارتی شبیه به allow hosts = 150.203.5. محدود کنید. نحو کامل این فهرست در صفحه راهنمای hosts_access(5) توصیف شده است. توجه داشته باشید که این صفحه راهنما ممکن است در سیستم شما وجود نداشته باشد، بنابراین یک توضیح مختصر نیز در اینجا ارائه می‌شود.

توجه داشته باشید که آدرس localhost یعنی 127.0.0.1 همواره اجازه دسترسی خواهد داشت، مگر اینکه به‌طور مشخص توسط گزینه hosts deny رد شده باشد.

همچنین اگر سیستم شما از netgroupها پشتیبانی کند، می‌توانید میزبان‌ها را با جفت‌های network/netmask و با نام‌های netgroup مشخص کنید. کلیدواژه EXCEPT نیز می‌تواند برای محدود کردن یک فهرست دارای کاراکتر عام (wildcard) استفاده شود. مثال‌های زیر می‌توانند کمک‌کننده باشند:

مثال ۱: اجازه به تمام IPها در 150.203.*.*؛ به‌جز یکی

hosts allow = 150.203. EXCEPT 150.203.6.66

مثال ۲: اجازه به میزبان‌هایی که با network/netmask داده‌شده مطابقت دارند

hosts allow = 150.203.15.0/255.255.255.0

مثال ۳: اجازه به چند میزبان

hosts allow = lapland, arvidsjaur

مثال ۴: اجازه فقط به میزبان‌های موجود در گروه شبکه NIS با نام "foonet"، اما منع دسترسی از یک میزبان خاص

hosts allow = @foonet

hosts deny = pirate


نکته
توجه داشته باشید که دسترسی همچنان نیازمند گذرواژه‌های مناسب در سطح کاربر است.
صفحه راهنمای testparm(1) را برای روشی جهت آزمایش دسترسی میزبان خود بررسی کنید تا ببینید آیا مطابق انتظار شما عمل می‌کند یا خیر.

Default: hosts allow = # none (i.e., all hosts permitted access)

Example: hosts allow = 150.203.5. myhost.mynet.edu.au

deny hosts

این پارامتر مترادفی برای hosts deny است.

hosts deny (S)

نقطه مقابل hosts allow است - میزبان‌های فهرست‌شده در اینجا اجازه دسترسی به سرویس‌ها را ندارند، مگر اینکه سرویس‌های خاص فهرست‌های مستقل خود را برای بازنویسی این فهرست داشته باشند. در صورت تداخل فهرست‌ها، فهرست allow اولویت دارد.

در صورتی که لازم باشد همه میزبان‌ها به‌طور پیش‌فرض رد شوند، از کلیدواژه ALL (یا ماسک شبکه 0.0.0.0/0) استفاده کرده و سپس در پارامتر hosts allow = hosts allow میزبان‌هایی را که باید اجازه دسترسی داشته باشند به‌صورت صریح مشخص کنید.

Default: hosts deny = # none (i.e., no hosts specifically excluded)

Example: hosts deny = 150.203.4. badhost.mynet.edu.au

idmap backend (G)

گزینه idmap backend یک رابط افزونه‌ای (پلاگین) برای Winbind فراهم می‌کند تا از بک‌اندهای مختلف برای ذخیره جداول نگاشت SID/uid/gid استفاده کند.

این گزینه بک‌اند پیش‌فرضی را مشخص می‌کند که در صورت نبود پیکربندی خاصی استفاده می‌شود، اما اکنون به نفع نگارش جدید idmap config * : backend منسوخ شده است.

Default: idmap backend = tdb

idmap cache time (G)

این پارامتر تعداد ثانیه‌هایی را مشخص می‌کند که رابط idmap مربوط به Winbind نتایج مثبت پرس‌وجوهای SID/uid/gid را کَش (cache) می‌کند. به‌طور پیش‌فرض، Samba این نتایج را به مدت یک هفته کَش خواهد کرد.

Default: idmap cache time = 604800

idmap config DOMAIN : OPTION (G)

نگاشت شناسه (ID mapping) در Samba، نگاشت بین SIDهای Windows و شناسه‌های کاربر و گروه در Unix است. این کار توسط Winbindd با یک رابط افزونه‌ای قابل پیکربندی انجام می‌شود. نگاشت شناسه در Samba با گزینه‌هایی پیکربندی می‌شود که با پیشوند idmap config شروع می‌شوند. یک گزینه idmap شامل پیشوند idmap config، به همراه یک نام دامین یا نویسه ستاره (*)، یک دونقطه، و نام یک تنظیم idmap برای دامین انتخاب‌شده است.

بنابراین پیکربندی idmap به گروه‌هایی تقسیم می‌شود: یک گروه برای هر دامین که باید پیکربندی شود، و یک گروه با نویسه ستاره به جای نام دامین واقعی، که پیکربندی پیش‌فرضی را مشخص می‌کند که برای در بر گرفتن تمام دامین‌هایی به کار می‌رود که پیکربندی صریح idmap مختص به خود را ندارند.

سه گزینه عمومی در دسترس است:

backend = backend_name

این گزینه نام افزونه idmap را برای استفاده به عنوان بک‌اند SID/uid/gid برای این دامین مشخص می‌کند. بک‌اندهای استاندارد عبارتند از: tdb (idmap_tdb(8))، tdb2 (idmap_tdb2(8))، ldap (idmap_ldap(8))، rid (idmap_rid(8))، hash (idmap_hash(8))، autorid (idmap_autorid(8))، ad (idmap_ad(8)) و nss (idmap_nss(8)). صفحات راهنمای مربوطه حاوی جزئیات هستند، اما در اینجا خلاصه‌ای آورده شده است.

سه مورد اول نگاشت‌های خود را با استفاده از شمارنده‌های داخلی unixid ایجاد کرده و نگاشت‌ها را در یک پایگاه داده ذخیره می‌کنند. این موارد برای استفاده در پیکربندی پیش‌فرض idmap مناسب هستند. بک‌اندهای rid و hash از یک محاسبه کاملاً الگوریتمی برای تعیین unixid برای یک SID استفاده می‌کنند. ماژول autorid ترکیبی از بک‌اندهای tdb و rid است. این ماژول برای هر دامینی که با آن مواجه می‌شود محدوده‌هایی ایجاد کرده و سپس از الگوریتم rid برای هر یک از این دامین‌های به‌طور خودکار پیکربندی‌شده به‌صورت مجزا استفاده می‌کند. بک‌اند ad از شناسه‌های unix ذخیره‌شده در Active Directory از طریق افزونه‌های استاندارد اسکیما (schema extensions) استفاده می‌کند. بک‌اند nss تنظیم استاندارد winbindd را معکوس کرده و شناسه‌های unix را از طریق نام‌ها از nsswitch دریافت می‌کند که می‌تواند در یک ساختار ldap مفید باشد.

range = low - high

محدوده متناظر و معتبر uid و gid را که بک‌اند برای آن صاحب‌اختیار (authoritative) است، تعریف می‌کند. برای بک‌اندهای تخصیص‌دهنده، این گزینه همچنین ابتدا و انتهای محدوده را برای تخصیص شناسه‌های یکتای جدید تعیین می‌کند.

سرویس winbind از این پارامتر برای یافتن بک‌اندی که برای نگاشت شناسه unix به SID صاحب‌اختیار است استفاده می‌کند، بنابراین باید برای هر دامین که به‌طور جداگانه پیکربندی شده و برای پیکربندی پیش‌فرض تنظیم شود. محدوده‌های پیکربندی‌شده باید دوبه‌دو مجزا باشند.

توجه داشته باشید که مقدار low با گزینه min domain uid برهم‌کنش دارد!

read only = yes|no

این گزینه می‌تواند برای بردن بک‌اندهای نوشتنی tdb، tdb2 و ldap به حالت فقط‌خواندنی استفاده شود. این می‌تواند به عنوان مثال در مواردی مفید باشد که یک پایگاه داده از پیش پر شده وجود دارد که نباید به‌طور خودکار گسترش یابد.

مثال زیر نحوه پیکربندی بک‌اند idmap_ad(8) را برای دامین CORP و بک‌اند idmap_tdb(8) را برای سایر دامین‌ها نشان می‌دهد. این پیکربندی فرض می‌کند که مدیر CORP شناسه‌های unix زیر ۱۰۰۰۰۰۰ را از طریق افزونه‌های SFU اختصاص می‌دهد و قرار است winbind از یک میلیون مدخل بعدی برای نگاشت‌های خود از دامین‌های مورد اعتماد و برای مثال برای گروه‌های محلی استفاده کند.

idmap config * : backend = tdb
idmap config * : range = 1000000-1999999
idmap config CORP : backend  = ad
idmap config CORP : range = 1000-999999

No default

winbind gid

این پارامتر مترادفی برای idmap gid است.

idmap gid (G)

پارامتر idmap gid محدوده شناسه‌های گروه را برای پیکربندی پیش‌فرض idmap تعیین می‌کند. این پارامتر اکنون به نفع idmap config * : range منسوخ شده است.

گزینه idmap config را ببینید.

Default: idmap gid =

Example: idmap gid = 10000-20000

idmap negative cache time (G)

این پارامتر تعداد ثانیه‌هایی را مشخص می‌کند که رابط idmap مربوط به Winbind نتایج منفی پرس‌وجوهای SID/uid/gid را کَش خواهد کرد.

Default: idmap negative cache time = 120

winbind uid

این پارامتر مترادفی برای idmap uid است.

idmap uid (G)

پارامتر idmap uid محدوده شناسه‌های کاربر را برای پیکربندی پیش‌فرض idmap تعیین می‌کند. این پارامتر اکنون به نفع idmap config * : range منسوخ شده است.

گزینه idmap config را ببینید.

Default: idmap uid =

Example: idmap uid = 10000-20000

include (S)

این گزینه به شما اجازه می‌دهد تا یک فایل پیکربندی را درون فایلی دیگر بگنجانید (include کنید). فایل دقیقاً و واو‌به‌واو گنجانده می‌شود، گویی در همان محل تایپ شده است.

این گزینه جایگزینی‌های استاندارد متغیرها را می‌پذیرد، به جز %u، %P و %S.

پارامتر include = registry معنای ویژه‌ای دارد: این پارامتر فایلی به نام registry را از دایرکتوری کاری جاری وارد نمی‌کند، بلکه گزینه‌های پیکربندی سراسری را از رجیستری می‌خواند. برای جزئیات به بخش پیکربندی مبتنی بر رجیستری مراجعه کنید. توجه داشته باشید که این گزینه اشتراک‌های رجیستری را به‌طور خودکار فعال می‌کند.

Default: include =

Example: include = /usr/local/samba/lib/admin_smb.conf

include system krb5 conf (G)

تنظیم این پارامتر روی no از گنجاندن فایل سیستمی /etc/krb5.conf در فایل krb5.conf ایجادشده توسط winbind جلوگیری می‌کند. همچنین پارامتر create krb5 conf را ببینید. این گزینه فقط برای سامانه‌های Samba که با MIT Kerberos کامپایل شده‌اند کاربرد دارد.

Default: include system krb5 conf = yes

inherit acls (S)

این پارامتر تنها برای سیستم‌فایل‌هایی کاربرد دارد که از NFS4 ACL استاندارد پشتیبانی نکرده و فقط از پیاده‌سازی پیش‌نویس POSIX ACL پشتیبانی می‌کنند و مانند بیشتر سیستم‌فایل‌ها در لینوکس، ACLهای پیش‌فرض را پیاده‌سازی می‌کنند. از این گزینه می‌توان برای اطمینان از این امر استفاده کرد که در صورت وجود ACLهای پیش‌فرض در دایرکتوری‌های والد، هنگام ایجاد فایل یا زیردایرکتوری جدید در این دایرکتوری‌های والد، این ACLها همواره رعایت شوند. رفتار پیش‌فرض این است که از حالت unix مشخص‌شده در هنگام ایجاد دایرکتوری استفاده شود. فعال‌سازی این گزینه حالت unix را به 0777 تغییر می‌دهد و در نتیجه تضمین می‌کند که ACLهای پیش‌فرض دایرکتوری اعمال و منتقل شوند. توجه داشته باشید که استفاده از ماژول‌های VFS به نام‌های acl_xattr یا acl_tdb که داده‌های بومی Windows را به عنوان فراداده ذخیره می‌کنند، این گزینه را به‌طور خودکار برای هر اشتراکی که در آن بارگذاری شوند فعال می‌کند، زیرا آنها برای شبیه‌سازی صحیح Windows ACL به این گزینه نیاز دارند.

Default: inherit acls = no

inherit owner (S)

مالکیت فایل‌ها و دایرکتوری‌های جدید به‌طور معمول با uid مؤثر کاربر متصل‌شده تعیین می‌شود. این گزینه به مدیر Samba اجازه می‌دهد تعیین کند که مالکیت فایل‌ها و دایرکتوری‌های جدید باید توسط مالکیت دایرکتوری والد کنترل شود.

گزینه‌های معتبر عبارتند از:

•no - هم مالک Windows (SID) و هم مالک UNIX (uid) فایل، بر اساس هویت کاربری که فایل را ایجاد کرده است تعیین می‌شوند.
•windows and unix - مالک Windows (SID) و مالک UNIX (uid) فایل‌ها و دایرکتوری‌های جدید روی مالک متناظر در دایرکتوری والد تنظیم می‌شوند.
•yes - مترادفی برای windows and unix.
•unix only - فقط مالک UNIX روی مالک UNIX دایرکتوری والد تنظیم می‌شود.
سناریوهای متداولی که این رفتار در آنها مفید است شامل پیاده‌سازی صندوق‌های تحویل فایل (drop-boxes) است، جایی که کاربران می‌توانند فایل‌ها را ایجاد و ویرایش کنند اما امکان حذف آنها را ندارند، و همچنین حصول اطمینان از اینکه فایل‌های جدید ایجادشده در دایرکتوری پروفایل گردشی (roaming profile) کاربر واقعاً متعلق به همان کاربر باشند.

گزینه unix only پیوند بین مالک Windows یک فایل و مالک UNIX آن را عملاً از بین می‌برد. به عنوان یک نتیجه منطقی، در این حالت تنظیم مالک Windows یک فایل، مالک UNIX آن را تغییر نمی‌دهد. استفاده از این حالت معمولاً باید با یک فضای ذخیره‌سازی پشتیبان ترکیب شود که بتواند مدل کامل NT ACL را بدون تأثیر بر مجوزهای POSIX شبیه‌سازی کند، مانند ماژول acl_xattr VFS همراه با acl_xattr:ignore system acls = yes. این پیکربندی می‌تواند برای شبیه‌سازی سهمیه‌بندی دایرکتوری‌ها (folder quotas) در مواردی که فایل‌ها فقط از طریق SMB (بدون افزونه‌های UNIX) ارائه می‌شوند به کار رود. مالک UNIX یک دایرکتوری به‌طور محلی تنظیم شده و به تمام زیردایرکتوری‌ها و فایل‌ها به ارث می‌رسد، و همه آنها از همان سهمیه مصرف می‌کنند.

Default: inherit owner = no

inherit permissions (S)

مجوزهای دسترسی روی فایل‌ها و دایرکتوری‌های جدید به‌طور معمول توسط create mask، directory mask، force create mode و force directory mode تعیین می‌شوند، اما پارامتر بولی inherit permissions این رفتار را بازنویسی (override) می‌کند.

دایرکتوری‌های جدید حالت (mode) دایرکتوری والد را به ارث می‌برند، از جمله بیت‌هایی مانند setgid.

فایل‌های جدید بیت‌های خواندن/نوشتن (read/write) خود را از دایرکتوری والد به ارث می‌برند. بیت‌های اجرایی (execute) آن‌ها طبق معمول همچنان توسط map archive، map hidden و map system تعیین می‌شوند.

توجه داشته باشید که بیت setuid هرگز از طریق ارث‌بری تنظیم نمی‌شود (کد برنامه صراحتاً از این کار جلوگیری می‌کند).

این پارامتر به‌ویژه در سیستم‌های بزرگ با کاربران زیاد (شاید چندین هزار کاربر) برای امکان استفاده انعطاف‌پذیر هر کاربر از یک اشتراک واحد [homes] بسیار مفید است.

Default: inherit permissions = no

init logon delay (G)

این پارامتر میزان تأخیر را بر حسب میلی‌ثانیه برای میزبان‌هایی مشخص می‌کند که برای samlogon اولیهٔ با تأخیر از طریق init logon delayed hosts پیکربندی شده‌اند.

Default: init logon delay = 100

init logon delayed hosts (G)

این پارامتر فهرستی از نام‌های میزبان، آدرس‌ها یا شبکه‌هایی را می‌گیرد که پاسخ اولیهٔ samlogon به آن‌ها باید با تأخیر ارسال شود (تا در صورت وجود، سایر DCها توسط ایستگاه‌های کاری XP ترجیح داده شوند).

میزان این تأخیر را می‌توان با پارامتر init logon delay مشخص کرد.

Default: init logon delayed hosts =

Example: init logon delayed hosts = 150.203.5. myhost.mynet.de

interfaces (G)

این گزینه به شما امکان می‌دهد فهرست پیش‌فرض رابط‌های شبکه‌ای را که سامبا برای مرور (browsing)، ثبت نام و سایر ترافیک‌های NetBIOS over TCP/IP (NBT) استفاده می‌کند، بازنویسی کنید. به‌طور پیش‌فرض، سامبا فهرست تمام رابط‌های فعال را از هسته جویا می‌شود و از تمام رابط‌هایی که قابلیت پخش همگانی (broadcast) دارند، به جز 127.0.0.1، استفاده می‌کند.

این گزینه فهرستی از رشته‌های رابط شبکه را دریافت می‌کند. هر رشته می‌تواند به یکی از اشکال زیر باشد:

•یک نام رابط شبکه (مانند eth0). این نام می‌تواند شامل نویسه‌های عام شبیه به پوسته باشد، بنابراین eth* با هر رابطی که با زیررشتهٔ "eth" آغاز شود تطابق خواهد داشت
•یک آدرس IP. در این حالت، netmask از فهرست رابط‌های دریافت‌شده از هسته تعیین می‌شود
•یک جفت IP/mask.
•یک جفت broadcast/mask.
پارامترهای "mask" می‌توانند طول بیت (مانند 24 برای یک شبکهٔ کلاس C) یا یک netmask کامل به صورت ده‌دهی نقطه‌دار باشند.

پارامترهای "IP" بالا می‌توانند یک آدرس IP ده‌دهی نقطه‌دار کامل یا یک نام میزبان باشند که از طریق سازوکارهای استاندارد تحلیل نام میزبان سیستم‌عامل بررسی و پیدا خواهد شد.

به‌طور پیش‌فرض، سامبا تمام رابط‌های فعالی را که قابلیت برودکست دارند، به جز آداپتور لوپ‌بک (آدرس IP 127.0.0.1)، فعال می‌کند.

به منظور پشتیبانی از پیکربندی‌های چندکانالهٔ SMB3 (SMB3 multi-channel)، دیمن smbd پارامترهای اضافی خاصی را متوجه می‌شود که می‌توانند پس از رابط اصلی با این نحو توسعه‌یافته اضافه شوند (توجه داشته باشید که استفاده از علامت نقل‌قول جهت مدیریت نویسه‌های ; و , الزامی است):

"interface[;key1=value1[,key2=value2[...]]]"

کلیدهای شناخته‌شده عبارتند از speed، capability، if_index و options. مقدار speed بر حسب بیت بر ثانیه مشخص می‌شود. قابلیت‌های شناخته‌شده RSS و RDMA هستند. مقدار if_index باید بااحتیاط استفاده شود: این مقادیر نباید با اندیس‌های استفاده‌شده توسط هسته تداخل داشته باشند. توجه داشته باشید که این گزینه‌ها عمدتاً برای آزمایش و توسعه در نظر گرفته شده‌اند تا استفاده در محیط‌های عملیاتی. دست‌کم در سیستم‌های لینوکس، این مقادیر باید به‌طور خودکار تشخیص داده شوند، اما این تنظیمات می‌توانند به عنوان آخرین راه‌حل در مواقعی که تشخیص خودکار کار نمی‌کند یا در دسترس نیست، به کار روند. مقادیر مشخص‌شده، مقادیر تشخیص‌داده‌شدهٔ خودکار را بازنویسی می‌کنند.

مقادیر مجاز برای options عبارتند از "dynamic" و "nodynamic". از این گزینه در ترکیب با تنظیم bind interfaces only استفاده کنید. مقدار "dynamic" را به کار ببرید تا smbd هنگام اضافه شدن یا حذف شدن آدرس‌های IP از رابط، سوکت‌های شنود را روی آن باز/بسته کند. مقدار "nodynamic" را برای نادیده گرفتن هرگونه رویداد افزودن/حذف IP در رابط به کار ببرید. لطفاً توجه داشته باشید که با حذف یک آدرس IP، اتصالات برقرار با آن آدرس IP نیز خاتمه می‌یابند (رفتار سنتی بر این بوده است که جریان TCP زنده نگه داشته شود).

توجه داشته باشید که باز و بسته کردن پویای سوکت‌های شنود تنها در برخی سیستم‌های عامل (در حال حاضر لینوکس) در دسترس است.

دو مثال اول زیر، سه رابط شبکه مربوط به دستگاه eth0 و آدرس‌های IP 192.168.2.10 و 192.168.3.10 را پیکربندی می‌کنند. ماسک شبکهٔ دو رابط آخر روی 255.255.255.0 تنظیم می‌شود.

سایر مثال‌ها نحوهٔ تعیین پارامترهای اضافی را برای هر رابط نشان می‌دهند. به کاربرد احتمالی "," و ";" دقت کنید که استفاده از علامت جفت‌نقل‌قول (double quoting) را ضروری می‌سازد.

Default: interfaces =

Example: interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0

Example: interfaces = eth0, 192.168.2.10/24; 192.168.3.10/255.255.255.0

Example: interfaces = "eth0;if_index=65,speed=1000000000,capability=RSS"

Example: interfaces = "lo;speed=1000000000" "eth0;capability=RSS"

Example: interfaces = "lo;speed=1000000000" , "eth0;capability=RSS"

Example: interfaces = "eth0;capability=RSS" , "rdma1;capability=RDMA" ; "rdma2;capability=RSS,capability=RDMA"

Example: interfaces = "eth0;options=dynamic"

invalid users (S)

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

نامی که با '@' آغاز شود، ابتدا به عنوان یک netgroup در NIS (در صورتی که سیستم شما از NIS پشتیبانی کند) و سپس در صورتی که نام در پایگاه دادهٔ netgroup در NIS یافت نشود، به عنوان یک گروه یونیکس تفسیر می‌شود.

نامی که با '+' آغاز شود، صرفاً از طریق رابط NSS getgrnam() با جستجو در پایگاه دادهٔ گروه‌های یونیکس تفسیر می‌گردد. نامی که با '&' آغاز شود، منحصراً با جستجو در پایگاه دادهٔ netgroup در NIS تفسیر خواهد شد (این امر مستلزم فعال بودن NIS در سیستم شما است). نویسه‌های '+' و '&' می‌توانند با هر ترتیبی در ابتدای نام به کار روند؛ بنابراین مقدار +&group به معنای بررسی پایگاه دادهٔ گروه‌های یونیکس و سپس پایگاه دادهٔ netgroup در NIS است، و مقدار &+group به معنای بررسی پایگاه دادهٔ netgroup در NIS و سپس پایگاه دادهٔ گروه‌های یونیکس است (مشابه پیشوند '@').

نام سرویس فعلی به جای %S جایگزین می‌شود. این ویژگی در بخش [homes] کاربردی است.

Default: invalid users = # no invalid users

Example: invalid users = root fred admin @wheel

iprint server (G)

این پارامتر تنها در صورتی کاربرد دارد که printing روی iprint تنظیم شده باشد.

در صورت تنظیم، این گزینه پارامتر ServerName را در فایل client.conf مربوط به CUPS بازنویسی می‌کند. این تنظیم در شرایطی که سرورهای مجازی سامبا داشته باشید که به دیمن‌های مختلف CUPS متصل می‌شوند، الزامی است.

Default: iprint server = ""

Example: iprint server = MYCUPSSERVER

kdc always include pac (G)

این گزینه درخواست PA-PAC-REQUEST دریافتی از کلاینت را نادیده گرفته و بازنویسی می‌کند. در صورت فعال بودن (حالت پیش‌فرض)، یک PAC همواره در پاسخ‌های Kerberos گنجانده خواهد شد.

این گزینه در حال حاضر تنها در صورتی اعمال می‌شود که KDC داخلی Heimdal به کار گرفته شود.

Default: kdc always include pac = yes

certificate backdating compensation (G)

هنگام انجام احراز هویت کربروس مبتنی بر گواهی (PKINIT) به همراه strong certificate binding enforcement = compatibility

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

جزئیات بیشتر را می‌توان در سند زیر یافت: KB5014754: Certificate-based authentication changes on Windows domain controllers

Default: certificate backdating compensation = 0

strong certificate binding enforcement (G)

این پارامتر اعمال نگاشت‌های گواهی ویندوز (Windows Certificate bindings) را همان‌گونه که در KB5014754: Certificate-based authentication changes on Windows domain controllers شرح داده شده است، هنگام انجام احراز هویت کربروس مبتنی بر گواهی (PKINIT) کنترل می‌کند.

مقادیر ممکن عبارتند از:

•none

هیچ‌گونه اعتبارسنجی برای نگاشت‌های گواهی انجام نمی‌گیرد.

•compatibility

نگاشت‌های ضعیف (Weak) گواهی مجاز هستند.

در حالت سازگاری (compatibility) برای نگاشت‌های WEAK، تاریخ صدور گواهی باید پس از تاریخ ایجاد حساب کاربر باشد.

مگر اینکه certificate backdating compensation دارای مقدار باشد. در آن صورت، گواهی می‌تواند حداکثر تا آن تعداد دقیقه پیش از ایجاد حساب کاربر صادر شده باشد.

•full

تنها نگاشت‌های قوی (strong) گواهی مجاز هستند. این مقدار پیش‌فرض است.

نگاشت‌های گواهی در مشخصهٔ (attribute) altSecurityIdentities کاربر پیکربندی می‌شوند و می‌توانند هر یک از موارد زیر باشند:

•صادرکننده و موضوع X509 (Issuer and subject)

Example: "X509:<I>IssuerName<S>SubjectName"

مقادیر ارائه‌شده برای نام صادرکننده و نام موضوع باید دقیقاً با مقادیر موجود در گواهی کاربر مطابقت داشته باشند.

WEAK

•تنها موضوع X509 (Subject only)

Example: "X509:<S>SubjectName"

مقدار ارائه‌شده برای نام موضوع صادرکننده باید دقیقاً با مقدار موجود در گواهی کاربر مطابقت داشته باشد.

WEAK

•X509 RFC822

Example: "X509:<RFC822>test@example.com"

آدرس ایمیل

WEAK

•صادرکننده و شماره سریال X509 (Issuer and serial number)

Example: "X509:<I>IssuerName<SR>123456789"

صادرکنندهٔ گواهی و شماره سریال

STRONG

•شناسه کلید موضوع X509 (Subject Key Identifier)

Example: "<SKI>01234xxxxx"

STRONG

•هش SHA1 کلید عمومی X509 (public key SHA1)

Example: "X509:<SHA1-PUKEY>1234567890abcdef"

هش SHA1 از کلید عمومی گواهی

STRONG

نگاشت‌های گواهی همچنین می‌توانند در قالب یک افزونهٔ گواهی (افزونهٔ 1.3.6.1.4.1.311.25.2) باشند که حاوی SID کاربر است. این مورد به عنوان یک نگاشت STRONG در نظر گرفته می‌شود.

Default: strong certificate binding enforcement = full

kdc default domain supported enctypes (G)

مقدار پیش‌فرض msDS-SupportedEncryptionTypes را برای حساب‌های سرویس در Active Directory که فاقد این مقدار هستند یا مقدار msDS-SupportedEncryptionTypes در آن‌ها بر روی 0 تنظیم شده است، تعیین می‌کند.

این گزینه به مدیران سامبا امکان می‌دهد تا با انعطاف‌پذیری پیکربندی فراهم‌شده توسط مقدار رجیستری HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\KDC\DefaultDomainSupportedEncTypes در ویندوز مطابقت داشته باشند.

برخلاف کلید رجیستری ویندوز (که تنها یک عدد در مبنای ۱۰ را می‌پذیرد)، در سامبا می‌توان این مقدار را به صورت هگزادسیمال یا فهرستی از نام‌های انواع رمزنگاری Kerberos نیز بیان کرد.

مقادیر مشخص‌شده با یکدیگر به صورت بیتی OR می‌شوند، و مواردی که در حال حاضر پشتیبانی می‌شوند عبارتند از:

•arcfour-hmac-md5، rc4-hmac، 0x4 یا 4

در ویندوز با عنوان رمزنگاری Kerberos RC4 شناخته می‌شود

•aes128-cts-hmac-sha1-96، aes128-cts، 0x8 یا 8

در ویندوز با عنوان رمزنگاری Kerberos AES 128 bit شناخته می‌شود

•aes256-cts-hmac-sha1-96، aes256-cts، 0x10 یا 16

در ویندوز با عنوان رمزنگاری Kerberos AES 256 bit شناخته می‌شود

•aes256-cts-hmac-sha1-96-sk، aes256-cts-sk، 0x20 یا 32

اجازه استفاده از کلیدهای نشست AES. هنگامی که این مقدار تنظیم شود، به KDC نشان می‌دهد که می‌توان از کلیدهای نشست AES استفاده کرد، حتی زمانی که aes256-cts و aes128-cts تنظیم نشده باشند. این گزینه امکان استفاده از کلیدهای AES را در ارتباط با میزبان‌هایی فراهم می‌کند که در غیر این صورت تنها با RC4 برای کلیدهای بلیت پیکربندی شده‌اند (که حالت پیش‌فرض است).

Default: kdc default domain supported enctypes = 0 # با آنچه نرم‌افزار در حال حاضر پشتیبانی می‌کند تطابق دارد. اگر کلیدهای AES در دسترس باشند (سطح عملکردی دامین ۲۰۰۸ یا بالاتر باشد)، این مقدار aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96 است. در غیر این صورت arcfour-hmac-md5 aes256-cts-hmac-sha1-96-sk خواهد بود.

kdc enable fast (G)

در سامبا 4.16، سرور KDC توکار Heimdal پشتیبانی از RFC6113 FAST را به همراه دارد، قابلیتی که در نسخه‌های قدیمی‌تر سامبا در دسترس نبود.

این گزینه بیشتر برای آزمایش است و در حال حاضر تنها زمانی اعمال می‌شود که از KDC توکار Heimdal استفاده شود.

Default: kdc enable fast = yes

kdc force enable rc4 weak session keys (G)

سند RFC8429 اعلام می‌دارد که الگوریتم‌های رمزنگاری rc4-hmac در Kerberos ضعیف هستند و حملات شناخته‌شده‌ای علیه استفاده از این مجموعه الگوریتم رمزنگاری در Active Directory وجود دارد.

با این حال برای سازگاری با Microsoft Windows، این گزینه به KDC اجازه می‌دهد فرض کند که صرف‌نظر از مقدار تنظیم‌شده در صفت msDS-SupportedEncryptionTypes یک حساب سرویس، در صورتی که کلاینتی احتمالاً قدیمی‌تر آن را درخواست کند، می‌توان از یک کلید نشست Kerberos از نوع rc4-hmac (به عنوان کلیدی متمایز از کلید بلیت، آن‌گونه که در keytab سرویس یافت می‌شود) استفاده کرد.

Default: kdc force enable rc4 weak session keys = no

kdc name match implicit dollar without canonicalization (G)

این گزینه تنها بر کلاینت‌هایی تأثیر می‌گذارد که یکسان‌سازی نام (name canonicalization) را در یک درخواست AS درخواست نمی‌کنند؛ که عموماً به معنای کلاینت‌های سنتی Kerberos در یونیکس است و نه کلاینت‌های ویندوز.

سرویس KDC ممکن است نام موجود در یک درخواست AS را به صورت غیردقیق تطبیق دهد، برای مثال با استفاده از مقایسه بدون تمایز بین حروف کوچک و بزرگ یا تبدیل آن به یک User Principal Name؛ اما کلاینت از پرینسیپالی که در واقع با آن تطبیق داده شده مطلع نمی‌شود، مگر اینکه فلگ گزینه 'canonicalize' را تنظیم کرده باشد.

در دامین‌های Active Directory، رفتار پیش‌فرض KDC این است که اگر نام ارائه‌شده فاقد نویسه '$' باشد و از قبل تطابق نیافته باشد، یک نویسه '$' به انتهای آن الحاق کند. این کار اجازه می‌دهد 'foo' با حساب ماشین 'foo$' تطبیق داده شود. مهاجمی که قادر به ایجاد حساب‌های ماشین دلخواه باشد (که می‌تواند عملیاتی با سطح دسترسی پایین باشد)، گاهی اوقات قادر است با جعل نام‌های کاربران یونیکس، برای آن‌ها بلیت دریافت کند. این موضوع تحت عنوان 'dollar ticket attack' (حمله بلیت دلار) شناخته می‌شود.

با تنظیم این گزینه بر روی 'no'، سرویس KDC تلاشی برای تطبیق با استفاده از افزودن نویسه '$' نخواهد کرد مگر اینکه فلگ canonicalize تنظیم شده باشد. این امر به کلاینت‌های آگاه از AD اجازه می‌دهد مانند همیشه با یکسان‌سازی متصل شوند، اما کلاینت‌های سنتی یونیکس را در معرض حمله بلیت دلار قرار نمی‌دهد.

Default: kdc name match implicit dollar without canonicalization = yes

kdc require canonicalization (G)

کلاینت‌های Kerberos را ملزم به استفاده از فلگ یکسان‌سازی (canonicalization) می‌کند.

کلاینت‌هایی که از فلگ یکسان‌سازی Kerberos استفاده نمی‌کنند (RFC 6806 را ببینید)، برای نامی که درخواست کرده‌اند یک TGT دریافت خواهند کرد که ممکن است دقیقاً با نام موجود در پایگاه داده سامبا مطابقت نداشته باشد. برای مثال، ممکن است یک کلاینت برای 'root' درخواست بلیت کند، و اگر رایانه‌ای به نام 'ROOT$' در پایگاه داده وجود داشته باشد، KDC با استفاده از قوانین تطبیق استاندارد برای AD Kerberos، بلیتی برای 'root' صادر خواهد کرد. یک سرور عضو که از Kerberos آگاه است اما از AD آگاه نیست، ممکن است این بلیت را به عنوان بلیت معتبر برای کاربر محلی root بپذیرد. این گزینه با خودداری از پذیرش درخواست‌های فاقد فلگ یکسان‌سازی، از این مشکل جلوگیری می‌کند.

این گزینه در صورتی که تمام کلاینت‌های مورد انتظار درخواست یکسان‌سازی داشته باشند (همان‌طور که کلاینت‌های ویندوز عمل می‌کنند)، و سرورهای عضوی وجود داشته باشند که ممکن است به دلیل این مسئله دچار سردرگمی شوند، انتخابی منطقی است. به طور معمول این موضوع به معنای سرورهای یونیکسی است که انتظار دارند در یک دامین MIT Kerberos قرار داشته باشند.

همچنین گزینه "kdc name match implicit dollar without canonicalization" را ببینید، که در صورت انتظار کلاینت‌های Kerberos فاقد فلگ canonicalize، کاربردی‌تر خواهد بود.

Default: kdc require canonicalization = no

kdc supported enctypes (G)

روی یک کنترل‌کننده دامین Active Directory، این گزینه فهرستی از انواع رمزنگاری پشتیبانی‌شده برای KDC در حال اجرای محلی است.

این گزینه به مدیران سامبا امکان می‌دهد تا پشتیبانی از انواع رمزنگاری ضعیف/استفاده‌نشده را حذف کنند، مشابه انعطاف‌پذیری پیکربندی فراهم‌شده توسط مقدار Network security: Configure encryption types allowed for Kerberos در بخش GPO/Local Policies/Security Options، که در ویندوز به مقدار رجیستری HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters\SupportedEncryptionTypes منجر می‌شود.

برخلاف کلید رجیستری ویندوز (که تنها یک عدد در مبنای ۱۰ را می‌پذیرد)، در سامبا می‌توان این مقدار را به صورت هگزادسیمال یا فهرستی از نام‌های انواع رمزنگاری Kerberos نیز بیان کرد.

مقادیر مشخص‌شده با یکدیگر به صورت بیتی OR می‌شوند، و مواردی که در حال حاضر پشتیبانی می‌شوند عبارتند از:

•arcfour-hmac-md5، rc4-hmac، 0x4 یا 4

در ویندوز با عنوان رمزنگاری Kerberos RC4 شناخته می‌شود

•aes128-cts-hmac-sha1-96، aes128-cts، 0x8 یا 8

در ویندوز با عنوان رمزنگاری Kerberos AES 128 bit شناخته می‌شود

•aes256-cts-hmac-sha1-96، aes256-cts، 0x10 یا 16

در ویندوز با عنوان رمزنگاری Kerberos AES 256 bit شناخته می‌شود

Default: kdc supported enctypes = 0 # با آنچه نرم‌افزار در حال حاضر پشتیبانی می‌کند تطابق دارد: arcfour-hmac-md5 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96

keepalive (G)

مقدار این پارامتر (یک عدد صحیح) نمایانگر تعداد ثانیه‌های بین بسته‌های keepalive است. اگر این پارامتر صفر باشد، هیچ بسته keepalive ارسال نخواهد شد. بسته‌های keepalive، در صورت ارسال، به سرور امکان می‌دهند تا تشخیص دهد که آیا کلاینت همچنان حاضر و پاسخگو است یا خیر.

به طور کلی، اگر سوکت به صورت پیش‌فرض صفت SO_KEEPALIVE را داشته باشد، نیازی به بسته‌های keepalive نخواهد بود. (ببینید socket options). اساساً شما تنها در صورتی باید از این گزینه استفاده کنید که با مشکل مواجه شوید.

لطفاً توجه داشته باشید این گزینه تنها برای اتصالات کلاینت SMB1 اعمال می‌شود و هیچ تأثیری بر کلاینت‌های SMB2 ندارد.

Default: keepalive = 300

Example: keepalive = 600

kerberos encryption types (G)

این پارامتر انواع رمزنگاری مورد استفاده را هنگام فعالیت به عنوان کلاینت Kerberos تعیین می‌کند. مقادیر ممکن عبارتند از all، strong و legacy.

سامبا برای دریافت بلیت‌های Kerberos از یک کتابخانه Kerberos (از نوع MIT یا Heimdal) استفاده می‌کند. این کتابخانه به طور معمول در خارج از سامبا و با استفاده از فایل krb5.conf پیکربندی می‌شود. این فایل همچنین ممکن است شامل دستورالعمل‌هایی برای پیکربندی انواع رمزنگاری مورد استفاده باشد. با این حال، سامبا پروتکل‌ها و الگوریتم‌های Active Directory را به منظور یافتن کنترل‌کننده دامین پیاده‌سازی می‌کند. برای وادار کردن کتابخانه Kerberos به استفاده از کنترل‌کننده دامین صحیح، برخی از پردازش‌های سامبا نظیر winbindd(8) و net(8)، یک فایل krb5.conf اختصاصی برای استفاده توسط کتابخانه Kerberos در زمان فراخوانی از طرف سامبا ایجاد می‌کنند. این فایل اختصاصی تمام جنبه‌های عملکرد کتابخانه Kerberos را کنترل می‌کند، و این پارامتر نحوه پیکربندی انواع رمزنگاری درون این فایل تولیدشده را تحت کنترل قرار داده و بنابراین انواع رمزنگاری قابل‌مذاکره توسط سامبا را نیز مدیریت می‌کند.

هنگامی که بر روی all تنظیم شود، تمامی انواع رمزنگاری Active Directory مجاز هستند.

هنگامی که بر روی strong تنظیم شود، تنها انواع رمزنگاری مبتنی بر AES ارائه می‌شوند. این مقدار می‌تواند در محیط‌های امن‌سازی‌شده برای جلوگیری از حملات تنزل رتبه (downgrade attacks) مورد استفاده قرار گیرد.

هنگامی که بر روی legacy تنظیم شود، تنها RC4-HMAC-MD5 مجاز خواهد بود. به دلیل CVE-2022-37966 از استفاده از این گزینه خودداری کنید؛ ببینید: https://bugzilla.samba.org/show_bug.cgi?id=15237.

Default: kerberos encryption types = all

kerberos method (G)

نحوه اعتبارسنجی بلیت‌های Kerberos را کنترل می‌کند.

گزینه‌های معتبر عبارتند از:

•secrets only - فقط استفاده از secrets.tdb برای اعتبارسنجی بلیت (پیش‌فرض)
•system keytab - فقط استفاده از keytab سیستم برای اعتبارسنجی بلیت
•dedicated keytab - استفاده از یک keytab اختصاصی برای اعتبارسنجی بلیت
•secrets and keytab - ابتدا استفاده از secrets.tdb و سپس keytab سیستم
تفاوت عمده بین «system keytab» و «dedicated keytab» در این است که روش دوم به جای فیلتر کردن بر اساس Principalهای مورد انتظار، برای یافتن مدخل صحیح keytab به Kerberos متکی است.

هنگامی که kerberos method در حالت «dedicated keytab» باشد، dedicated keytab file باید برای مشخص کردن مکان فایل keytab تنظیم شود.

پیکربندی پیشنهادی استفاده از مقدار پیش‌فرض 'secrets only' همراه با گزینه sync machine password to keytab است.

Default: kerberos method = default

kernel change notify (G)

این پارامتر مشخص می‌کند که آیا سامبا باید از هسته برای اعلان تغییرات در دایرکتوری‌ها درخواست کند تا کلاینت‌های SMB بتوانند هر زمان که داده‌های روی سرور تغییر می‌کند، نوسازی (refresh) شوند یا خیر.

این پارامتر تنها زمانی استفاده می‌شود که هسته شما از اعلان تغییر به برنامه‌های کاربر با استفاده از رابط inotify پشتیبانی کند.

Default: kernel change notify = yes

kernel oplocks (S)

برای سیستم‌های UNIX که از oplocks مبتنی بر هسته پشتیبانی می‌کنند (در حال حاضر فقط لینوکس)، این پارامتر امکان فعال یا غیرفعال کردن استفاده از آن‌ها را فراهم می‌کند. با این حال، این کار Level II oplocks را برای کلاینت‌ها غیرفعال می‌کند، زیرا هسته لینوکس به درستی از آن‌ها پشتیبانی نمی‌کند.

پشتیبانی از oplocks هسته به Samba oplocks اجازه می‌دهد هر زمان که یک فرآیند محلی UNIX یا عملیات NFS به فایلی دسترسی پیدا کرد که smbd(8) آن را قفل کرده است (oplocked)، شکسته شوند. این کار یکپارچگی کامل داده‌ها را بین SMB/CIFS، NFS و دسترسی محلی به فایل فراهم می‌کند (و یک قابلیت بسیار جالب است :-).

اگر به این تعامل نیازی ندارید، باید این پارامتر را در لینوکس غیرفعال کنید تا از Level II oplocks و مزیت عملکردی مرتبط با آن بهره‌مند شوید.

مقدار پیش‌فرض این پارامتر no است و در سیستم‌هایی که پشتیبانی لازم هسته را ندارند، به عنوان یک عملیات بی‌اثر (no-op) در نظر گرفته می‌شود.

Default: kernel oplocks = no

kernel share modes (S)

این پارامتر کنترل می‌کند که آیا حالت‌های اشتراک (share modes) پروتکل SMB به فراخوانی‌های sharemode مخصوص سیستم فایل ترجمه شوند یا خیر.

حالت‌های اشتراک هسته با جلوگیری از دسترسی متناظر با SMB share modes، سطح حداقلی از تعامل‌پذیری را با فرآیندهای محلی UNIX و عملیات NFS فراهم می‌کنند. این امر نیازمند یک ماژول VFS مخصوص سیستم فایل با پشتیبانی مناسب است.

توجه داشته باشید که برای استفاده از دستگیره‌های پایدار فایل (durable file handles) در SMB2 روی یک اشتراک، باید kernel share modes را غیرفعال کنید.

مقدار پیش‌فرض این پارامتر no است. تنظیم آن روی yes نیازمند یک ماژول سیستم فایل است که از sharemodeهای سیستم فایل پشتیبانی کند، در غیر این صورت تلاش‌ها برای دسترسی به فایل‌ها با خطای اشتراک‌گذاری (sharing violation) ناموفق خواهند بود.

Default: kernel share modes = no

kpasswd port (G)

مشخص می‌کند که سرور Kerberos برای تغییرات رمز عبور باید روی کدام پورت‌ها شنود کند.

Default: kpasswd port = 464

krb5 acceptor report canonical client name (G)

این گزینه بر نام کلاینت ارائه‌شده به پذیرنده‌های Kerberos برای بلیت‌های ورودی Kerberos تأثیر می‌گذارد. اگر روی 'yes' تنظیم شود، نام کلاینت در بلیت با نام استاندارد کلاینت (sAMAccountName) جایگزین خواهد شد. در غیر این صورت، بدون تغییر باقی خواهد ماند.

این گزینه در حال حاضر تنها زمانی اعمال می‌شود که از Heimdal KDC توکار استفاده شود.

Default: krb5 acceptor report canonical client name = yes

krb5 port (G)

مشخص می‌کند که KDC باید برای ترافیک Kerberos روی کدام پورت شنود کند.

Default: krb5 port = 88

lanman auth (G)

این پارامتر از نسخه Samba 4.11 منسوخ شده است و پشتیبانی از LanMan (به عنوان موردی متمایز از احراز هویت NTLM، NTLMv2 یا Kerberos) در انتشارهای آینده سامبا حذف خواهد شد.

به این معنی که در آینده، مقدار پیش‌فرض فعلی یعنی lanman auth = no رفتار اجباری خواهد بود.

این پارامتر تعیین می‌کند که آیا smbd(8) تلاش خواهد کرد تا کاربران را احراز هویت کند یا اجازه تغییر رمز عبور را با استفاده از هش رمز عبور LANMAN بدهد یا خیر. در صورت غیرفعال بودن، فقط کلاینت‌هایی که از هش‌های رمز عبور NT پشتیبانی می‌کنند (مانند کلاینت‌های Windows NT/2000، smbclient، اما نه Windows 95/98 یا کلاینت شبکه MS DOS) قادر به اتصال به هاست سامبا خواهند بود.

پاسخ رمزنگاری‌شده LANMAN به دلیل عدم حساسیت به کوچک و بزرگی حروف و نوع الگوریتم انتخابی، به راحتی شکسته می‌شود. به سرورهایی که فاقد کلاینت‌های Windows 95/98/ME یا MS DOS هستند توصیه می‌شود این گزینه را غیرفعال کنند.

هنگامی که این پارامتر روی no تنظیم شود، همچنین باعث می‌شود که sambaLMPassword در passdb سامبا پس از تغییر رمز عبور بعدی خالی شود. در نتیجه، کلاینت‌های lanman حتی اگر lanman auth بعداً دوباره فعال شود نیز قادر به احراز هویت نخواهند بود.

برخلاف گزینه encrypt passwords، این پارامتر نمی‌تواند رفتار کلاینت را تغییر دهد و پاسخ LANMAN همچنان از طریق شبکه ارسال خواهد شد. برای غیرفعال کردن این مورد برای کلاینت‌های سامبا (مانند smbclient)، client lanman auth را ببینید.

این پارامتر توسط ntlm auth نادیده گرفته می‌شود (override)، بنابراین مگر اینکه آن پارامتر نیز روی ntlmv1-permitted یا yes تنظیم شده باشد، فقط ورودهای NTLMv2 مجاز خواهند بود و هیچ هش LM ذخیره نخواهد شد. همه کلاینت‌های امروزی از NTLMv2 پشتیبانی می‌کنند، اما برخی از کلاینت‌های قدیمی‌تر برای استفاده از آن به پیکربندی خاصی نیاز دارند.

این پارامتر هیچ تأثیری بر Samba AD DC ندارد؛ احراز هویت LM همیشه غیرفعال است و هیچ رمز عبور LM ذخیره نمی‌شود.

Default: lanman auth = no

large readwrite (G)

این پارامتر تعیین می‌کند که آیا smbd(8) از نوع جدید درخواست‌های خواندن و نوشتن جریانی (streaming) ۶۴ کیلوبایتی SMB معرفی‌شده در Windows 2000 پشتیبانی می‌کند یا خیر. توجه داشته باشید که به دلیل باگ‌های ریدایرکتور کلاینت Windows 2000، این قابلیت مستلزم اجرای سامبا بر روی یک سیستم‌عامل با قابلیت ۶۴ بیتی مانند IRIX، Solaris یا کرنل لینوکس 2.4 است. می‌تواند عملکرد را با کلاینت‌های Windows 2000 تا ۱۰٪ بهبود بخشد. پیش‌فرض آن فعال (on) است. به اندازه برخی دیگر از مسیرهای کد سامبا تست نشده است.

Default: large readwrite = yes

ldap admin dn (G)

گزینه ldap admin dn نام متمایز (Distinguished Name یا DN) استفاده‌شده توسط سامبا را برای برقراری ارتباط با سرور LDAP هنگام بازیابی اطلاعات حساب کاربری مشخص می‌کند. ldap admin dn در ارتباط با رمز عبور admin dn ذخیره‌شده در فایل private/secrets.tdb استفاده می‌شود. برای اطلاعات بیشتر در مورد نحوه انجام این کار، صفحه مان smbpasswd(8) را ببینید.

گزینه ldap admin dn به یک DN به طور کامل مشخص‌شده (fully specified) نیاز دارد. ldap suffix به ldap admin dn الحاق نمی‌شود.

بدون پیش‌فرض

ldap connection timeout (G)

این پارامتر به فراخوانی‌های کتابخانه LDAP مشخص می‌کند که هنگام برقراری اتصال اولیه با سرورهای LDAP باید چه مهلت زمانی (timeout) را بر حسب ثانیه رعایت کنند. این گزینه به ویژه در سناریوهای بازگشت از خرابی (failover) بسیار مفید است. اگر یک یا چند سرور LDAP اصلاً در دسترس نباشند، نیازی نیست تا به پایان رسیدن مهلت‌های زمانی TCP منتظر بمانیم. این ویژگی باید توسط کتابخانه LDAP شما پشتیبانی شود.

این پارامتر با ldap timeout متفاوت است؛ پارامتری که بر روی عملیات در سرورهای LDAP با استفاده از یک اتصال موجود تأثیر می‌گذارد و نه برقراری یک اتصال اولیه.

Default: ldap connection timeout = 2

ldap debug level (G)

این پارامتر سطح اشکال‌زدایی فراخوانی‌های کتابخانه LDAP را کنترل می‌کند. در مورد OpenLDAP، این همان فیلد بیتی (bit-field) است که توسط سرور فهمیده شده و در صفحه مان slapd.conf(5) مستند شده است. یک مقدار مفید معمولی، 1 برای ردگیری فراخوانی توابع خواهد بود.

خروجی اشکال‌زدایی کتابخانه‌های LDAP با پیشوند [LDAP] در خروجی لاگین سامبا ظاهر می‌شود. سطحی که در آن گزارش‌های وقایع LDAP چاپ می‌شوند توسط پارامتر ldap debug threshold کنترل می‌شود.

Default: ldap debug level = 0

Example: ldap debug level = 1

ldap debug threshold (G)

این پارامتر سطح اشکال‌زدایی (debug level) سامبا را کنترل می‌کند که خروجی اشکال‌زدایی کتابخانه ldap در لاگ‌های سامبا در آن سطح چاپ شود. برای جزئیات بیشتر به توضیحات ldap debug level مراجعه کنید.

Default: ldap debug threshold = 10

Example: ldap debug threshold = 5

ldap delete dn (G)

این پارامتر مشخص می‌کند که آیا یک عملیات حذف در ldapsam کل مدخل (entry) را حذف کند یا تنها مشخصه‌های ویژه Samba را پاک نماید.

Default: ldap delete dn = no

ldap deref (G)

این گزینه کنترل می‌کند که آیا Samba باید به کتابخانه LDAP اطلاع دهد تا از روش بازگشایی نام مستعار (alias dereferencing) خاصی استفاده کند یا خیر. مقدار پیش‌فرض auto است، به این معنی که تنظیمات پیش‌فرض کتابخانه کلاینت ldap حفظ خواهد شد. مقادیر ممکن دیگر عبارتند از never، finding، searching و always. برای اطلاعات بیشتر به دفترچه راهنمای LDAP مراجعه کنید.

Default: ldap deref = auto

Example: ldap deref = searching

ldap follow referral (G)

این گزینه کنترل می‌کند که آیا هنگام جستجوی مدخل‌ها در پایگاه‌داده LDAP، ارجاعات (referrals) مربوط به LDAP دنبال شوند یا خیر. مقادیر ممکن عبارتند از on برای فعال‌سازی دنبال‌کردن ارجاعات، off برای غیرفعال‌سازی آن، و auto، برای استفاده از تنظیمات پیش‌فرض libldap. انتخاب libldap برای دنبال‌کردن یا نکردن ارجاعات در /etc/openldap/ldap.conf با پارامتر REFERRALS همان‌گونه که در ldap.conf(5) مستند شده، تنظیم می‌شود.

Default: ldap follow referral = auto

Example: ldap follow referral = off

ldap group suffix (G)

این پارامتر پسوندی را مشخص می‌کند که برای گروه‌ها در هنگام افزوده‌شدن به دایرکتوری LDAP استفاده می‌شود. اگر این پارامتر تنظیم نشده باشد، مقدار ldap suffix به جای آن استفاده خواهد شد. رشته پسوند به ابتدای رشته ldap suffix اضافه می‌شود، بنابراین از یک DN جزئی استفاده کنید.

Default: ldap group suffix =

Example: ldap group suffix = ou=Groups

ldap idmap suffix (G)

این پارامتر پسوندی را مشخص می‌کند که هنگام ذخیره‌سازی نگاشت‌های idmap استفاده می‌شود. اگر این پارامتر تنظیم نشده باشد، مقدار ldap suffix به جای آن استفاده خواهد شد. رشته پسوند به ابتدای رشته ldap suffix اضافه می‌شود، بنابراین از یک DN جزئی استفاده کنید.

Default: ldap idmap suffix =

Example: ldap idmap suffix = ou=Idmap

ldap machine suffix (G)

این پارامتر مشخص می‌کند که ماشین‌ها در کجای درخت ldap باید اضافه شوند. اگر این پارامتر تنظیم نشده باشد، مقدار ldap suffix به جای آن استفاده خواهد شد. رشته پسوند به ابتدای رشته ldap suffix اضافه می‌شود، بنابراین از یک DN جزئی استفاده کنید.

Default: ldap machine suffix =

Example: ldap machine suffix = ou=Computers

ldap max anonymous request size (G)

این پارامتر حداکثر اندازه مجاز (بر حسب بایت) را برای یک درخواست LDAP دریافتی روی یک اتصال ناشناس (anonymous) مشخص می‌کند.

اگر اندازه درخواست از این حد فراتر رود، درخواست رد خواهد شد.

Default: ldap max anonymous request size = 256000

Example: ldap max anonymous request size = 500000

ldap max authenticated request size (G)

این پارامتر حداکثر اندازه مجاز (بر حسب بایت) را برای یک درخواست LDAP دریافتی روی یک اتصال احرازهویت‌شده مشخص می‌کند.

اگر اندازه درخواست از این حد فراتر رود، درخواست رد خواهد شد.

Default: ldap max authenticated request size = 16777216

Example: ldap max authenticated request size = 4194304

ldap max search request size (G)

این پارامتر حداکثر اندازه مجاز (بر حسب بایت) را برای یک درخواست جستجوی LDAP مشخص می‌کند.

اگر اندازه درخواست از این حد فراتر رود، درخواست رد خواهد شد.

Default: ldap max search request size = 256000

Example: ldap max search request size = 4194304

ldap page size (G)

این پارامتر تعداد مدخل‌ها در هر صفحه را مشخص می‌کند.

اگر سرور LDAP از نتایج صفحه‌بندی‌شده پشتیبانی کند، کلاینت‌ها می‌توانند به جای تمام فهرست، زیرمجموعه‌هایی از نتایج جستجو (صفحات) را درخواست کنند. این پارامتر اندازه این صفحات را تعیین می‌کند.

Default: ldap page size = 1000

Example: ldap page size = 512

ldap password sync

این پارامتر مترادفی برای ldap passwd sync است.

ldap passwd sync (G)

این گزینه برای تعیین این موضوع به کار می‌رود که آیا Samba باید هنگام تغییر گذرواژه از طریق SAMBA، گذرواژه LDAP را با هش‌های NT و LM برای حساب‌های عادی (نه برای workstation، سرور یا اعتمادهای دامنه/domain trusts) همگام‌سازی کند یا خیر.

پارامتر ldap passwd sync می‌تواند روی یکی از سه مقدار زیر تنظیم شود:

•Yes = تلاش برای به‌روزرسانی گذرواژه‌های LDAP، NT و LM و به‌روزرسانی زمان pwdLastSet.
•No = به‌روزرسانی گذرواژه‌های NT و LM و به‌روزرسانی زمان pwdLastSet.
•Only = فقط گذرواژه LDAP به‌روزرسانی شود و انجام باقی امور به سرور LDAP واگذار گردد.
Default: ldap passwd sync = no

ldap replication sleep (G)

هنگامی که از Samba خواسته می‌شود روی یک رپلیکای فقط‌خواندنی LDAP بنویسد، به سرور اصلی (master) خواندن-نوشتن هدایت می‌شویم. این سرور سپس تغییرات ما را به سرور «محلی» رپلیکیت می‌کند، با این وجود این همتاسازی ممکن است چند ثانیه به طول بینجامد، به‌ویژه روی اتصالات کُند. برخی از فعالیت‌های کلاینت، به‌ویژه الحاق به دامنه (domain joins)، ممکن است با دریافت پاسخ «موفقیت‌آمیز» که بلافاصله داده‌های بک‌اند LDAP را تغییر نمی‌دهد دچار اختلال شوند.

این گزینه به سادگی باعث می‌شود Samba مدت زمان کوتاهی منتظر بماند تا سرور LDAP فرصت همگام‌شدن را داشته باشد. اگر شبکه‌ای با تأخیر به‌ویژه بالا دارید، ممکن است بخواهید زمان همتاسازی LDAP را با یک اسنیفر شبکه بسنجید و این مقدار را متناسب با آن افزایش دهید. توجه داشته باشید که هیچ بررسی‌ای انجام نمی‌شود مبنی بر اینکه آیا داده‌ها واقعاً همتاسازی شده‌اند یا خیر.

مقدار بر حسب میلی‌ثانیه مشخص می‌شود، حداکثر مقدار ۵۰۰۰ (۵ ثانیه) است.

Default: ldap replication sleep = 1000

ldapsam:editposix (G)

گزینه Editposix گزینه‌ای است که از ldapsam:trusted بهره می‌گیرد تا مدیریت کنترل‌کننده دامنه را ساده‌تر کند و نیاز به راه‌اندازی اسکریپت‌های سفارشی برای افزودن و مدیریت کاربران و گروه‌های posix را از بین ببرد. این گزینه در عوض مستقیماً درخت ldap را برای ایجاد، حذف و ویرایش مدخل‌های کاربر و گروه دستکاری می‌کند. این گزینه همچنین نیازمند یک دیمن winbindd در حال اجرا است، زیرا برای تخصیص uidها/gidهای جدید در هنگام ایجاد کاربر/گروه استفاده می‌شود. بنابراین محدوده تخصیص باید پیکربندی شود.

برای استفاده از این گزینه، باید یک درخت پایه ldap فراهم شده باشد و پارامترهای ldap suffix به درستی پیکربندی شده باشند. در سرورهای خام (تازه راه‌اندازی‌شده)، کاربران و گروه‌های پیش‌فرض (Administrator، Guest، Domain Users، Domain Admins، Domain Guests) را می‌توان از پیش با دستور net sam provision ایجاد کرد. برای اجرای این دستور، سرور ldap باید در حال اجرا باشد، Winbindd باید در حال اجرا باشد و گزینه‌های ldap در smb.conf به درستی پیکربندی شده باشند. پیکربندی معمول ldap که با گزینه ldapsam:trusted = yes استفاده می‌شود معمولاً برای به‌کارگیری ldapsam:editposix = yes نیز کافی است.

یک نمونه پیکربندی می‌تواند به صورت زیر باشد:

encrypt passwords = true
passdb backend = ldapsam
ldapsam:trusted=yes
ldapsam:editposix=yes
ldap admin dn = cn=admin,dc=samba,dc=org
ldap delete dn = yes
ldap group suffix = ou=groups
ldap idmap suffix = ou=idmap
ldap machine suffix = ou=computers
ldap user suffix = ou=users
ldap suffix = dc=samba,dc=org
idmap backend = ldap:"ldap://localhost"
idmap uid = 5000-50000
idmap gid = 5000-50000

این پیکربندی ساختار دایرکتوری‌ای مانند آنچه در ldif زیر شرح داده شده است را در نظر می‌گیرد:

dn: dc=samba,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: samba.org
dc: samba
dn: cn=admin,dc=samba,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: secret
dn: ou=users,dc=samba,dc=org
objectClass: top
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=samba,dc=org
objectClass: top
objectClass: organizationalUnit
ou: groups
dn: ou=idmap,dc=samba,dc=org
objectClass: top
objectClass: organizationalUnit
ou: idmap
dn: ou=computers,dc=samba,dc=org
objectClass: top
objectClass: organizationalUnit
ou: computers

Default: ldapsam:editposix = no

ldapsam:trusted (G)

به‌طور پیش‌فرض، سامبا (Samba) به عنوان کنترل‌کننده دامنه (Domain Controller) با یک بک‌اند LDAP، برای دسترسی به اطلاعات کاربر و گروه نیاز دارد از زیرسیستم NSS به سبک یونیکس (Unix) استفاده کند. با توجه به شیوه ذخیره‌سازی اطلاعات کاربر در یونیکس درون /etc/passwd و /etc/group، این امر ناگزیر منجر به ناکارآمدی و افت کارایی می‌شود. یکی از پرسش‌های مهمی که یک کاربر باید بداند، فهرست گروه‌هایی است که در آن‌ها عضویت دارد. مدل سادهٔ UNIX نیازمند پیمایش و شمارش کامل فایل /etc/group و همتایان NSS آن در LDAP است. UNIX توابع بهینه‌سازی‌شده‌ای برای شمارش عضویت در گروه دارد. متأسفانه، سایر توابعی که برای رسیدگی به مشخصه‌های کاربر و گروه استفاده می‌شوند، فاقد چنین بهینه‌سازی‌هایی هستند.

برای اینکه سامبا در محیط‌های بزرگ به‌خوبی مقیاس‌پذیر باشد، گزینهٔ ldapsam:trusted = yes فرض را بر این می‌گذارد که پایگاه‌دادهٔ کامل کاربر و گروه مرتبط با سامبا، در LDAP همراه با مشخصه‌های استاندارد posixAccount/posixGroup ذخیره شده است. این گزینه علاوه بر این فرض می‌کند که کلاس‌های شیء کمکی (auxiliary object classes) سامبا همراه با داده‌های POSIX در همان شیء LDAP نگهداری می‌شوند. اگر این فرضیات برقرار باشند، می‌توان ldapsam:trusted = yes را فعال کرد و سامبا می‌تواند سیستم NSS را برای پرس‌وجوی عضویت در گروه‌های کاربری دور بزند (بای‌پس کند). پرس‌وجوهای بهینه‌شدهٔ LDAP می‌توانند ورود به دامنه (logon) و وظایف مدیریتی را به میزان چشمگیری سرعت ببخشند. بسته به اندازهٔ پایگاه‌دادهٔ LDAP، ضریب بهبودی معادل ۱۰۰ برابر یا بیشتر برای پرس‌وجوهای معمول به‌سادگی قابل دستیابی است.

Default: ldapsam:trusted = no

ldap server require strong auth (G)

پارامتر ldap server require strong auth مشخص می‌کند که آیا سرور ldap نیاز دارد ترافیک ldap امضا شده یا امضا و رمزگذاری شده (sealed) باشد یا خیر. مقادیر ممکن عبارتند از no، allow_sasl_without_tls_channel_bindings و yes.

ویندوز دارای گزینهٔ LdapEnforceChannelBinding تحت مسیر HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\ است.

مقدار no به اتصال‌های (binds) ساده (simple) و sasl روی همهٔ پروتکل‌های انتقال اجازه می‌دهد. این معادل LdapEnforceChannelBinding=0 است.

مقدار allow_sasl_without_tls_channel_bindings به bind‌های ساده و sasl (بدون امضا یا seal) روی اتصالات رمزگذاری‌شدهٔ TLS اجازه می‌دهد. عدم وجود tls channel bindings نادیده گرفته می‌شود، بنابراین فقط در صورتی از این مقدار استفاده کنید که تنظیم مقدار yes امکان‌پذیر نباشد. اتصالات رمزگذاری‌نشده فقط اجازه bind‌های sasl با امضا یا seal را می‌دهند. این معادل LdapEnforceChannelBinding=1 است.

پیش از اینکه پشتیبانی از tls channel bindings در سامبا فراهم شود، مقدار allow_sasl_over_tls برای مجاز دانستن bind‌های sasl بدون tls channel bindings در دسترس بود. این مقدار اکنون گمراه‌کننده است زیرا مقدار yes اکنون به bind‌های sasl همراه با tls channel bindings اجازه می‌دهد. در صورت نیاز واقعی، پیکربندی‌ها باید به جای آن به yes یا به allow_sasl_without_tls_channel_bindings تغییر داده شوند. در حال حاضر allow_sasl_over_tls تنها یک نام مستعار برای allow_sasl_without_tls_channel_bindings است، اما در نسخه‌های آینده حذف خواهد شد.

مقدار yes تنها اجازه bind‌های ساده و bind‌های sasl با tls channel bindings صحیح را روی اتصالات رمزگذاری‌شدهٔ TLS می‌دهد. bind‌های sasl بدون tls channel bindings مجاز نیستند. اتصالات رمزگذاری‌نشده تنها اجازه bind‌های sasl همراه با امضا یا seal را می‌دهند. این معادل LdapEnforceChannelBinding=2 است.

Default: ldap server require strong auth = yes

ldap ssl (G)

این گزینه برای تعیین این است که آیا سامبا هنگام اتصال به سرور ldap باید از SSL استفاده کند یا خیر. این گزینه به پشتیبانی قبلی سامبا از SSL که با مشخص کردن گزینهٔ --with-ssl در اسکریپت configure فعال می‌شد، ارتباطی ندارد.

اتصالات LDAP در صورت امکان باید ایمن شوند. این کار می‌تواند یا با تنظیم این پارامتر روی start tls یا با مشخص کردن ldaps:// در آرگومان URL مربوط به passdb backend انجام شود.

گزینهٔ ldap ssl می‌تواند روی یکی از این دو مقدار تنظیم شود:

•Off = هرگز هنگام پرس‌وجو از دایرکتوری از SSL استفاده نکن.
•start tls = استفاده از عملیات گسترش‌یافتهٔ StartTLS در LDAPv3 (بر اساس RFC2830) برای برقراری ارتباط با سرور دایرکتوری.
لطفاً توجه داشته باشید که این پارامتر فقط روی روش‌های rpc تأثیر می‌گذارد.

Default: ldap ssl = start tls

ldap suffix (G)

پایه (base) را برای تمام پسوندهای ldap و ذخیره‌سازی شیء sambaDomain مشخص می‌کند.

مقدار ldap suffix به مقادیر مشخص‌شده برای ldap user suffix، ldap group suffix، ldap machine suffix، و ldap idmap suffix الحاق خواهد شد. به هر یک از این‌ها فقط باید یک DN نسبی نسبت به ldap suffix داده شود.

Default: ldap suffix =

Example: ldap suffix = dc=samba,dc=org

ldap timeout (G)

این پارامتر تعداد ثانیه‌هایی را مشخص می‌کند که سامبا باید به عنوان زمان انتظار (timeout) برای عملیات LDAP در نظر بگیرد.

Default: ldap timeout = 15

ldap user suffix (G)

این پارامتر مشخص می‌کند که کاربران در کجای درخت (tree) اضافه شوند. اگر این پارامتر تنظیم نشده باشد، مقدار ldap suffix به جای آن استفاده خواهد شد. این رشتهٔ پسوند به ابتدای رشتهٔ ldap suffix اضافه می‌شود، بنابراین از یک DN نسبی (جزئی) استفاده کنید.

Default: ldap user suffix =

Example: ldap user suffix = ou=people

level2 oplocks (S)

این پارامتر کنترل می‌کند که آیا سامبا از قفل‌های level2 oplocks (فقط‌خواندنی) روی یک اشتراک پشتیبانی می‌کند یا خیر.

قفل‌های سطح ۲ یا oplockهای فقط‌خواندنی به کلاینت‌های Windows NT که روی یک فایل دارای oplock هستند اجازه می‌دهند تا به محض اینکه کلاینت دومی فایل را باز کرد، به جای رهاسازی همهٔ oplockها (همانند oplockهای سنتی و انحصاری)، قفل خواندن-نوشتن خود را به یک oplock فقط‌خواندنی تنزل دهند. این امر به همهٔ بازکنندگان فایل که از level2 oplocks پشتیبانی می‌کنند اجازه می‌دهد تا فایل را فقط برای پیش‌خوانی (read-ahead) کش کنند (یعنی مجاز به کش کردن عملیات نوشتن یا درخواست‌های قفل نیستند) و کارایی را برای دسترسی‌های متعددی که به فایل‌های به‌ندرت ویرایش‌شونده (مانند فایل‌های EXE برنامه‌ها) صورت می‌گیرد، به میزان چشمگیری افزایش می‌دهد.

به محض اینکه یکی از کلاینت‌های دارای oplock فقط‌خواندنی داده‌ای در فایل بنویسد، به تمام کلاینت‌ها اطلاع داده می‌شود (هیچ پاسخی لازم نیست یا انتظار آن کشیده نمی‌شود) و به آن‌ها اعلام می‌گردد که oplockهای خود را به وضعیت «none» بشکنند و تمام کش‌های پیش‌خوانی (read-ahead) را حذف کنند.

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

برای بررسی و توضیحات بیشتر پیرامون level2 oplocks، به مشخصات CIFS مراجعه کنید.

در حال حاضر، در صورت پشتیبانی از kernel oplocks، قفل‌های level2 oplocks اعطا نمی‌شوند (حتی اگر این پارامتر روی yes تنظیم شده باشد). همچنین توجه داشته باشید که برای تأثیرگذاری این پارامتر، پارامتر oplocks نیز باید در این اشتراک روی yes تنظیم شده باشد.

Default: level2 oplocks = yes

lm announce (G)

این پارامتر تعیین می‌کند که آیا nmbd(8) برودکست‌های اعلان Lanman (که کلاینت‌های OS/2 برای دیدن سرور سامبا در فهرست مرور خود به آن‌ها نیاز دارند) را ایجاد کند یا خیر. این پارامتر می‌تواند سه مقدار داشته باشد: yes، no، یا auto. مقدار پیش‌فرض auto است. در صورت تنظیم روی no، سامبا هرگز این برودکست‌ها را تولید نخواهد کرد. در صورت تنظیم روی yes، سامبا برودکست‌های اعلان Lanman را با بسامدی (فاصله زمانی) که توسط پارامتر lm interval مشخص شده ارسال خواهد کرد. اگر روی auto تنظیم شود، سامبا به‌طور پیش‌فرض برودکست‌های اعلان Lanman را ارسال نمی‌کند اما به آن‌ها گوش فرا می‌دهد. در صورتی که چنین برودکستی را روی شبکه دریافت کند، ارسال آن‌ها را با بسامدی که توسط پارامتر lm interval مشخص شده است آغاز خواهد کرد.

Default: lm announce = auto

Example: lm announce = yes

lm interval (G)

اگر سامبا طوری تنظیم شده باشد که برودکست‌های اعلان Lanman مورد نیاز کلاینت‌های OS/2 را تولید کند (پارامتر lm announce را ببینید)، این پارامتر بسامد (فاصلهٔ زمانی) ارسال آن‌ها را برحسب ثانیه مشخص می‌کند. اگر این مقدار روی صفر تنظیم شود، صرف‌نظر از مقدار پارامتر lm announce، هیچ اعلان Lanman ارسال نخواهد شد.

Default: lm interval = 60

Example: lm interval = 120

load printers (G)

یک متغیر بولی که مشخص می‌کند آیا تمام چاپگرهای موجود در printcap باید به‌طور پیش‌فرض برای مرور (browsing) بارگذاری شوند یا خیر. برای جزئیات بیشتر بخش printers را ببینید.

Default: load printers = yes

local master (G)

این گزینه به nmbd(8) امکان می‌دهد تا تلاش کند به یک مرورگر اصلی محلی (local master browser) در یک زیرشبکه تبدیل شود. اگر روی no تنظیم شود، nmbd تلاشی برای تبدیل شدن به مرورگر اصلی محلی در زیرشبکه نخواهد کرد و در تمام انتخابات‌های مرور (browsing elections) نیز بازنده خواهد شد. به‌طور پیش‌فرض این مقدار روی yes تنظیم شده است. تنظیم این مقدار روی yes به این معنا نیست که سامبا حتماً به مرورگر اصلی محلی در یک زیرشبکه تبدیل می‌شود، بلکه صرفاً بدین معناست که nmbd در انتخابات‌ها برای تعیین مرورگر اصلی محلی شرکت خواهد کرد.

تنظیم این مقدار بر روی no باعث می‌شود که nmbd هرگز به یک مرورگر اصلی محلی تبدیل نشود.

Default: local master = yes

lock dir

این پارامتر یک مترادف برای lock directory است.

lock directory (G)

این گزینه دایرکتوری محل قرارگیری فایل‌های قفل را مشخص می‌کند. فایل‌های قفل برای پیاده‌سازی گزینهٔ max connections استفاده می‌شوند.

نکته: این گزینه را نمی‌توان در پیکربندی‌های مبتنی بر رجیستری تنظیم کرد.

فایل‌های قرار گرفته در این دایرکتوری در طول راه‌اندازی‌های مجدد سرویس مورد نیاز نیستند و می‌توان آن‌ها را با اطمینان در فضای ذخیره‌سازی ناپایدار (مانند tmpfs در لینوکس) قرار داد.

Default: lock directory = /var/cache/samba

Example: lock directory = /var/run/samba/locks

locking (S)

این گزینه کنترل می‌کند که آیا قفل‌گذاری در پاسخ به درخواست‌های قفل از سوی کلاینت توسط سرور انجام شود یا خیر.

اگر locking = no باشد، تمام درخواست‌های قفل و باز کردن قفل موفقیت‌آمیز به نظر خواهند رسید و همهٔ پرس‌وجوهای قفل گزارش می‌دهند که فایل مورد نظر برای قفل‌گذاری در دسترس است.

اگر locking = yes باشد، قفل‌گذاری واقعی توسط سرور انجام خواهد شد.

این گزینه ممکن است برای سیستم‌فایل‌های فقط‌خواندنی که احتمالاً به قفل‌گذاری نیازی ندارند (مانند درایوهای CDROM) مفید باشد، اگرچه تنظیم این پارامتر روی no حتی در این مورد نیز واقعاً توصیه نمی‌شود.

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

Default: locking = yes

lock spin time (G)

مدت‌زمانی به میلی‌ثانیه که smbd باید منتظر بماند تا ببیند آیا یک درخواست قفل ناموفق می‌تواند اعطا شود یا خیر. مقدار پیش‌فرض این پارامتر از Samba 3.0.23 از ۱۰ به ۲۰۰ تغییر یافته است. پارامتر مرتبط lock spin count دیگر در Samba 3.0.24 استفاده نمی‌شود. شما نباید نیازی به تغییر مقدار این پارامتر داشته باشید.

Default: lock spin time = 200

log file (G)

این گزینه به شما اجازه می‌دهد نام فایل لاگ سامبا (که با نام فایل اشکال‌زدایی نیز شناخته می‌شود) را بازنویسی کنید.

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

بدون پیش‌فرض

Example: log file = /usr/local/samba/var/log.%m

logging (G)

این پارامتر backendهای ثبت لاگ را پیکربندی می‌کند. چندین backend می‌توانند به طور هم‌زمان مشخص شوند، همراه با سطوح مختلف لاگ برای هر backend. این پارامتر فهرستی از backendها است که در آن هر backend به صورت backend[:option][@loglevel] مشخص می‌شود.

از پارامتر 'option' می‌توان برای ارسال گزینه‌های اختصاصی backend استفاده کرد.

سطح لاگ برای یک backend اختیاری است؛ اگر برای یک backend تنظیم نشود، تمام پیام‌ها به این backend ارسال می‌شوند. پارامتر log level سطوح کلی لاگ را مشخص می‌کند، در حالی که سطوح لاگ مشخص‌شده در اینجا تعیین می‌کنند چه چیزی به backendهای مجزا فرستاده شود.

هنگامی که logging تنظیم شود، پارامترهای syslog و syslog only را لغو (override) می‌کند.

برخی backendها تنها زمانی در دسترس هستند که سامبا با کتابخانه‌های اضافی کامپایل شده باشد. فهرست کلی backendهای ثبت لاگ:

•syslog
•file
•systemd
•lttng
•gpfs
•ringbuf
پشتیبان ringbuf از یک آرگومان اختیاری size برای تغییر اندازه بافر استفاده شده پشتیبانی می‌کند که مقدار پیش‌فرض آن 1 MB است: ringbuf:size=NBYTES

Default: logging =

Example: logging = syslog@1 file

debuglevel

این پارامتر مترادفی برای log level. است.

log level (G)

مقدار این پارامتر (یک رشته) امکان تعیین سطح اشکال‌زدایی (سطح ثبت لاگ) را در فایل smb.conf فراهم می‌کند.

این پارامتر از سری نسخهٔ 2.2.x گسترش یافته است و اکنون به کاربر امکان می‌دهد سطح اشکال‌زدایی را برای چندین کلاس اشکال‌زدایی و فایل‌های لاگ متمایز برای هر کلاس مشخص کند. هدف از این کار، ارائه انعطاف‌پذیری بیشتر در پیکربندی سیستم است. در حال حاضر کلاس‌های اشکال‌زدایی زیر پیاده‌سازی شده‌اند:

•all
•tdb
•printdrivers
•lanman
•smb
•rpc_parse
•rpc_srv
•rpc_cli
•passdb
•sam
•auth
•winbind
•vfs
•idmap
•quota
•acls
•locking
•msdfs
•dmapi
•registry
•scavenger
•dns
•ldb
•tevent
•auth_audit
•auth_json_audit
•kerberos
•drs_repl
•smb2
•smb2_credits
•dsdb_audit
•dsdb_json_audit
•dsdb_password_audit
•dsdb_password_json_audit
•dsdb_transaction_audit
•dsdb_transaction_json_audit
•dsdb_group_audit
•dsdb_group_json_audit
•ldapsrv
ماژول‌های مختلف در اولین استفاده، کلاس‌های اشکال‌زدایی پویا را ثبت می‌کنند:
•catia
•dfs_samba4
•extd_audit
•fileid
•fruit
•full_audit
•media_harmony
•preopen
•recycle
•shadow_copy
•shadow_copy
•unityed_media
•virusfilter
جهت پیکربندی ارسال لاگ‌های کلاس‌های خاص به فایلی به غیر از log file، می‌توانید @PATH را به نام کلاس اضافه کنید؛ مانند log level = 1 full_audit:1@/var/log/audit.log.

اطلاعات ممیزی (audit) احراز هویت و اعطای مجوز تحت کلاس auth_audit ثبت می‌شود، و اگر سامبا بدون سوییچ --without-json کامپایل شده باشد، یک نمایش ساختاریافتهٔ JSON نیز تحت auth_json_audit لاگ خواهد شد.

پشتیبانی جامعی برای تمامی موارد احراز هویت و اعطای مجوز حساب‌های کاربری در Samba Active Directory Domain Controller و همچنین احراز هویت ضمنی در تغییرات گذرواژه فراهم شده است. در فایل‌سرور، احراز هویت NTLM، و اعطای مجوز SMB و RPC تحت پوشش قرار گرفته‌اند.

سطوح لاگ برای auth_audit و auth_audit_json عبارتند از:

•2: شکست احراز هویت
•3: احراز هویت موفق
•4: اعطای مجوز موفق
•5: احراز هویت و اعطای مجوز موفق برای کاربر ناشناس (Anonymous)
تغییرات پایگاه‌دادهٔ sam.ldb در AD DC تحت dsdb_audit ثبت شده و یک نسخهٔ JSON از آن تحت dsdb_json_audit لاگ می‌شود.

تغییرات مربوط به عضویت در گروه‌ها در پایگاه‌دادهٔ sam.ldb در AD DC تحت dsdb_group_audit و نمایش JSON آن تحت dsdb_group_json_audit ثبت می‌گردد.

سطوح لاگ برای dsdb_audit، dsdb_json_audit، dsdb_group_audit، dsdb_group_json_audit و dsdb_json_audit عبارتند از:

•5: تغییرات پایگاه‌داده
•5: به‌روزرسانی‌های همگام‌سازی‌شده (Replicated) از یک DC دیگر
در AD DC، تغییرات گذرواژه، بازنشانی‌های گذرواژه و تغییرات مشخصه‌های خاصِ مرتبط با احراز هویت تحت dsdb_password_audit و یک نمایش JSON از آن‌ها تحت dsdb_password_json_audit ثبت می‌شوند. تغییرات گذرواژه همچنین به عنوان رویدادهای احراز هویت از طریق auth_audit و auth_audit_json ظاهر خواهند شد.

سطوح لاگ برای dsdb_password_audit و dsdb_password_json_audit عبارتند از:

•5: تغییرات و بازنشانی‌های موفق گذرواژه، و تغییرات مشخصه‌های مربوط به احراز هویت.
تغییرات در مشخصه‌های زیر ثبت می‌شوند:
•altSecurityIdentities
•dNSHostName
•msDS-AdditionalDnsHostName
•msDS-KeyCredentialLink
•servicePrincipalName
در لاگ dsdb_password_json_audit به این موارد در فیلد "action" مقدار "Auth info change" اختصاص داده می‌شود. تغییرات و بازنشانی‌های گذرواژه در این فیلد به ترتیب مقادیر "change" و "reset" را دارند.

بازگردانی‌های تراکنش (rollbacks) و شکست‌های prepare commit تحت dsdb_transaction_audit و یک نمایش ساختاریافتهٔ JSON تحت dsdb_transaction_json_audit ثبت می‌شوند.

سطوح لاگ برای dsdb_transaction_audit و dsdb_transaction_json عبارتند از:

•5: شکست تراکنش (rollback)
•10: موفقیت تراکنش (commit)
بازگردانی‌های تراکنش (roll-back) در سامبا امکان‌پذیر هستند و با این‌که به ندرت چیزی بیش از شکست یک عملیات منفرد (مثلاً به دلیل افزودن یک رکورد دارای تداخل) را نشان می‌دهند، اما وجود دارند. گزارش‌های ممیزی پیش از تکمیل تراکنش تولید شده و به لاگ‌های سیستم ارسال می‌شوند. ثبت جزئیات تراکنش امکان شناسایی عملیات‌های گذرواژه و sam.ldb را که بازگردانی (rollback) شده‌اند و در نتیجه عملاً پایدار و ذخیره نشده‌اند، فراهم می‌کند.

هشدار
تغییرات در sam.ldb که به صورت محلی توسط کاربر root با دسترسی مستقیم به پایگاه‌داده انجام شود، در لاگ‌های سیستم ثبت نمی‌شوند، بلکه به کنسول خود مدیر سیستم فرستاده می‌شوند. گرچه این وضعیت مطلوب نیست، اما هر کاربری که قادر به اعمال چنین تغییراتی باشد، در هر صورت می‌تواند ثبت لاگ‌های ممیزی را غیرفعال کند.
Default: log level = 0

Example: log level = 3 passdb:5 auth:10 winbind:2

Example: log level = 1 full_audit:1@/var/log/audit.log winbind:2

log nt token command (G)

این گزینه می‌تواند روی دستوری تنظیم شود که هنگام ایجاد توکن‌های جدید NT فراخوانی خواهد شد.

این گزینه تنها برای اهداف توسعه و برنامه‌نویسی مفید است.

Default: log nt token command =

logon drive (G)

این پارامتر مسیر محلی را مشخص می‌کند که دایرکتوری خانگی به آن متصل خواهد شد (نگاه کنید به logon home) و تنها توسط NT Workstations استفاده می‌شود.

توجه داشته باشید که این گزینه تنها در صورتی مفید است که سامبا به عنوان یک سرور ورود (logon server) راه‌اندازی شده باشد.

Default: logon drive =

Example: logon drive = h:

logon home (G)

این پارامتر مکان دایرکتوری خانگی را هنگامی که یک Win95/98 یا NT Workstation به یک Samba PDC وارد می‌شود، مشخص می‌کند. این پارامتر به شما امکان می‌دهد برای مثال دستور

C:\>NET USE H: /HOME

را از یک خط فرمان اجرا نمایید.

این گزینه جایگزینی‌های استاندارد را می‌پذیرد و به شما اجازه می‌دهد برای هر کاربر یا ماشین، اسکریپت‌های ورود مجزایی داشته باشید.

این پارامتر می‌تواند برای کلاینت‌های Win9X استفاده شود تا اطمینان حاصل گردد نمایه‌های سرگردان (roaming profiles) در یک زیردایرکتوری از دایرکتوری خانگی کاربر ذخیره می‌شوند. این کار به شیوه زیر انجام می‌شود:

logon home = \\%N\%U\profile

این پیکربندی به سامبا می‌گوید رشته بالا را همراه با اعمال جایگزینی‌ها در زمان درخواست اطلاعات توسط کلاینت (عموماً در یک درخواست NetUserGetInfo) بازگرداند. کلاینت‌های Win9X هنگامی که کاربر دستور net use /home را اجرا می‌کند، اطلاعات را به \\server\share کوتاه می‌کنند، اما هنگام سروکار داشتن با پروفایل‌ها از کل رشته استفاده می‌نمایند.

توجه داشته باشید که در نسخه‌های پیشین سامبا، به جای logon home، مقدار logon path بازگردانده می‌شد. این امر اجرای net use /home را با مشکل مواجه می‌کرد اما اجازه می‌داد پروفایل‌ها در خارج از دایرکتوری خانگی قرار گیرند. پیاده‌سازی فعلی درست است و در صورت استفاده از ترفند بالا می‌تواند برای پروفایل‌ها استفاده شود.

این ویژگی را با تنظیم logon home = "" - یعنی با استفاده از یک رشته خالی - غیرفعال کنید.

این گزینه تنها زمانی کاربرد دارد که سامبا به عنوان یک سرور ورود به سیستم (logon server) راه‌اندازی شده باشد.

Default: logon home = \\%N\%U

Example: logon home = \\remote_smb_server\%U

logon path (G)

این پارامتر دایرکتوری محل ذخیره نمایه‌های سرگردان (roaming profiles شامل Desktop، NTuser.dat و غیره) را مشخص می‌کند. بر خلاف نسخه‌های قبلی این صفحات راهنما، این پارامتر ارتباطی با نمایه‌های سرگردان Win 9X ندارد. برای چگونگی مدیریت نمایه‌های سرگردان در سیستم‌های Win 9X، پارامتر logon home را ببینید.

این گزینه جایگزینی‌های استاندارد را می‌پذیرد و به شما اجازه می‌دهد برای هر کاربر یا ماشین، اسکریپت‌های ورود مجزایی داشته باشید. این پارامتر همچنین دایرکتوری‌ای را مشخص می‌کند که پوشه‌های "Application Data"، desktop، start menu، network neighborhood، programs و دیگر پوشه‌ها و محتویات آن‌ها از آنجا بارگیری شده و در کلاینت Windows NT شما نمایش داده می‌شوند.

اشتراک و مسیر باید برای کاربر قابل خواندن باشند تا تنظیمات شخصی و دایرکتوری‌ها بر روی کلاینت Windows NT بارگیری شوند. اشتراک باید هنگام اولین ورود کاربر قابل نوشتن باشد، تا کلاینت Windows NT بتواند NTuser.dat و سایر دایرکتوری‌ها را ایجاد کند. پس از آن، در صورت نیاز می‌توان دایرکتوری‌ها و هر یک از محتویات را فقط‌خواندنی (read-only) کرد. توصیه نمی‌شود که فایل NTuser.dat فقط‌خواندنی شود - برای دستیابی به این هدف، نام آن را به NTuser.man تغییر دهید (یک نمایه اجباری یا MANdatory profile).

کلاینت‌های ویندوز گاهی می‌توانند اتصال به اشتراک [homes] را حفظ کنند، حتی اگر هیچ کاربری به سیستم وارد نشده باشد. بنابراین، حیاتی است که logon path شامل ارجاعی به اشتراک homes نباشد (برای نمونه تنظیم این پارامتر به صورت \\%N\homes\profile_path باعث بروز مشکل خواهد شد).

این گزینه جایگزینی‌های استاندارد را می‌پذیرد و به شما امکان می‌دهد برای هر کاربر یا ماشین اسکریپت‌های ورود مجزایی داشته باشید.


هشدار (Warning)
مقدار را درون علامت نقل‌قول قرار ندهید. تنظیم این گزینه به صورت “\\%N\profile\%U” مدیریت نمایه را مختل خواهد کرد. در مواردی که از بک‌اند passdb از نوع tdbsam یا ldapsam استفاده می‌شود، در هنگام ایجاد حساب کاربری، مقدار پیکربندی‌شده برای این پارامتر در بک‌اند passdb ذخیره می‌شود و آن مقدار بر مقدار پارامتر موجود در فایل smb.conf ارجحیت خواهد داشت (آن را بازنویسی می‌کند). هرگونه خطای موجود در رکورد حساب کاربری بک‌اند passdb باید با استفاده از ابزار مناسب (pdbedit در خط فرمان، یا هر ابزار سیستمی محلی ارائه‌شده دیگر) ویرایش شود.
توجه داشته باشید که این گزینه تنها در صورتی مفید است که سامبا به عنوان یک کنترل‌کننده دامنه (domain controller) راه‌اندازی شده باشد.

استفاده از نمایه‌های سرگردان را با خالی گذاشتن مقدار این پارامتر (عدم تعیین هرگونه مقدار) غیرفعال کنید. توجه داشته باشید که حتی اگر مقدار پیش‌فرض در فایل smb.conf یک رشته خالی باشد، هر مقداری که در تنظیمات حساب کاربری در بک‌اند passdb مشخص شده باشد، اثر تنظیم این پارامتر به تهی را لغو خواهد کرد. غیرفعال‌سازی کامل استفاده از نمایه سرگردان مستلزم آن است که تنظیمات حساب کاربری نیز خالی باشند.

نمونه‌ای از کاربرد:

logon path = \\PROFILESERVER\PROFILE\%U

در این مثال، استفاده از نمایه‌های سرگردان غیرفعال شده است (که البته به تنظیمات passdb نیز وابسته است):

logon path =

Default: logon path = \\%N\%U\profile

logon script (G)

این پارامتر فایل دسته‌ای (.bat) یا فایل دستورات NT با پسوند (.cmd) را مشخص می‌کند که باید هنگام ورود موفقیت‌آمیز کاربر، روی ماشین کلاینت بارگیری و اجرا شود. این فایل باید حاوی پایان خط‌های سبک DOS یعنی CR/LF باشد. استفاده از یک ویرایشگر سبک DOS برای ایجاد این فایل توصیه می‌شود.

این اسکریپت باید یک مسیر نسبی نسبت به سرویس [netlogon] باشد. اگر سرویس [netlogon] مسیر path را برابر با /usr/local/samba/netlogon مشخص کرده باشد و logon script = STARTUP.BAT باشد، فایلی که بارگیری خواهد شد عبارت است از:

/usr/local/samba/netlogon/STARTUP.BAT

محتویات این فایل دسته‌ای کاملاً بر عهده شماست. یک دستور پیشنهادی می‌تواند افزودن NET TIME \\SERVER /SET /YES باشد تا همه ماشین‌ها مجبور شوند ساعت خود را با یک سرور زمان یکسان هماهنگ کنند. کاربرد دیگر می‌تواند افزودن NET USE U: \\SERVER\UTILS برای ابزارهای پرکاربرد، یا به عنوان مثال

NET USE Q: \\SERVER\ISO9001_QA

باشد.

توجه داشته باشید که در یک محیط امن، بسیار حیاتی است که اجازه دسترسی نوشتن به اشتراک [netlogon] داده نشود، و به کاربران مجوز نوشتن بر روی فایل‌های دسته‌ای اعطا نگردد، چرا که این موضوع امکان تغییر دلخواه فایل‌های دسته‌ای و نقض امنیت را فراهم می‌آورد.

این گزینه جایگزینی‌های استاندارد را می‌پذیرد و به شما اجازه می‌دهد برای هر کاربر یا ماشین، اسکریپت‌های ورود مجزایی داشته باشید.

این گزینه تنها زمانی کاربرد دارد که سامبا به عنوان یک سرور ورود در نقش یک کنترل‌کننده دامنه کلاسیک (classic domain controller) راه‌اندازی شده باشد. اگر سامبا به عنوان یک کنترل‌کننده دامنه Active Directory راه‌اندازی شده باشد، مشخصه LDAP با نام scriptPath به جای آن استفاده می‌شود. برای پیکربندی‌هایی که در آن‌ها passdb backend = ldapsam مورد استفاده قرار گرفته است، این گزینه تنها یک مقدار پیش‌فرض را برای زمانی که مشخصه LDAP با نام sambaLogonScript وجود نداشته باشد تعریف می‌کند.

Default: logon script =

Example: logon script = scripts\%U.bat

log writeable files on exit (G)

هنگامی که اتصال شبکه بین یک کلاینت CIFS و سامبا قطع می‌شود، سامبا چاره‌ای جز بستن سمت سرور اتصال شبکه ندارد. در صورت بروز این اتفاق، خطر خرابی داده‌ها وجود دارد زیرا کلاینت ویندوز تمامی عملیات نوشتنی را که برنامه ویندوز درخواست کرده بود تکمیل نکرده است. تنظیم این گزینه روی "yes" باعث می‌شود که smbd فهرستی از تمام فایل‌هایی را که در هنگام قطع اتصال شبکه برای نوشتن باز بوده‌اند، با پیامی در سطح 0 لاگ کند. این فایل‌ها مواردی هستند که به طور بالقوه آسیب دیده‌اند. هدف از این گزینه، کمک به مدیر سیستم جهت در اختیار داشتن فهرستی از فایل‌ها برای انجام بررسی‌های یکپارچگی است.

Default: log writeable files on exit = no

lppause command (S)

این پارامتر دستوری را مشخص می‌کند که باید روی میزبان سرور اجرا شود تا چاپ یا صف‌بندی (spooling) یک کار چاپ (print job) مشخص متوقف شود.

این دستور باید برنامه یا اسکریپتی باشد که نام چاپگر و شماره کار را برای مکث دادن به کار چاپ دریافت کند. یکی از روش‌های پیاده‌سازی این قابلیت استفاده از اولویت‌های کاری است، به طوری که کارهای با اولویت بسیار پایین به چاپگر ارسال نمی‌شوند.

اگر %p مشخص شود، نام چاپگر به جای آن قرار می‌گیرد. %j با شماره کار (یک عدد صحیح) جایگزین می‌شود. در HPUX (نگاه کنید به printing=hpux )، اگر گزینه -p%p به دستور lpq افزوده شود، کار چاپ با وضعیت صحیح نمایش داده خواهد شد؛ یعنی اگر اولویت کار کمتر از اولویت تعیین‌شده (fence priority) باشد، وضعیت PAUSED خواهد داشت، در حالی که اگر اولویت برابر یا بیشتر باشد وضعیت آن SPOOLED یا PRINTING خواهد بود.

توجه داشته باشید که استفاده از مسیر مطلق در دستور lppause اقدام مناسبی است زیرا ممکن است متغیر PATH در دسترس سرور نباشد.

در حال حاضر هیچ مقدار پیش‌فرضی برای این رشته تعریف نشده است، مگر این که مقدار پارامتر printing برابر با SYSV باشد که در این صورت مقدار پیش‌فرض عبارت است از: lp -i %p-%j -H hold یا اگر مقدار پارامتر printing برابر با SOFTQ باشد، مقدار پیش‌فرض عبارت است از: qstat -s -j%j -h.

Default: lppause command = # determined by printing parameter

Example: lppause command = /usr/bin/lpalt %p-%j -p0

lpq cache time (G)

این پارامتر مدت زمانی را کنترل می‌کند که اطلاعات lpq در حافظه موقت (کَش) ذخیره می‌شوند تا از فراخوانی بیش از حد دستور lpq جلوگیری شود. برای هر حالت متفاوتی از دستور lpq که توسط سیستم استفاده می‌شود، یک کَش جداگانه نگهداری خواهد شد؛ بنابراین اگر برای کاربران مختلف از دستورات lpq متفاوتی استفاده کنید، اطلاعات کَش میان آن‌ها به اشتراک گذاشته نمی‌شود.

فایل‌های کَش در مسیر /tmp/lpq.xxxx ذخیره می‌شوند که در آن xxxx هش دستور lpq مورد استفاده است.

مقدار پیش‌فرض 30 ثانیه است؛ بدین معنی که اگر داده‌های کَش‌شده کمتر از 30 ثانیه قبل ذخیره شده باشند، از نتایج کَش‌شده دستور همسان قبلی lpq استفاده خواهد شد. چنانچه دستور lpq شما بسیار کند اجرا می‌شود، تعیین یک مقدار بزرگ‌تر توصیه می‌گردد.

مقدار 0 استفاده از کَش را به طور کامل غیرفعال می‌کند.

Default: lpq cache time = 30

Example: lpq cache time = 10

lpq command (S)

این پارامتر دستوری را مشخص می‌کند که باید در میزبان سرور اجرا شود تا اطلاعات وضعیت چاپگر به سبک lpq دریافت شود.

این دستور باید برنامه یا اسکریپتی باشد که نام چاپگر را به عنوان تنها پارامتر خود دریافت کرده و اطلاعات وضعیت چاپگر را در خروجی نمایش دهد.

در حال حاضر از ۹ سبک اطلاعات وضعیت چاپگر پشتیبانی می‌شود؛ BSD، AIX، LPRNG، PLP، SYSV، HPUX، QNX، CUPS و SOFTQ. این موارد بیشتر سیستم‌های UNIX را پوشش می‌دهند. شما می‌توانید نوع مورد انتظار را با استفاده از گزینهٔ printing = کنترل کنید.

برخی کلاینت‌ها (به‌ویژه Windows for Workgroups) ممکن است شمارهٔ اتصال (connection number) مربوط به چاپگری را که وضعیت آن را درخواست می‌کنند به درستی ارسال نکنند. برای رفع این مشکل، سرور وضعیت نخستین سرویس چاپگری را گزارش می‌دهد که کلاینت به آن متصل شده است. این وضعیت تنها در صورتی رخ می‌دهد که شمارهٔ اتصال ارسال‌شده نامعتبر باشد.

اگر یک %p مشخص شده باشد، نام چاپگر به جای آن قرار می‌گیرد. در غیر این صورت نام چاپگر در انتهای دستور قرار داده خواهد شد.

توجه داشته باشید که گنجاندن مسیر مطلق در lpq command رویکرد مناسبی است، زیرا ممکن است $PATH در دسترس سرور نباشد. در صورت کامپایل سامبا با کتابخانه‌های CUPS، به هیچ lpq command نیازی نخواهد بود زیرا smbd برای دریافت فهرست صف چاپ مستقیماً یک فراخوانی کتابخانه‌ای انجام می‌دهد.

Default: lpq command = # بر اساس پارامتر printing تعیین می‌شود

Example: lpq command = /usr/bin/lpq -P%p

lpresume command (S)

این پارامتر دستوری را مشخص می‌کند که باید در میزبان سرور اجرا شود تا چاپ یا ارسال به صف (spooling) یک کار چاپ (print job) خاص از سر گرفته شده یا ادامه یابد.

این دستور باید برنامه یا اسکریپتی باشد که نام چاپگر و شمارهٔ کار را دریافت کند تا فرایند چاپ آن کار از سر گرفته شود. همچنین پارامتر lppause command را ببینید.

اگر یک %p داده شود، نام چاپگر به جای آن قرار می‌گیرد. %j با شمارهٔ کار (یک عدد صحیح) جایگزین می‌شود.

توجه داشته باشید که گنجاندن مسیر مطلق در lpresume command رویکرد مناسبی است، زیرا ممکن است PATH در دسترس سرور نباشد.

همچنین پارامتر printing را ببینید.

Default: در حال حاضر هیچ مقدار پیش‌فرضی برای این رشته تعریف نشده است، مگر اینکه مقدار پارامتر printing برابر با SYSV باشد، که در این صورت پیش‌فرض عبارت است از:

lp -i %p-%j -H resume

یا اگر مقدار پارامتر printing برابر با SOFTQ باشد، پیش‌فرض عبارت است از:

qstat -s -j%j -r

Default: lpresume command = # بر اساس پارامتر printing تعیین می‌شود

Example: lpresume command = /usr/bin/lpalt %p-%j -p2

lprm command (S)

این پارامتر دستوری را مشخص می‌کند که باید در میزبان سرور اجرا شود تا یک کار چاپ را حذف کند.

این دستور باید برنامه یا اسکریپتی باشد که نام چاپگر و شمارهٔ کار چاپ را دریافت کرده و آن را حذف کند.

اگر یک %p داده شود، نام چاپگر به جای آن قرار می‌گیرد. %j با شمارهٔ کار (یک عدد صحیح) جایگزین می‌شود.

توجه داشته باشید که گنجاندن مسیر مطلق در lprm command رویکرد مناسبی است، زیرا ممکن است PATH در دسترس سرور نباشد.

نمونه‌های کاربرد عبارتند از:

lprm command = /usr/bin/lprm -P%p %j
یا
lprm command = /usr/bin/cancel %p-%j

Default: lprm command = # بر اساس پارامتر printing تعیین می‌شود

lsa over netlogon (G)

تنظیم این گزینهٔ منسوخ‌شده (deprecated) به سرور RPC در AD DC اجازه می‌دهد تا به واسط LSARPC روی پایپ IPC به نشانی \pipe\netlogon پاسخ دهد.

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

اگر غیرفعال باشد (حالت پیش‌فرض)، AD DC می‌تواند کارایی بهتری ارائه دهد، زیرا سرور netlogon مجزا شده و می‌تواند به صورت چندین فرآیند اجرا شود.

Default: lsa over netlogon = no

machine password timeout (G)

اگر یک سرور Samba عضوی از دامنهٔ Windows NT یا Active Directory باشد (پارامترهای security = domain و security = ads را ببینید)، آنگاه فرآیند در حال اجرای winbindd به‌طور دوره‌ای تلاش می‌کند گذرواژهٔ حساب ماشین (MACHINE ACCOUNT PASSWORD) ذخیره‌شده در TDB با نام secrets.tdb را تغییر دهد. این پارامتر مشخص می‌کند که این گذرواژه هر چند وقت یک‌بار، بر حسب ثانیه، تغییر کند. مقدار پیش‌فرض یک هفته است (بیان‌شده بر حسب ثانیه)، درست مانند یک سرور عضو دامنه در Windows NT.

همچنین smbpasswd(8) و پارامترهای security = domain و security = ads را ببینید.

Default: machine password timeout = 604800

magic output (S)

این پارامتر نام فایلی را مشخص می‌کند که شامل خروجی ایجادشده توسط یک اسکریپت جادویی (magic script) خواهد بود (پارامتر magic script در زیر را ببینید).

هشدار
اگر دو کلاینت از یک magic script در دایرکتوری یکسانی استفاده کنند، محتوای فایل خروجی نامشخص و تعریف‌نشده خواهد بود.
Default: magic output = # <magic script name>.out

Example: magic output = myfile.txt

magic script (S)

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

اسکریپت‌هایی که به این شیوه اجرا می‌شوند، پس از اتمام کار حذف خواهند شد؛ مشروط بر اینکه کاربر سطح دسترسی مناسب را داشته باشد و مجوزهای فایل اجازهٔ حذف را بدهند.

اگر اسکریپت خروجی تولید کند، این خروجی به فایلی ارسال می‌شود که توسط پارامتر magic output (در بالا) مشخص شده است.

توجه داشته باشید که برخی پوسته‌ها (shellها) قادر به تفسیر اسکریپت‌هایی که حاوی CR/LF به جای CR به عنوان نشانگر پایان خط هستند، نیستند. اسکریپت‌های جادویی باید به همان صورت که هستند روی میزبان قابل اجرا باشند، که برای برخی میزبان‌ها و برخی پوسته‌ها نیازمند فیلتر کردن در سمت DOS خواهد بود.

اسکریپت‌های جادویی آزمایشی (EXPERIMENTAL) هستند و نباید به آن‌ها اتکا کرد.

Default: magic script =

Example: magic script = user.csh

mangled names (S)

این گزینه کنترل می‌کند که آیا نام‌های غیر DOS در UNIX باید به نام‌های سازگار با DOS نگاشت شوند ("mangled" شوند) و قابل مشاهده باشند، یا اینکه نام‌های غیر DOS صرفاً باید نادیده گرفته شوند.

برای جزئیات مربوط به نحوهٔ کنترل فرایند تغییر شکل، بخش تغییر شکل نام‌ها (name mangling) را ببینید.

تنظیمات ممکن برای این گزینه عبارتند از:

•yes - تغییر شکل نام را برای تمام نام‌هایی که منطبق بر قالب 8.3 داس (DOS) نیستند، فعال می‌کند.
•no - هرگونه تغییر شکل نام را غیرفعال می‌کند.
•illegal (default) - تغییر شکل نام را فقط برای نام‌هایی با نویسه‌های غیرمجاز در NTFS انجام می‌دهد. این گزینه معقول‌ترین تنظیم برای کلاینت‌های امروزی است که دیگر از نام کوتاه (shortname) استفاده نمی‌کنند.
در صورت استفاده از تغییر شکل، روش کار به صورت زیر خواهد بود:
•اولین نویسه‌های الفبایی-عددی (حداکثر تا ۵ نویسه) قبل از راست‌ترین نقطه در نام فایل حفظ می‌شوند، به حروف بزرگ تبدیل می‌گردند و به عنوان (حداکثر) ۵ نویسهٔ اول نام تغییرشکل‌یافته ظاهر می‌شوند.
•یک نویسهٔ مدک "~" به بخش اول نام تغییرشکل‌یافته اضافه می‌شود، و در ادامه یک دنبالهٔ دورقمی یکتا بر اساس نام ریشهٔ اصلی (یعنی نام فایل اصلی منهای پسوند نهایی آن) قرار می‌گیرد. پسوند نهایی تنها در صورتی در محاسبهٔ هش گنجانده می‌شود که حاوی حروف بزرگ باشد یا طول آن بیش از سه نویسه باشد.

توجه داشته باشید اگر کاراکتر '~' را نمی‌پسندید، نویسهٔ مورد استفاده را می‌توان با گزینهٔ mangling char تعیین کرد.

•فایل‌هایی که نام UNIX آن‌ها با یک نقطه شروع می‌شود، به صورت فایل‌های مخفی DOS نشان داده خواهند شد. نام تغییرشکل‌یافته همانند سایر نام‌های فایل ایجاد می‌شود، با این تفاوت که نقطهٔ ابتدایی حذف شده و پسوند آن بدون در نظر گرفتن پسوند اصلی، برابر با "___" (سه خط زیرین) خواهد بود.
مقدار هش دورقمی از نویسه‌های الفبایی-عددی بزرگ تشکیل می‌شود.

این الگوریتم تنها در صورتی ممکن است تداخل نام (name collision) ایجاد کند که فایل‌های موجود در یک دایرکتوری در پنج نویسهٔ الفبایی-عددی اول یکسان باشند. احتمال وقوع چنین تداخلی ۱/۱۳۰۰ است.

قابلیت تغییر شکل نام (در صورت فعال بودن) این امکان را فراهم می‌کند که فایلی از طریق Windows/DOS بین دایرکتوری‌های UNIX کپی شود در حالی که نام بلند UNIX آن حفظ گردد. فایل‌های UNIX می‌توانند از سمت Windows/DOS به پسوند جدیدی تغییر نام داده شوند و در عین حال همان نام پایه (basename) را حفظ کنند. نام‌های تغییرشکل‌یافته بین نشست‌ها (sessions) تغییر نمی‌کنند.

Default: mangled names = illegal

Example: mangled names = no

mangle prefix (G)

تعداد نویسه‌های پیشوند برگرفته از نام اصلی را هنگام تولید نام‌های دگرگون‌شده (mangled names) کنترل می‌کند. مقدار بزرگ‌تر باعث ایجاد یک هش ضعیف‌تر و در نتیجه تداخل نامی (name collisions) بیشتر می‌شود. مقدار کمینه ۱ و مقدار بیشینه ۶ است.

پارامتر mangle prefix تنها زمانی مؤثر است که mangling method روی hash2 تنظیم شده باشد.

Default: mangle prefix = 1

Example: mangle prefix = 4

mangling char (S)

این گزینه کنترل می‌کند که چه نویسه‌ای به عنوان نویسهٔ جادویی (magic) در دگرگون‌سازی نام‌ها (name mangling) استفاده شود. مقدار پیش‌فرض '~' است، اما ممکن است با برخی نرم‌افزارها تداخل داشته باشد. از این گزینه استفاده کنید تا آن را روی هر نویسه‌ای که ترجیح می‌دهید تنظیم نمایید. این گزینه تنها زمانی مؤثر است که mangling method روی hash تنظیم شده باشد.

Default: mangling char = ~

Example: mangling char = ^

mangling method (G)

الگوریتم مورد استفاده برای تولید نام‌های دگرگون‌شده را کنترل می‌کند. می‌تواند دو مقدار متفاوت بپذیرد: «hash» و «hash2». مقدار «hash» الگوریتمی است که سال‌ها در Samba استفاده می‌شد و در Samba 2.2.x پیش‌فرض بود. اکنون «hash2» پیش‌فرض است و جدیدتر بوده و برای نام‌ها الگوریتم بهتری به‌شمار می‌رود (تداخل نامی کمتری تولید می‌کند). بسیاری از برنامه‌های کاربردی Win32 نام‌های دگرگون‌شده را ذخیره می‌کنند و بنابراین تغییر الگوریتم نباید با سهل‌انگاری انجام شود، چرا که ممکن است کارکرد این برنامه‌ها مختل شود مگر اینکه مجدداً نصب شوند.

Default: mangling method = hash2

Example: mangling method = hash

map acl inherit (S)

این پارامتر بولی تنها برای سیستم‌هایی کاربرد دارد که از ACLهای استاندارد NFS4 پشتیبانی نمی‌کنند و فقط از یک پیاده‌سازی پیش‌نویس POSIX برای ACLها پشتیبانی می‌نمایند. لینوکس عملاً تنها سیستم یونیکسی رایجی است که هنوز ACLهای استاندارد NFS4 را ارائه نمی‌دهد. در چنین سیستم‌هایی این پارامتر کنترل می‌کند که آیا smbd(8) تلاش خواهد کرد تا پرچم‌های 'protected' (ارث‌بری نشود) در ACLهای ویندوز را به یک صفت گسترش‌یافته به نام user.SAMBA_PAI (ارث‌بری پیش‌نویس POSIX ACL) نگاشت کند یا خیر. این پارامتر نیازمند پشتیبانی از صفت‌های گسترش‌یافته روی سیستم‌فایل است و به ویرایشگر Windows ACL اجازه می‌دهد تا اطلاعات (عدم) ارث‌بری را ذخیره کند، در حالی که NT ACLها با بهترین تلاش ممکن به ACLهای پیش‌نویس POSIX پیاده‌سازی‌شده توسط سیستم‌عامل و سیستم‌فایل نگاشت می‌شوند.

Default: map acl inherit = no

map archive (S)

این گزینه کنترل می‌کند که آیا صفت آرشیو DOS باید به بیت اجرایی مالک در یونیکس نگاشت شود یا خیر. بیت آرشیو DOS زمانی فعال می‌شود که یک فایل از زمان آخرین پشتیبان‌گیری تغییر کرده باشد. یکی از انگیزه‌های این گزینه جلوگیری از اجرایی شدن فایل‌هایی است که Samba یا رایانه شما تحت یونیکس دستکاری می‌کنند. این مسئله می‌تواند برای کدهای منبع به اشتراک‌گذاشته‌شده، اسناد و غیره بسیار آزاردهنده باشد...

توجه داشته باشید که اگر پارامتر store dos attributes تنظیم شده باشد، این پارامتر نادیده گرفته خواهد شد، چرا که در این صورت صفت آرشیو DOS در یک صفت گسترش‌یافته یونیکس ذخیره می‌شود.

توجه داشته باشید که این امر نیازمند تنظیم بودن پارامتر create mask به‌گونه‌ای است که بیت اجرایی مالک پوشانده نشود (یعنی باید شامل 100 باشد). برای جزئیات به پارامتر create mask مراجعه کنید.

Default: map archive = yes

map hidden (S)

این گزینه کنترل می‌کند که آیا فایل‌های مخفی به سبک DOS به بیت اجرایی همگان (world execute bit) در یونیکس نگاشت شوند یا خیر.

توجه داشته باشید که اگر پارامتر store dos attributes تنظیم شده باشد، این پارامتر نادیده گرفته خواهد شد، چرا که در این صورت صفت مخفی DOS در یک صفت گسترش‌یافته یونیکس ذخیره می‌شود.

توجه داشته باشید که این امر مستلزم تنظیم پارامتر create mask به‌گونه‌ای است که بیت اجرایی همگان پوشانده نشود (یعنی باید شامل 001 باشد). برای جزئیات به پارامتر create mask مراجعه کنید.

Default: map hidden = no

map readonly (S)

این گزینه نحوهٔ نگاشت صفت فقط‌خواندنی (read only) داس را از یک سیستم‌فایل یونیکس کنترل می‌کند.

این پارامتر می‌تواند سه مقدار مختلف بپذیرد که به smbd(8) می‌گویند چگونه صفت فقط‌خواندنی را روی فایل‌ها نمایش دهد؛ در حالتی که یا store dos attributes روی No تنظیم شده است، یا هیچ صفت گسترش‌یافته‌ای وجود ندارد. اگر store dos attributes روی yes تنظیم شده باشد، این پارامتر نادیده گرفته می‌شود. این پارامتر جدید در سامبا نسخهٔ 3.0.21 معرفی شده است.

سه مقدار تنظیمی عبارتند از:

•Yes - صفت فقط‌خواندنی DOS به معکوس بیت نوشتن کاربر یا مالک در حالت مجوزهای یونیکس نگاشت می‌شود. اگر بیت نوشتن مالک تنظیم نشده باشد، صفت فقط‌خواندنی به عنوان فعال برای فایل گزارش می‌شود. اگر صفت فقط‌خواندنی DOS تنظیم شده باشد، سامبا بیت‌های نوشتن مالک، گروه و دیگران را صفر می‌کند. بیت‌های نوشتن تنظیم‌شده در یک ACL توسط سامبا نادیده گرفته می‌شوند. اگر صفت فقط‌خواندنی DOS برداشته شود، سامبا صرفاً بیت نوشتن مالک را یک می‌کند.
•Permissions - صفت فقط‌خواندنی DOS به مجوزهای مؤثر کاربر متصل‌شونده نگاشت می‌شود، که توسط smbd(8) از طریق خواندن مجوزهای یونیکس و ACL سیستم‌فایل (در صورت وجود) ارزیابی می‌گردد. اگر کاربر متصل‌شونده مجوز تغییر فایل را نداشته باشد، صفت فقط‌خواندنی به عنوان فعال روی فایل گزارش می‌شود.
•No - صفت فقط‌خواندنی DOS تحت تأثیر مجوزها قرار نمی‌گیرد و فقط از طریق روش store dos attributes قابل تنظیم است. این گزینه می‌تواند برای به اشتراک‌گذاری CDهای متصل‌شده (mount شده) مفید باشد.
توجه داشته باشید که اگر پارامتر store dos attributes تنظیم شده باشد، این پارامتر نادیده گرفته خواهد شد، زیرا صفت 'read-only' داس در یک صفت گسترش‌یافته یونیکس ذخیره می‌شود.

مقدار پیش‌فرض در نسخه 4.9.0 سامبا و بالاتر به no تغییر یافته است تا سازگاری بهتری با فایل‌سرور ویندوز در نصب پیش‌فرض حاصل شود. علاوه بر این، تنظیم پیش‌فرض store dos attributes نیز در نسخه 4.9.0 سامبا و بالاتر به Yes تغییر یافته است.

Default: map readonly = no

map system (S)

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

توجه داشته باشید که اگر پارامتر store dos attributes تنظیم شده باشد، این پارامتر نادیده گرفته خواهد شد، چرا که صفت سیستمی DOS در یک صفت گسترش‌یافته یونیکس ذخیره می‌شود.

توجه داشته باشید که این امر مستلزم تنظیم پارامتر create mask به‌گونه‌ای است که بیت اجرایی گروه پوشانده نشود (یعنی باید شامل 010 باشد). برای جزئیات بیشتر به پارامتر create mask مراجعه کنید.

Default: map system = no

map to guest (G)

این پارامتر می‌تواند چهار مقدار متفاوت بپذیرد که به smbd(8) می‌گویند با درخواست‌های ورود کاربری که به نوعی با یک کاربر معتبر یونیکس مطابقت ندارند، چه برخوردی داشته باشد.

چهار مقدار تنظیمی عبارتند از:

•Never - بدین معنی است که درخواست‌های ورود با گذرواژهٔ نامعتبر رد می‌شوند. این حالت پیش‌فرض است.
•Bad User - بدین معنی است که ورود کاربران با گذرواژهٔ نامعتبر رد می‌شود، مگر اینکه نام کاربری اصلاً وجود نداشته باشد، که در این صورت به عنوان ورود مهمان تلقی شده و به guest account نگاشت می‌شود.
•Bad Password - به این معنی است که ورود کاربران با گذرواژهٔ نامعتبر به عنوان ورود مهمان در نظر گرفته شده و به guest account نگاشت می‌شود. توجه داشته باشید که این می‌تواند مشکلاتی ایجاد کند، زیرا به این معنی است که هر کاربری که گذرواژهٔ خود را اشتباه وارد کند، بدون سر و صدا به عنوان «مهمان» وارد سیستم می‌شود - و دلیل عدم دسترسی به فایل‌هایی که فکر می‌کند باید به آن‌ها دسترسی داشته باشد را نخواهد فهمید - زیرا هیچ پیامی مبنی بر اشتباه بودن گذرواژه به او نشان داده نشده است. در صورت تنظیم پارامتر map to guest به این صورت، کارکنان میز خدمت (Helpdesk) از شما متنفر خواهند شد :-).
•Bad Uid - فقط زمانی قابل اعمال است که سامبا در نوعی از حالت امنیت دامنه (security = {domain|ads}) پیکربندی شده باشد، و بدان معناست که ورود کاربرانی که با موفقیت احراز هویت شده‌اند اما هیچ حساب کاربری یونیکس معتبری ندارند (و smbd قادر به ایجاد آن نیست) باید به حساب مهمانِ تعیین‌شده نگاشت شود. این رفتار پیش‌فرض در نسخه‌های Samba 2.x بود. توجه داشته باشید اگر یک سرور عضو در حال اجرای winbindd باشد، این گزینه هرگز مورد نیاز نخواهد بود زیرا کتابخانه nss_winbind کاربران و گروه‌های دامنه ویندوز را از طریق رابط Name Service Switch به سیستم‌عامل زیرین صادر می‌کند.
توجه داشته باشید که این پارامتر برای راه‌اندازی سرویس‌های اشتراک مهمان («Guest») مورد نیاز است. دلیل این امر آن است که در این حالت‌ها، نام منبع درخواستی تا پس از احراز هویت موفق کلاینت توسط سرور، به سرور ارسال نمی‌شود، بنابراین سرور نمی‌تواند تصمیمات احراز هویت را در زمان مناسب (هنگام اتصال به اشتراک) برای اشتراک‌های «Guest» اتخاذ کند.

Default: map to guest = Never

Example: map to guest = Bad User

max connections (S)

این گزینه امکان محدود کردن تعداد اتصالات هم‌زمان به یک سرویس را فراهم می‌کند. اگر max connections بزرگ‌تر از 0 باشد، در صورتی که این تعداد اتصال به سرویس از قبل باز باشد، اتصالات جدید رد خواهند شد. مقدار صفر به این معنی است که تعداد نامحدودی اتصال می‌تواند برقرار شود.

برای پیاده‌سازی این قابلیت از فایل‌های قفل رکورد (record lock files) استفاده می‌شود. این فایل‌های قفل در دایرکتوری مشخص‌شده توسط گزینهٔ lock directory ذخیره خواهند شد.

Default: max connections = 0

Example: max connections = 10

max disk size (G)

این گزینه به شما امکان می‌دهد برای اندازهٔ ظاهری دیسک‌ها یک حد بالا تعیین کنید. اگر این گزینه را روی 100 تنظیم کنید، تمام اشتراک‌ها طوری نمایش داده می‌شوند که گویی اندازه‌ای بزرگ‌تر از 100 مگابایت ندارند.

توجه داشته باشید که این گزینه مقدار داده‌ای را که می‌توانید روی دیسک ذخیره کنید محدود نمی‌کند. در حالت بالا، شما همچنان می‌توانید بسیار بیشتر از 100 مگابایت اطلاعات روی دیسک ذخیره کنید، اما اگر کلاینتی مقدار فضای خالی دیسک یا اندازهٔ کل دیسک را استعلام کند، نتیجه به مقدار مشخص‌شده در max disk size محدود خواهد شد.

این گزینه عمدتاً برای دور زدن باگ‌های موجود در برخی از نرم‌افزارهایی کاربرد دارد که نمی‌توانند دیسک‌های بسیار بزرگ، به‌ویژه دیسک‌های بزرگ‌تر از ۱ گیگابایت را مدیریت کنند.

مقدار 0 برای max disk size به معنای نبود محدودیت است.

Default: max disk size = 0

Example: max disk size = 1000

max log size (G)

این گزینه (یک عدد صحیح بر حسب کیلوبایت) حداکثر اندازه‌ای را که فایل لاگ مجاز است به آن برسد مشخص می‌کند. سامبا به‌طور دوره‌ای اندازهٔ فایل را بررسی کرده و در صورت فراتر رفتن از این حد، با افزودن پسوند .old نام فایل را تغییر می‌دهد.

اندازهٔ 0 به معنای نامحدود بودن است.

Default: max log size = 5000

Example: max log size = 1000

max mux (G)

این گزینه حداکثر تعداد عملیات‌های هم‌زمان معلق SMB را کنترل می‌کند که سامبا به کلاینت اعلام می‌دارد مجاز هستند. شما هرگز نباید نیازی به تنظیم این پارامتر داشته باشید.

Default: max mux = 50

max open files (G)

این پارامتر حداکثر تعداد فایل‌های بازی را که یک فرایند سرویس‌دهی فایل smbd(8) می‌تواند در هر لحظه برای یک کلاینت باز نگه دارد، محدود می‌کند. مقدار این پارامتر می‌تواند بسیار بالا تنظیم شود (16384)، زیرا سامبا برای هر فایل بازنشده تنها از یک بیت استفاده می‌کند. تنظیم این پارامتر روی مقداری کمتر از 16384 باعث هشدار سامبا و بازگرداندن مقدار آن به حداقل 16384 می‌شود، چرا که Windows 7 به در دسترس بودن این تعداد دستگیرهٔ فایل باز (file handle) وابسته است.

محدودیت تعداد فایل‌های باز معمولاً به جای این پارامتر توسط محدودیت توصیف‌گر فایل به‌ازای هر فرایند در UNIX تعیین می‌شود؛ بنابراین هرگز نباید نیازی به تغییر این پارامتر داشته باشید.

Default: max open files = 16384

max print jobs (S)

این پارامتر حداکثر تعداد کارهای چاپی مجاز در صف چاپگر سامبا را در هر لحظه محدود می‌کند. اگر این تعداد فراتر رود، smbd(8) پیام "Out of Space" را به کلاینت مخابره خواهد کرد.

Default: max print jobs = 1000

Example: max print jobs = 5000

max reported print jobs (S)

این پارامتر حداکثر تعداد کارهای نمایش‌داده‌شده در ناظر درگاه (port monitor) را برای صف چاپگر سامبا در هر لحظه محدود می‌کند. اگر از این تعداد فراتر رود، کارهای مازاد نمایش داده نخواهند شد. مقدار صفر به این معنی است که هیچ محدودیتی برای تعداد کارهای چاپی گزارش‌شده وجود ندارد.

Default: max reported print jobs = 0

Example: max reported print jobs = 1000

max smbd processes (G)

این پارامتر حداکثر تعداد فرایندهای smbd(8) هم‌زمان در حال اجرا روی یک سیستم را محدود می‌کند و به‌عنوان راهکاری موقت برای جلوگیری از افت کیفیت سرویس‌دهی به کلاینت‌ها در مواقعی است که سرور منابع کافی برای مدیریت اتصالات بیشتر از این مقدار را ندارد. به یاد داشته باشید که در شرایط کاری عادی، هر کاربر یک فرایند smbd(8) اختصاصی برای خود خواهد داشت تا اتصالات به تمام اشتراک‌ها را از یک میزبان مشخص مدیریت کند.

در یک Samba ADDC که مدل فرایند استاندارد را اجرا می‌کند، این گزینه تعداد فرایندهایی را که برای مدیریت درخواست‌ها منشعب (fork) می‌شوند محدود می‌سازد. در حال حاضر، فرایندهای جدید فقط برای درخواست‌های ldap و netlogon منشعب می‌شوند.

Default: max smbd processes = 0

Example: max smbd processes = 1000

max stat cache size (G)

این پارامتر اندازهٔ حافظهٔ هرگونه stat cache مورد استفاده برای سرعت بخشیدن به نگاشت نام‌های غیرحساس به حروف کوچک و بزرگ را محدود می‌کند. این پارامتر بیانگر تعداد واحدهای کیلوبایتی (1024) است که حافظهٔ پنهان stat مجاز به استفاده از آن‌هاست. مقدار صفر که به معنای نامحدود است، به دلیل افزایش مصرف حافظه توصیه نمی‌شود. شما نباید نیازی به تغییر این پارامتر داشته باشید.

Default: max stat cache size = 512

Example: max stat cache size = 100

max ttl (G)

این گزینه به nmbd(8) اعلام می‌کند که «طول عمر» ('time to live') پیش‌فرض نام‌های NetBIOS (بر حسب ثانیه) زمانی که nmbd نامی را از طریق یک بستهٔ پخشی (broadcast) یا از یک سرور WINS درخواست می‌کند، چقدر باشد. شما هرگز نباید نیازی به تغییر این پارامتر داشته باشید. مقدار پیش‌فرض ۳ روز است.

Default: max ttl = 259200

max wins ttl (G)

این گزینه به smbd(8) در زمان ایفای نقش به‌عنوان یک سرور WINS (wins support = yes) اعلام می‌کند حداکثر «طول عمر» ('time to live') نام‌های NetBIOS که توسط nmbd اعطا می‌شود (بر حسب ثانیه) چقدر باشد. شما هرگز نباید نیازی به تغییر این پارامتر داشته باشید. مقدار پیش‌فرض ۶ روز (518400 ثانیه) است.

Default: max wins ttl = 518400

max xmit (G)

این گزینه حداکثر اندازهٔ بسته‌ای را که توسط smbd(8) سامبا برای پروتکل SMB1 مذاکره می‌شود کنترل می‌کند. مقدار پیش‌فرض 16644 است که با رفتار Windows 2000 مطابقت دارد. مقادیر زیر 2048 احتمالاً باعث بروز مشکلاتی خواهند شد. شما هرگز نباید نیازی به تغییر این پارامتر از مقدار پیش‌فرض آن داشته باشید.

Default: max xmit = 16644

Example: max xmit = 8192

mdns name (G)

این پارامتر نامی را که پشتیبانی DNS چندپخشی (multicast DNS) به‌عنوان نام میزبان (hostname) خود اعلان می‌کند، کنترل می‌نماید.

حالت پیش‌فرض استفاده از نام NETBIOS است که معمولاً همان نام میزبان با حروف بزرگ می‌باشد.

تنظیم مقدار روی mdns، پیکربندی نام میزبان را به کتابخانهٔ MDNS مورد استفاده محول خواهد کرد.

Default: mdns name = netbios

message command (G)

این پارامتر مشخص می‌کند هنگام دریافت پیامی به سبک WinPopup توسط سرور، چه دستوری اجرا شود.

این دستور معمولاً باید دستوری باشد که پیام را به شکلی تحویل دهد. چگونگی انجام این کار به خلاقیت شما بستگی دارد.

یک نمونه به شرح زیر است:

message command = csh -c 'xedit %s;rm %s' &

این دستور پیام را با استفاده از xedit تحویل داده و سپس آن را حذف می‌کند. توجه داشته باشید که بسیار مهم است این دستور فوراً بازگردد (خاتمه یابد). به همین دلیل نویسنده علامت '&' را در انتهای آن قرار داده است. اگر دستور بلافاصله بازنگردد، رایانه‌های شخصی (PCها) ممکن است هنگام ارسال پیام‌ها دچار ایست شوند (هرچند با امیدواری، پس از ۳۰ ثانیه وضعیت بازیابی خواهد شد).

تمام پیام‌ها در قالب کاربر مهمان سراسری (global guest user) تحویل داده می‌شوند. این دستور جایگزینی‌های استاندارد متغیرها را می‌پذیرد، گرچه %u کار نخواهد کرد (در این حالت %U ممکن است انتخاب بهتری باشد).

به‌جز جایگزینی‌های استاندارد، برخی متغیرهای دیگر نیز اعمال می‌شوند؛ به‌ویژه:

•%s = نام فایلی که حاوی پیام است.
•%t = مقصدی که پیام به آن ارسال شده است (احتمالاً نام سرور).
•%f = فرستندهٔ پیام.
شما می‌توانید این دستور را طوری پیکربندی کنید که ایمیل ارسال کند یا هر کار دیگری را که ترجیح می‌دهید انجام دهد. در صورت داشتن ایده‌های جالب، لطفاً ما را در جریان بگذارید.

در اینجا راهکاری برای ارسال پیام‌ها به‌صورت ایمیل به root آمده است:

message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s

اگر پارامتر message command را تعیین نکرده باشید، پیام تحویل داده نخواهد شد و سامبا به فرستنده اعلام می‌کند که خطایی رخ داده است. متأسفانه WfWg این کد خطا را کاملاً نادیده گرفته و با اعلام این‌که پیام تحویل داده شده است، به کار خود ادامه می‌دهد.

اگر مایلید پیام بدون هیچ اقدامی حذف شود، این دستور را امتحان کنید:

message command = rm %s

Default: message command =

Example: message command = csh -c 'xedit %s; rm %s' &

min domain uid (G)

این پارامتر عدد صحیح، حداقل uid مجاز را هنگام نگاشت یک حساب محلی به یک حساب دامنه مشخص می‌کند.

توجه داشته باشید که این گزینه با idmap ranges پیکربندی‌شده تعامل دارد!

Default: min domain uid = 1000

min print space (S)

این گزینه حداقل مقدار فضای خالی دیسک را که باید پیش از امکان ذخیره‌سازی موقت (spool) کار چاپ توسط کاربر در دسترس باشد، تعیین می‌کند. مقدار آن بر حسب کیلوبایت مشخص می‌شود. مقدار پیش‌فرض 0 است، به این معنی که کاربر همیشه می‌تواند یک کار چاپ را در صف ذخیره (spool) کند.

Default: min print space = 0

Example: min print space = 2000

min receivefile size (G)

این گزینه رفتار smbd(8) را هنگام پردازش فراخوانی‌های SMBwriteX تغییر می‌دهد. هر فراخوانی دریافتی SMBwriteX روی یک اتصال بدون امضای SMB/CIFS که بزرگتر از این مقدار باشد، به روش معمول پردازش نخواهد شد، بلکه به هر فراخوانی سیستمی هسته زیرین مانند recvfile یا splice فرستاده می‌شود (اگر چنین فراخوانی وجود نداشته باشد، سامبا آن را در فضای کاربر شبیه‌سازی می‌کند). این سازوکار، در صورت در دسترس بودن، امکان نوشتن با کپی صفر (zero-copy) را مستقیماً از بافرهای سوکت شبکه به حافظه موقت بافر سامانه فایل فراهم می‌آورد. این امر ممکن است کارایی را بهبود بخشد اما آزمایش توسط کاربر توصیه می‌شود. اگر روی صفر تنظیم شود، سامبا فراخوانی‌های SMBwriteX را به روش معمول پردازش می‌کند. برای فعال‌سازی پشتیبانی از نوشتن‌های بزرگ POSIX (نوشتن‌های SMB/CIFS تا سقف ۱۶ مگابایت)، این گزینه باید مقداری غیرصفر داشته باشد. بیشینه مقدار 128k است. مقادیر بزرگتر از 128k بدون هیچ هشداری روی 128k تنظیم خواهند شد.

توجه داشته باشید که اگر این گزینه روی یک اتصال دارای امضای دیجیتال SMB تنظیم شود، هیچ تاثیری نخواهد داشت.

مقدار پیش‌فرض صفر است که این گزینه را غیرفعال می‌کند.

Default: min receivefile size = 0

min wins ttl (G)

این گزینه به nmbd(8) هنگامی که به عنوان کارساز WINS عمل می‌کند (wins support = yes)، اعلام می‌کند که حداقل «طول عمر» (time to live) نام‌های NetBIOS که توسط nmbd اعطا می‌شود چقدر خواهد بود (بر حسب ثانیه). شما هیچ‌گاه نباید نیازی به تغییر این پارامتر داشته باشید. مقدار پیش‌فرض ۶ ساعت (۲۱۶۰۰ ثانیه) است.

Default: min wins ttl = 21600

mit kdc command (G)

این گزینه مسیر باینری MIT kdc را مشخص می‌کند.

اگر KDC در مکان پیش‌فرض نصب نشده باشد و در زمان ساخت (build) به‌درستی شناسایی نشده باشد، باید این متغیر را تغییر دهید و آن را به باینری صحیح هدایت کنید.

Default: mit kdc command =

Example: mit kdc command = /opt/mit/sbin/krb5kdc

msdfs proxy (S)

این پارامتر نشان می‌دهد که این اشتراک، جانشینی برای یک اشتراک دیگر CIFS است که مکان آن توسط مقدار این پارامتر مشخص می‌شود. هنگامی که کلاینت‌ها تلاش می‌کنند به این اشتراک متصل شوند، با استفاده از پروتکل SMB-Dfs به یک یا چند اشتراک پروکسی‌شده که با کاما از هم جدا شده‌اند، هدایت می‌شوند.

تنها ریشه‌های Dfs می‌توانند به عنوان اشتراک پروکسی عمل کنند. برای پی بردن به نحوه راه‌اندازی یک اشتراک ریشه Dfs، به گزینه‌های msdfs root و host msdfs نگاهی بیندازید.

No default

Example: msdfs proxy = \otherserver\someshare,\otherserver2\someshare

msdfs root (S)

اگر روی yes تنظیم شود، سامبا با این اشتراک به عنوان یک ریشه Dfs رفتار می‌کند و به کلاینت‌ها امکان می‌دهد درخت سامانه فایل توزیع‌شده (Dfs) را که ریشه در پوشه اشتراک دارد مرور کنند. پیوندهای Dfs در پوشه اشتراک با پیوندهای نمادین به شکل msdfs:serverA\\shareA,serverB\\shareB و به همین ترتیب مشخص می‌شوند. برای اطلاعات بیشتر در خصوص راه‌اندازی درخت Dfs در سامبا، به فصل MSDFS در کتاب Samba3-HOWTO مراجعه کنید.

Default: msdfs root = no

msdfs shuffle referrals (S)

اگر روی yes تنظیم شود، چنانچه چند ارجاع (referral) برای یک پیوند Dfs معین در دسترس باشد، سامبا ترتیب ارجاعات Dfs را به‌صورت تصادفی بر می‌زند که این امر امکان توزیع بار (load balancing) میان کلاینت‌ها را فراهم می‌کند. برای اطلاعات بیشتر در خصوص راه‌اندازی درخت Dfs در سامبا، به فصل MSDFS در کتاب Samba3-HOWTO مراجعه کنید.

Default: msdfs shuffle referrals = no

multicast dns register (G)

اگر سامبا با پشتیبانی مناسب برای آن کامپایل شده باشد، خود را از طریق سرویس‌های multicast DNS مانند آنچه توسط دیمن Avahi ارائه می‌شود، اعلان می‌کند.

این پارامتر امکان غیرفعال کردن ثبت خودکار سامبا را فراهم می‌سازد.

Default: multicast dns register = yes

name cache timeout (G)

مدت زمانی (بر حسب ثانیه) را تعیین می‌کند که پیش از منقضی شدن مدخل‌ها در حافظه نهان (کش) تحلیل نام میزبان سامبا سپری می‌شود. اگر زمان انقضا روی 0 تنظیم شود، ذخیره در حافظه نهان غیرفعال خواهد شد.

Default: name cache timeout = 660

Example: name cache timeout = 0

name resolve order (G)

این گزینه توسط برنامه‌های موجود در مجموعه سامبا استفاده می‌شود تا تعیین کنند از چه سرویس‌های نام‌گذاری و با چه ترتیبی برای تحلیل نام‌های میزبان به نشانی‌های IP استفاده شود. هدف اصلی آن کنترل چگونگی انجام تحلیل نام NetBIOS است. این گزینه یک رشته از گزینه‌های تحلیل نام را که با فاصله از هم جدا شده‌اند، دریافت می‌کند.

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

•lmhosts : جستجوی یک نشانی IP در فایل lmhosts سامبا. اگر سطر موجود در lmhosts هیچ نوع نامی متصل به نام NetBIOS نداشته باشد (برای جزئیات به صفحه راهنمای lmhosts مراجعه کنید)، آنگاه هر نوع نامی برای جستجو مطابقت داده می‌شود.
•host : انجام تحلیل استاندارد نام میزبان به نشانی IP، با استفاده از فایل /etc/hosts سامانه یا پرس‌وجوهای DNS. این روش تحلیل نام وابسته به سیستم‌عامل است؛ به عنوان مثال در IRIX یا Solaris این مورد ممکن است توسط فایل /etc/nsswitch.conf کنترل شود. توجه داشته باشید که این روش تنها در صورتی استفاده می‌شود که نوع نام NetBIOS مورد پرسش، نوع نام 0x20 (سرور) یا 0x1c (کنترل‌کننده‌های دامنه) باشد. مورد دوم تنها برای دامنه‌های اکتیو دایرکتوری کاربرد دارد و منجر به یک پرس‌وجوی DNS برای مدخل SRV RR منطبق بر _ldap._tcp.domain می‌شود.
•wins : استعلام یک نام با نشانی IP فهرست‌شده در پارامتر WINSSERVER. اگر هیچ کارساز WINS مشخص نشده باشد، این روش نادیده گرفته خواهد شد.
•bcast : انجام یک ارسال همگانی (broadcast) روی هر یک از رابط‌های محلی شناخته‌شده که در پارامتر interfaces فهرست شده‌اند. این روش کمترین قابلیت اطمینان را در میان روش‌های تحلیل نام دارد، زیرا وابسته به این است که میزبان مقصد در یک زیرشبکه با اتصال محلی باشد.
مثال زیر باعث می‌شود ابتدا فایل محلی lmhosts بررسی شود، سپس تلاش برای ارسال همگانی صورت گیرد، و به دنبال آن تحلیل عادی نام میزبان سامانه انجام شود.

هنگامی که سامبا در حالت امنیتی ADS کار می‌کند (security = ads) توصیه می‌شود از تنظیمات زیر برای name resolve order استفاده کنید:

name resolve order = wins bcast

جستجوهای DC همچنان از طریق DNS انجام خواهند شد، اما روش‌های جایگزین به نام‌های NetBIOS، سرورهای DNS شما را با پرس‌وجوهای غیرضروری برای جستجوهای DOMAIN<0x1c> اشباع نخواهند کرد.

Default: name resolve order = lmhosts wins host bcast

Example: name resolve order = lmhosts bcast host

socket address

این پارامتر مترادفی برای nbt client socket address است.

nbt client socket address (G)

این گزینه به شما امکان می‌دهد کنترل کنید سامبا بسته‌های کلاینت NBT را از چه نشانی‌ای ارسال کند و با استفاده از چه نشانی‌ای پاسخ‌ها را پردازش کند، از جمله در nmbd.

تنظیم این گزینه در سرورهای معمول سامبا که تنها یک nmbd را اجرا می‌کنند هرگز نباید ضروری باشد.

سامبا به طور پیش‌فرض بسته‌های UDP را از نشانی پیش‌فرض سیستم‌عامل برای مقصد ارسال می‌کند، و پاسخ‌ها را روی 0.0.0.0 می‌پذیرد.

این پارامتر منسوخ شده است. برای رفتار پیشین جهت کنترل سوکت‌های گوش‌دهنده عادی، bind interfaces only = Yes و interfaces را ببینید.

Default: nbt client socket address = 0.0.0.0

Example: nbt client socket address = 192.168.2.20

nbtd:wins_prepend1Bto1Cqueries (G)

به‌طور معمول پرس‌وجوها برای نام‌های 0x1C (تمام کارسازهای ورود به سیستم برای یک دامنه)، اولین نشانی از نام‌های 0x1B (مرورگر اصلی دامنه و PDC) را به عنوان نخستین نشانی در فهرست نتایج بازمی‌گردانند. از آنجا که بسیاری از کلاینت‌ها به‌طور پیش‌فرض تنها از نخستین نشانی موجود در فهرست استفاده می‌کنند، همه کلاینت‌ها از همان سرور یکسان (PDC) استفاده خواهند کرد. سرورهای ویندوز گزینه‌ای برای غیرفعال کردن این رفتار دارند (از زمان Windows 2000 Service Pack 2).

Default: nbtd:wins_prepend1Bto1Cqueries = yes

nbtd:wins_wins_randomize1Clist (G)

به‌طور معمول پرس‌وجوها برای نام‌های 0x1C نشانی‌ها را با همان ترتیبی که در پایگاه‌داده ذخیره شده‌اند بازمی‌گردانند؛ به این معنی که ابتدا تمام نشانی‌هایی که مستقیماً در کارساز WINS محلی ثبت شده‌اند و سپس تمام نشانی‌های ثبت‌شده در کارسازهای دیگر. سرورهای ویندوز گزینه‌ای برای تغییر این رفتار و تصادفی‌سازی نشانی‌های بازگردانده‌شده دارند. این پارامتر را روی "yes" تنظیم کنید تا سامبا فهرست نشانی‌ها را بسته به نشانی کلاینت و بیت‌های منطبق نشانی‌ها مرتب کند؛ اولین نشانی بر اساس پارامتر "nbtd:wins_randomize1Clist_mask" تصادفی‌سازی می‌شود.

Default: nbtd:wins_wins_randomize1Clist = no

nbtd:wins_randomize1Clist_mask (G)

اگر پارامتر «nbtd:wins_randomize1Clist» روی «yes» تنظیم شده باشد، تصادفی‌سازی نخستین آدرس بازگردانده‌شده بر اساس ماسک شبکه (netmask) مشخص‌شده انجام می‌شود. اگر آدرس‌هایی وجود داشته باشند که با آدرس کلاینت در یک زیرشبکه قرار دارند، نخستین آدرس بازگردانده‌شده به‌صورت تصادفی از بین آن‌ها برگزیده می‌شود. در غیر این صورت، نخستین آدرس بازگردانده‌شده به‌صورت تصادفی از میان تمام آدرس‌ها انتخاب خواهد شد.

Default: nbtd:wins_randomize1Clist_mask = 255.255.255.0

nbt port (G)

مشخص می‌کند که سرور باید از چه درگاهی (پورت) برای ترافیک سرویس‌های نامِ NetBIOS بر روی IP استفاده کند.

Default: nbt port = 137

ncalrpc dir (G)

این دایرکتوری مجموعه‌ای از لوله‌های نام‌گذاری‌شده (named pipes) را برای فراهم کردن امکان RPC از طریق ارتباطات بین‌فرایندی (IPC) نگه می‌دارد.

این ویژگی به سامبا و سایر فرایندهای یونیکس اجازه می‌دهد بدون استفاده از TCP/IP، از طریق DCE/RPC با یکدیگر تعامل داشته باشند. علاوه بر این، زیردایرکتوری 'np' دارای مجوزهای دسترسی محدودشده‌ای است و یک کانال ارتباطی مطمئن و مورد اعتماد را میان فرایندهای سامبا فراهم می‌کند.

Default: ncalrpc dir = /run/samba/ncalrpc

Example: ncalrpc dir = /var/run/samba/ncalrpc

netbios aliases (G)

این گزینه فهرستی از نام‌های NetBIOS است که nmbd آن‌ها را به عنوان نام‌های دیگری که سرور سامبا با آن‌ها شناخته می‌شود، اعلان (تبلیغ) می‌کند. این ویژگی به یک ماشین اجازه می‌دهد با چندین نام مختلف در فهرست‌های مرور (browse lists) ظاهر شود. اگر ماشینی در نقش browse server یا logon server عمل کند، هیچ‌یک از این نام‌ها به عنوان browse server یا logon server اعلان نخواهند شد، و تنها نام اصلی ماشین با این قابلیت‌ها اعلان می‌شود.

Default: netbios aliases = # empty string (no additional names)

Example: netbios aliases = TEST TEST1 TEST2

netbios name (G)

این گزینه نام NetBIOSای را تعیین می‌کند که سرور سامبا با آن شناخته می‌شود. به‌طور پیش‌فرض این مقدار برابر با بخش اولِ نام DNS میزبان است. اگر ماشینی یک browse server یا logon server باشد، این نام (یا اولین بخش نام DNS میزبان) نامی خواهد بود که این سرویس‌ها تحت آن اعلان می‌شوند.

توجه داشته باشید که بیشینهٔ طول یک نام NetBIOS برابر با ۱۵ نویسه (کاراکتر) است.

اشکالی (باگ) در سامبا وجود دارد که در صورت تنظیم netbios name روی نام تحت‌اللفظی PIPE، عملکرد مرور کردن و دسترسی به اشتراک‌ها را مختل می‌کند. برای جلوگیری از این مشکل، نام سرور سامبای خود را PIPE نگذارید.

Default: netbios name = # machine DNS name

Example: netbios name = MYNAME

netbios scope (G)

این گزینه دامنهٔ عملکرد (scope) نت‌بایوس را تنظیم می‌کند که سامبا تحت آن فعالیت خواهد کرد. این مقدار نباید تنظیم شود، مگر اینکه تک‌تک ماشین‌های موجود در شبکه محلی (LAN) شما نیز این مقدار را تنظیم کرده باشند.

Default: netbios scope =

neutralize nt4 emulation (G)

این گزینه کنترل می‌کند که آیا winbindd فلگ NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION را به منظور دور زدن شبیه‌سازی NT4 یک کنترل‌کننده دامنه (Domain Controller) ارسال کند یا خیر.

به‌طور معمول نیازی به تنظیم این گزینه ندارید. این گزینه می‌تواند برای ارتقا از دامنه‌های NT4 به AD مفید باشد.

این رفتار را می‌توان به ازای هر دامنهٔ netbios، با استفاده از گزینهٔ 'neutralize nt4 emulation:NETBIOSDOMAIN = yes' کنترل کرد.

Default: neutralize nt4 emulation = no

nmbd bind explicit broadcast (G)

این گزینه باعث می‌شود nmbd(8) به‌طور صریح به آدرس پخش همگانی (broadcast) زیرشبکه‌های محلی متصل (bind) شود. این مورد برای کارکرد صحیح nmbd در ترکیب با گزینهٔ socket address ضروری است. نیازی به غیرفعال کردن این گزینه ندارید.

Default: nmbd bind explicit broadcast = yes

nsupdate command (G)

این گزینه مسیر دستور nsupdate را تعیین می‌کند که برای به‌روزرسانی‌های پویای DNS از نوع GSS-TSIG استفاده می‌شود.

Default: nsupdate command = /usr/bin/nsupdate -g

nt hash store (G)

این پارامتر مشخص می‌کند که آیا samba(8) به عنوان یک AD DC، تلاش می‌کند هش رمز عبور NT مورد استفاده در احراز هویت NTLM و NTLMv2 را برای کاربران این دامنه ذخیره کند یا خیر.

کنترل‌کننده دامنه اکتیو دایرکتوری سامبا، در صورت پیکربندی، به‌جز برای حساب‌های اعتماد (رایانه‌ها، کنترل‌کننده‌های دامنه و اعتمادهای بین‌دامنه‌ای)، هش NT را ذخیره نخواهد کرد (برای حساب‌های جدید و تغییریافته در پایگاه داده sam.ldb).

این امر از ذخیره‌سازی هش بدون نمک (unsalted) برای این رمزهای عبور ایجادشده توسط کاربر جلوگیری می‌کند. در نتیجه، نوع کلید کربروس arcfour-hmac-md5 نیز در KDC برای این کاربران در دسترس نخواهد بود - خوشبختانه کلاینت‌های امروزی در عوض یک کلید مبتنی بر AES را انتخاب خواهند کرد.

نکته: از آنجا که تاریخچه رمزهای عبور در اکتیو دایرکتوری به عنوان یک هش NT ذخیره می‌شود (و بنابراین در دسترس نخواهد بود)، از یک راهکار جایگزین استفاده می‌شود که به مقادیر هش رمز عبور کربروس متکی است. این شیوه سه رمز عبور را ذخیره می‌کند: رمز عبور فعلی، قبلی، و ماقبل قبلی. این کار امکان مقداری بررسی جهت جلوگیری از استفادهٔ مجدد را فراهم می‌کند.

با این حال، از آنجا که این مقادیر دارای نمک (salt) هستند، تغییر دادن sAMAccountName، userAccountControl یا userPrincipalName یک حساب موجب تغییر نمک خواهد شد. پس از رخ دادن ترکیب نادرِ هر دو موردِ تغییر نام و تغییر رمز عبور، تنها رمز عبور فعلی برای اهداف تاریخچه رمز عبور شناخته خواهد شد.

تنظیمات موجود عبارتند از:

•always - همیشه هش NT ذخیره شود (از آنجا که حساب‌های ماشین نیز همواره یک هش NT را ذخیره می‌کنند، برای تمام حساب‌ها هش ذخیره خواهد شد).

این تنظیم ممکن است در صورتی مفید باشد که ntlm auth برای یک دوره آزمایشی روی disabled تنظیم شده باشد.

•never - هرگز هش NT را برای حساب‌های کاربری ذخیره نکند، و فقط برای حساب‌های ماشین ذخیره کند.
•auto - هش NT را ذخیره کند اگر ntlm auth روی disabled تنظیم نشده باشد.
Default: nt hash store = always

nt acl support (S)

این پارامتر بولی (boolean) کنترل می‌کند که آیا smbd(8) تلاش کند تا دسترسی‌های یونیکس را به فهرست‌های کنترل دسترسی (ACL) ویندوز NT نگاشت کند یا خیر. دسترسی‌های یونیکس مدنظر عبارتند از مجوزهای سنتی مالک و گروه یونیکس و همچنین ACLهای سیستم‌فایل تنظیم‌شده روی هر فایل یا دایرکتوری. این پارامتر در نگارش‌های پیش از 2.2.2 رسماً یک پارامتر سراسری (global) بود.

Default: nt acl support = yes

ntlm auth (G)

این پارامتر مشخص می‌کند که آیا smbd(8) تلاش می‌کند با استفاده از پاسخ رمز عبور رمزگذاری‌شدهٔ NTLM برای این passdb محلی (SAM یا پایگاه داده حساب‌ها)، کاربران را احراز هویت کند یا خیر.

در صورت غیرفعال بودن، هر دو احراز هویت NTLM و LanMan در برابر passdb محلی غیرفعال می‌شوند.

توجه داشته باشید که این تنظیمات فقط برای کاربران محلی اعمال می‌شوند؛ احراز هویت همچنان ارسال خواهد شد و احراز هویت NTLM در برابر هر دامنه‌ای که به آن متصل شده‌ایم و هر دامنهٔ مورد اعتمادی پذیرفته می‌شود، حتی اگر این گزینه در اینجا غیرفعال شده باشد یا NTLMv2-only اجباری باشد. برای کنترل احراز هویت NTLM برای کاربران دامنه، این گزینه باید روی هر DC پیکربندی شود.

به‌طور پیش‌فرض با تنظیم ntlm auth روی ntlmv2-only تنها ورودهای NTLMv2 مجاز خواهند بود. همه کلاینت‌های امروزی به‌طور پیش‌فرض از NTLMv2 پشتیبانی می‌کنند، اما برخی کلاینت‌های قدیمی‌تر برای استفاده از آن به پیکربندی ویژه‌ای نیاز دارند.

کاربر اصلی NTLMv1 پروتکل MSCHAPv2 برای شبکه‌های مجازی (VPN) و 802.1x است.

تنظیمات موجود عبارتند از:

•ntlmv1-permitted (نام مستعار yes) - اجازه دادن به NTLMv1 و بالاتر برای تمام کلاینت‌ها.

این تنظیم برای فعال‌سازی پارامتر lanman auth الزامی است.

•ntlmv2-only (نام مستعار no) - عدم اجازه به استفاده از NTLMv1، اما مجاز شمردن NTLMv2.
•mschapv2-and-ntlmv2-only - تنها در صورتی اجازه استفاده از NTLMv1 داده می‌شود که کلاینت متعهد شود در حال ارائهٔ احراز هویت MSCHAPv2 است (مانند ابزار ntlm_auth).
•disabled - عدم پذیرش احراز هویت NTLM (یا LanMan) در هر سطحی، و همچنین مجاز نبودن تغییر رمز عبور NTLM.

هشدار: کنترل‌کننده‌های دامنه فقط‌خواندنی (Read Only Domain Controllers یا RODCs) چه در Microsoft Windows و چه در سامبا، یک اتصال سادهٔ متنی LDAP (Plain-text LDAP Simple Bind) را برای هدایت به یک DC کامل، به یک احراز هویت NTLMv2 تبدیل می‌کنند. تنظیم این گزینه روی disabled باعث شکست خوردن این احراز هویت‌های فورواردشده خواهد شد.

علاوه بر این، در سامبایی که در نقش کنترل‌کننده دامنه اکتیو دایرکتوری عمل می‌کند، برای حساب‌های کاربری، اگر nt hash store روی مقدار پیش‌فرض auto تنظیم شده باشد، هش NT در پایگاه داده sam.ldb ذخیره نخواهد شد (برای کاربران جدید و پس از تغییر رمز عبور).

مقدار پیش‌فرض در Samba 4.5 از yes به no تغییر یافت. این مقدار پیش‌فرض مجدداً در Samba 4.7 به ntlmv2-only تغییر پیدا کرد، هرچند که رفتار آن بدون تغییر باقی مانده است.

Default: ntlm auth = ntlmv2-only

nt pipe support (G)

این پارامتر بولی کنترل می‌کند که آیا smbd(8) به کلاینت‌های Windows NT اجازه اتصال به لوله‌های (pipes) مخصوص NT SMB در IPC$ را می‌دهد یا خیر. این یک گزینه اشکال‌زدایی برای توسعه‌دهندگان است و می‌توان آن را بدون تغییر رها کرد.

Default: nt pipe support = yes

ntp signd socket directory (G)

این تنظیم مکان سوکتی را مشخص می‌کند که دیمن NTP برای برقراری ارتباط با سامبا جهت امضای بسته‌ها از آن استفاده می‌کند.

اگر مسیری غیر از پیش‌فرض در اینجا مشخص شود، لازم است با استفاده از دستورالعمل ntpsigndsocket در ntp.conf، سرویس NTP را نیز از این مسیر جدید آگاه کنید.

Default: ntp signd socket directory = /var/lib/samba/ntp_signd

nt status support (G)

این پارامتر بولی کنترل می‌کند که آیا smbd(8) پشتیبانی از وضعیت‌های خاص NT را با کلاینت‌های Windows NT/2k/XP مذاکره کند یا خیر. این یک گزینه اشکال‌زدایی برای توسعه‌دهندگان است و باید بدون تغییر رها شود. اگر این گزینه روی no تنظیم شود، سامبا دقیقاً همان کدهای خطای DOS را ارائه می‌دهد که نسخه‌های پیش از Samba 2.2.3 گزارش می‌کردند.

شما هرگز نباید نیازی به غیرفعال کردن این پارامتر داشته باشید.

Default: nt status support = yes

ntvfs handler (S)

این گزینه گرداننده‌های NTVFS را برای این اشتراک مشخص می‌کند.
•unixuid: گواهی‌های هویت کاربر را بر اساس POSIX gid/uid تنظیم می‌کند.
•cifs: یک فایل‌سیستم راه دور CIFS را پراکسی می‌کند. عمدتاً برای اهداف آزمایشی مفید است.
•nbench: ماژول فیلتری که داده‌های مفید را برای مجموعه‌آزمون محک nbench ذخیره می‌کند.
•ipc: امکان استفاده از SMB را برای ارتباطات بین‌فرایندی (IPC) فراهم می‌سازد. تنها برای اشتراک IPC$ استفاده می‌شود.
•posix: معناشناسی فایل‌سیستم POSIX را به معناشناسی NT نگاشت می‌کند.
•print: امکان چاپ از طریق SMB را فراهم می‌سازد. این شیوه از چاپ به سبک LANMAN است و نباید با رابط spoolss DCE/RPC مورد استفاده در نسخه‌های جدیدتر Windows اشتباه گرفته شود.
توجه داشته باشید که این گزینه فقط زمانی استفاده می‌شود که فایل‌سرور NTVFS به کار گرفته شده باشد. با فایل‌سرور s3fs (پیش‌فرض) استفاده نمی‌شود.

Default: ntvfs handler = unixuid, default

null passwords (G)

دسترسی کلاینت به حساب‌هایی که گذرواژه‌های خالی (null) دارند را مجاز یا غیرمجاز می‌کند.

همچنین ببینید: smbpasswd(5).

Default: null passwords = no

obey pam restrictions (G)

هنگامی که Samba 3.0 برای فعال‌سازی پشتیبانی از PAM پیکربندی شده باشد (یعنی --with-pam)، این پارامتر کنترل می‌کند که آیا سامبا باید از دستورالعمل‌های مدیریت نشست (session) و حساب کاربری PAM پیروی کند یا خیر. رفتار پیش‌فرض این است که از PAM فقط برای احراز هویت متن آشکار (clear text) استفاده شود و هرگونه مدیریت حساب کاربری یا نشست نادیده گرفته شود. توجه داشته باشید که سامبا در صورت فعال بودن encrypt passwords = yes همواره PAM را برای احراز هویت نادیده می‌گیرد. دلیل آن این است که ماژول‌های PAM نمی‌توانند از سازوکار احراز هویت چالش/پاسخ (challenge/response) که در حضور رمزنگاری گذرواژه SMB مورد نیاز است، پشتیبانی کنند.

Default: obey pam restrictions = no

old password allowed period (G)

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

این پارامتر تنها زمانی اعمال می‌شود که server role روی Active Directory Domain Controller تنظیم شده باشد.

Default: old password allowed period = 60

oplock break wait time (G)

این یک پارامتر تنظیم دقیق است که به‌دلیل اشکالات موجود در هر دو سیستم‌عامل Windows 9x و WinNT اضافه شده است. اگر سامبا به کلاینتی که درخواستی SMB صادر کرده که می‌تواند منجر به درخواست شکستن oplock شود بیش از حد سریع پاسخ دهد، ممکن است کلاینت شبکه دچار خطا شود و به درخواست شکستن پاسخ ندهد. این پارامتر تنظیمی (که بر حسب میلی‌ثانیه مشخص می‌شود) مقدار زمانی است که سامبا پیش از ارسال درخواست شکستن oplock به چنین کلاینت‌های (معیوبی) منتظر می‌ماند.

هشدار (Warning)
این پارامتر را تغییر ندهید مگر اینکه کد OPLOCK سامبا را خوانده و درک کرده باشید.
Default: oplock break wait time = 0

oplocks (S)

این گزینه بولی به smbd اعلام می‌کند که آیا به درخواست‌های باز کردن فایل در این اشتراک، قفل‌های فرصت‌طلبانه (oplocks) اختصاص دهد یا خیر. کد مربوط به oplock می‌تواند سرعت دسترسی به فایل‌ها در سرورهای سامبا را به شکل چشمگیری (حدود ۳۰٪ یا بیشتر) بهبود بخشد. این قابلیت به کلاینت‌ها امکان می‌دهد تا فایل‌ها را به شکلی تهاجمی به‌طور محلی حافظه‌گیری (cache) کنند؛ ممکن است بخواهید این گزینه را در محیط‌های شبکه غیرقابل‌اطمینان غیرفعال کنید (این گزینه به‌طور پیش‌فرض در سرورهای Windows NT فعال است).

می‌توان قفل‌های فرصت‌طلبانه (Oplocks) را برای فایل‌های خاصی در یک اشتراک به‌صورت انتخابی غیرفعال کرد. پارامتر veto oplock files را ببینید. در برخی سیستم‌ها، قفل‌های oplock توسط سیستم‌عامل زیربنایی تشخیص داده می‌شوند. این امر همگام‌سازی داده‌ها میان تمام دسترسی‌ها به فایل‌های دارای قفل فرصت‌طلبانه را، خواه از طریق سامبا، NFS یا یک فرایند محلی UNIX باشد، ممکن می‌سازد. برای جزئیات بیشتر، پارامتر kernel oplocks را ببینید.

Default: oplocks = yes

os2 driver map (G)

این پارامتر برای تعریف مسیر مطلق فایلی استفاده می‌شود که شامل نگاشت نام درایورهای چاپگر Windows NT به نام درایورهای چاپگر OS/2 است. قالب آن به صورت زیر است:

<nt driver name> = <os2 driver name>.<device name>

برای نمونه، یک مدخل معتبر با استفاده از درایور چاپگر HP LaserJet 5 به این صورت خواهد بود: HP LaserJet 5L = LASERJET.HP LaserJet 5L.

نیاز به این فایل به‌دلیل مسئله فضای نام درایور چاپگر است که در فصل «چاپ کلاسیک» (Classical Printing) در کتابچه Samba3-HOWTO شرح داده شده است. برای جزئیات بیشتر درباره کلاینت‌های OS/2، لطفاً به فصل مربوط به سایر کلاینت‌ها در کتابچه Samba3-HOWTO مراجعه کنید.

Default: os2 driver map =

os level (G)

این مقدار عدد صحیح تعیین می‌کند که سامبا در انتخابات مرور شبکه (browse elections) خود را در چه سطحی تبلیغ (معرفی) کند. مقدار این پارامتر مشخص می‌کند که آیا nmbd(8) فرصتی برای تبدیل شدن به مرورگر اصلی محلی (local master browser) را برای workgroup در محدوده پخش همگانی (broadcast) محلی دارد یا خیر.

نکته: به‌طور پیش‌فرض، سامبا در انتخابات مرورگر اصلی محلی در برابر تمام سیستم‌عامل‌های مایکروسافت به جز یک Windows NT 4.0/2000 Domain Controller پیروز خواهد شد. این بدان معناست که یک میزبان سامبا با پیکربندی نادرست می‌تواند عملاً یک زیرشبکه را از نظر اهداف مرور شبکه منزوی سازد. این پارامتر در سری نسخه‌های Samba-3 تا حد زیادی به‌صورت خودکار تنظیم می‌شود و به‌ندرت نیاز به بازنویسی دستی تنظیمات پیش‌فرض خواهد بود. لطفاً برای اطلاعات بیشتر درباره استفاده از این پارامتر، به فصل «مرور شبکه» (Network Browsing) در سند Samba-3 HOWTO مراجعه کنید. نکته: بیشینه مقدار برای این پارامتر ۲۵۵ است. اگر از مقادیر بالاتری استفاده کنید، شمارش از ۰ آغاز خواهد شد!

Default: os level = 20

Example: os level = 65

pam password change (G)

با افزوده شدن پشتیبانی بهتر از PAM در Samba 2.2، با استفاده از این پارامتر، امکان استفاده از فلگ کنترل تغییر گذرواژه PAM برای سامبا فراهم شده است. در صورت فعال بودن، هنگام درخواست کلاینت SMB، به‌جای برنامه‌ای که در passwd program فهرست شده است، از PAM برای تغییر گذرواژه استفاده خواهد شد. در بیشتر پیکربندی‌ها باید بتوان بدون تغییر در پارامتر passwd chat این مورد را فعال کرد.

Default: pam password change = no

panic action (G)

این یک گزینه مخصوص توسعه‌دهندگان سامبا است که اجازه می‌دهد هنگام از کار افتادن (crash) هر یک از سرویس‌های smbd(8) یا nmbd(8)، یک دستور سیستمی فراخوانی شود. این گزینه معمولاً برای جلب توجه نسبت به وقوع یک مشکل استفاده می‌شود.

Default: panic action =

Example: panic action = /bin/sleep 90000

passdb backend (G)

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

مقدار این پارامتر به دو بخش تقسیم می‌شود: نام بک‌اند، و یک رشته «مکان» که تنها برای آن بک‌اند خاص مفهوم دارد. این دو بخش با نویسه : از هم جدا می‌شوند.

بک‌اندهای در دسترس می‌توانند شامل موارد زیر باشند:

•smbpasswd - بک‌اند قدیمی passdb با متن ساده (plaintext). در صورت استفاده از این بک‌اند passdb، برخی از ویژگی‌های Samba کار نخواهند کرد. این بک‌اند یک مسیر به فایل smbpasswd را به عنوان یک آرگومان اختیاری می‌پذیرد.
•tdbsam - بک‌اند ذخیره‌سازی گذرواژه مبتنی بر TDB. این بک‌اند یک مسیر به TDB را به عنوان یک آرگومان اختیاری می‌پذیرد (به‌طور پیش‌فرض passdb.tdb در دایرکتوری private dir است).
•ldapsam - بک‌اند passdb مبتنی بر LDAP. یک URL مربوط به LDAP را به عنوان یک آرگومان اختیاری می‌پذیرد (به‌طور پیش‌فرض ldap://localhost)

اتصالات LDAP در صورت امکان باید امن‌سازی شوند. این کار می‌تواند با استفاده از Start-TLS (نگاه کنید به ldap ssl) یا با مشخص کردن ldaps:// در آرگومان URL انجام شود.

همچنین می‌توان چندین سرور را درون گیومه دوتایی (double-quotes) مشخص کرد. اینکه آیا چندین سرور پشتیبانی می‌شوند یا خیر و نحو (syntax) دقیق آن به کتابخانه LDAP مورد استفاده شما بستگی دارد.

نمونه‌های استفاده عبارتند از:

passdb backend = tdbsam:/etc/samba/private/passdb.tdb 
یا URL چندسروره LDAP با کتابخانه OpenLDAP:
passdb backend = ldapsam:"ldap://ldap-1.example.com ldap://ldap-2.example.com"
یا URL چندسروره LDAP با کتابخانه LDAP مبتنی بر Netscape:
passdb backend = ldapsam:"ldap://ldap-1.example.com ldap-2.example.com"

Default: passdb backend = tdbsam

passdb expand explicit (G)

این پارامتر کنترل می‌کند که آیا Samba در صورت تعیین صریح ماکروهای %- در فیلدهای passdb، آن‌ها را جایگزین کند یا خیر. پیش‌تر ماکروها در اینجا بسط داده می‌شدند، اما مشخص شد که این رفتار یک باگ است، چرا که کلاینت ویندوز می‌تواند متغیر %G_osver% را بسط دهد که در آن %G با گروه اصلی کاربر جایگزین می‌شد.

Default: passdb expand explicit = no

passwd chat (G)

این رشته، مکالمهٔ "chat" بین smbd(8) و برنامه محلی تغییر گذرواژه را برای تغییر گذرواژهٔ کاربر کنترل می‌کند. این رشته توالی جفت‌های ارسال-دریافت را توصیف می‌کند که smbd(8) برای تعیین اینکه چه چیزی را به passwd program ارسال کند و انتظار دریافت چه پاسخی را داشته باشد، از آن استفاده می‌کند. اگر خروجی مورد انتظار دریافت نشود، گذرواژه تغییر نخواهد کرد.

این توالی مکالمه اغلب بسته به روش‌های محلی مورد استفاده برای کنترل گذرواژه، کاملاً وابسته به پیکربندی محلی سامانه است.

توجه داشته باشید که این پارامتر تنها زمانی استفاده می‌شود که پارامتر unix password sync روی yes تنظیم شده باشد. در این صورت، هنگامی که گذرواژه SMB در فایل smbpasswd در حال تغییر است، بدون دسترسی به متن خام (cleartext) گذرواژه قدیمی، این توالی AS ROOT (با دسترسی ریشه) فراخوانی می‌شود. این بدان معناست که ریشه (root) باید بتواند بدون دانستن متن گذرواژه پیشین، گذرواژه کاربر را بازنشانی کند.

این رشته می‌تواند شامل ماکروی %n باشد که با گذرواژه جدید جایگزین می‌شود. گذرواژه قدیمی (%o) تنها در صورتی در دسترس است که encrypt passwords غیرفعال شده باشد. توالی گفتگو همچنین می‌تواند شامل ماکروهای استاندارد \n، \r، \t و \s برای ایجاد خط جدید، بازگشت به ابتدای سطر، تب و فاصله باشد. رشته توالی گفتگو می‌تواند شامل یک '*' نیز باشد که با هر توالی از نویسه‌ها مطابقت دارد. می‌توان از گیومه دوتایی برای تجمیع رشته‌های دارای فاصله در یک رشته واحد استفاده کرد.

اگر رشته ارسالی در هر بخش از توالی مکالمه یک نقطه "." باشد، هیچ رشته‌ای ارسال نمی‌شود. به همین ترتیب، اگر رشته مورد انتظار یک نقطه باشد، هیچ رشته‌ای انتظار دریافت ندارد.

اگر پارامتر pam password change روی yes تنظیم شده باشد، جفت‌های مکالمه ممکن است به هر ترتیبی مطابقت داده شوند، و موفقیت بر اساس نتیجه PAM تعیین می‌شود نه بر اساس خروجی خاصی. ماکروی \n برای تبدیل‌های PAM نادیده گرفته می‌شود.

Default: passwd chat = *new*password* %n\n *new*password* %n\n *changed*

Example: passwd chat = "*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password changed*"

passwd chat debug (G)

این مقدار بولی مشخص می‌کند که آیا اسکریپت پارامتر passwd chat در حالت debug (اشکال‌زدایی) اجرا شود یا خیر. در این حالت، رشته‌های ارسال‌شده به و دریافت‌شده از passwd chat در لاگ smbd(8) با debug level ۱۰۰ چاپ می‌شوند. این یک گزینه خطرناک است زیرا باعث می‌شود گذرواژه‌های متن ساده در لاگ smbd دیده شوند. این گزینه برای کمک به مدیران Samba جهت اشکال‌زدایی اسکریپت‌های passwd chat هنگام فراخوانی passwd program فراهم شده است و پس از انجام این کار باید خاموش شود. در صورت تنظیم بودن پارامتر pam password change، این گزینه هیچ اثری ندارد. این پارامتر به‌طور پیش‌فرض غیرفعال است.

Default: passwd chat debug = no

passwd chat timeout (G)

این عدد صحیح تعداد ثانیه‌هایی را مشخص می‌کند که smbd برای دریافت پاسخ اولیه از یک اسکریپت passwd chat در حال اجرا منتظر می‌ماند. پس از دریافت پاسخ اولیه، پاسخ‌های بعدی باید در یک‌دهم این زمان دریافت شوند. مقدار پیش‌فرض دو ثانیه است.

Default: passwd chat timeout = 2

passwd program (G)

نام برنامه‌ای که می‌تواند برای تنظیم گذرواژه‌های کاربر UNIX استفاده شود. هر بار رخداد %u با نام کاربری جایگزین خواهد شد. پیش از فراخوانی برنامه تغییر گذرواژه، وجود نام کاربری بررسی می‌شود.

همچنین توجه داشته باشید که بسیاری از برنامه‌های passwd بر داشتن گذرواژه‌های معقول مانند حداقل طول، یا ترکیب حروف بزرگ و کوچک و ارقام تأکید دارند. این امر می‌تواند مشکل‌ساز شود، زیرا برخی کلاینت‌ها (مانند Windows for Workgroups) گذرواژه را پیش از ارسال به حروف بزرگ تبدیل می‌کنند.

توجه داشته باشید که اگر پارامتر unix password sync روی yes تنظیم شده باشد، آنگاه این برنامه پیش از تغییر گذرواژه SMB در فایل smbpasswd، AS ROOT (به عنوان کاربر ریشه) فراخوانی می‌شود. اگر این تغییر گذرواژه UNIX با شکست مواجه شود، آنگاه smbd نیز از تغییر گذرواژه SMB صرف‌نظر خواهد کرد (این رفتار مطابق طراحی سیستم است).

اگر پارامتر unix password sync تنظیم شده باشد، این پارامتر باید برای تمام برنامه‌های فراخوانی‌شده از مسیرهای مطلق استفاده کند و از نظر پیامدهای امنیتی بررسی شود. توجه داشته باشید که به‌طور پیش‌فرض unix password sync روی no تنظیم شده است.

Default: passwd program =

Example: passwd program = /bin/passwd %u

password hash gpg key ids (G)

اگر samba به عنوان یک Domain Controller در Active Directory در حال اجرا باشد، امکان ذخیره گذرواژه متن ساده (cleartext) حساب‌ها به صورت رمزگذاری‌شده با PGP/OpenGPG وجود دارد.

می‌توانید یک یا چند دریافت‌کننده را با شناسه کلید (key id) یا شناسه کاربر (user id) مشخص کنید. توجه داشته باشید که شناسه‌های کلید ۳۲ بیتی مجاز نیستند؛ حداقل ۶۴ بیت را مشخص کنید.

این مقدار به عنوان 'Primary:SambaGPG' در صفت supplementalCredentials ذخیره می‌شود.

از آنجا که تغییرات گذرواژه می‌تواند روی هر Domain Controller رخ دهد، باید این گزینه را روی تک‌تک آن‌ها پیکربندی کنید. توجه داشته باشید که این ویژگی در حال حاضر تنها روی Domain Controllerهای Samba در دسترس است.

این گزینه تنها در صورتی در دسترس است که samba با پشتیبانی از gpgme کامپایل شده باشد.

ممکن است لازم باشد پیش از اجرای samba متغیر محیطی GNUPGHOME را export کنید. اکیداً توصیه می‌شود که فقط کلید عمومی در این مکان ذخیره شود. کلید خصوصی برای رمزگذاری استفاده نمی‌شود و فقط باید در جایی که رمزگشایی لازم است ذخیره گردد.

امکان بازیابی گذرواژه متن ساده زمانی مفید است که لازم باشد آن‌ها بعداً به سایر سیستم‌های احراز هویت وارد شوند (نگاه کنید به samba-tool user getpassword) یا بخواهید گذرواژه‌ها را با سیستمی دیگر، مثلاً یک سرور OpenLDAP همگام نگه دارید (نگاه کنید به samba-tool user syncpasswords).

در حالی که این گزینه باید روی تمام Domain Controllerها پیکربندی شود، دستور samba-tool user syncpasswords تنها باید روی یک Domain Controller واحد اجرا گردد (معمولاً شبیه‌ساز PDC یا همان PDC-emulator).

Default: password hash gpg key ids =

Example: password hash gpg key ids = 4952E40301FAB41A

Example: password hash gpg key ids = selftest@samba.example.com

Example: password hash gpg key ids = selftest@samba.example.com, 4952E40301FAB41A

password hash userPassword schemes (G)

این پارامتر تعیین می‌کند که آیا samba(8) در نقش یک Active Directory Domain Controller تلاش خواهد کرد انواع درهم‌سازی (هش) اضافی گذرواژه را برای کاربر ذخیره کند یا خیر.

مقادیر به‌صورت 'Primary:userPassword' در مشخصه supplementalCredentials ذخیره می‌شوند. مقدار این گزینه یک نوع درهم‌ساز (hash type) است.

انواع درهم‌سازهای پشتیبانی‌شده در حال حاضر عبارتند از:

•CryptSHA256
•CryptSHA512
می‌توان چندین نمونه از یک نوع درهم‌ساز را محاسبه و ذخیره کرد. درهم‌سازهای گذرواژه با استفاده از فراخوانی تابع crypt(3) محاسبه می‌شوند. تعداد دورهای (rounds) مورد استفاده برای محاسبه درهم‌سازی را می‌توان با افزودن ':rounds=xxxx' به نوع درهم‌ساز مشخص کرد؛ به عنوان مثال CryptSHA512:rounds=4500 یک هش SHA512 را با استفاده از ۴۵۰۰ دور محاسبه می‌کند. در صورت عدم تعیین، مقادیر پیش‌فرض سیستم‌عامل برای crypt(3) استفاده می‌شود.

از آنجا که تغییرات گذرواژه می‌تواند روی هر Domain Controller رخ دهد، باید این گزینه را روی تک‌تک آن‌ها پیکربندی کنید. توجه داشته باشید که این قابلیت در حال حاضر تنها روی کنترل‌کننده‌های دامنه Samba در دسترس است.

در حال حاضر هنگامی که این هش‌ها محاسبه و ذخیره می‌شوند، NT Hash گذرواژه نیز ثبت می‌گردد. هنگام بازیابی هش‌ها، مقدار فعلی NT Hash با NT Hash ذخیره‌شده مقایسه می‌شود. این کار تغییرات گذرواژه‌ای را که هش‌های گذرواژه را به‌روزرسانی نکرده‌اند شناسایی می‌کند. در این حالت samba-tool user مقادیر هش ذخیره‌شده را نادیده خواهد گرفت.

امکان به‌دست آوردن گذرواژه درهم‌سازی‌شده زمانی مفید است که نیاز باشد آن‌ها بعداً به سایر سامانه‌های احراز هویت وارد شوند (به samba-tool user getpassword مراجعه کنید) یا بخواهید گذرواژه‌ها را با سامانه دیگری، برای نمونه یک سرور OpenLDAP، همگام نگه دارید (به samba-tool user syncpasswords مراجعه کنید).

دستور مرتبط: unix password sync

Default: password hash userPassword schemes =

Example: password hash userPassword schemes = CryptSHA256

Example: password hash userPassword schemes = CryptSHA256 CryptSHA512

Example: password hash userPassword schemes = CryptSHA256:rounds=5000 CryptSHA512:rounds=7000

password server (G)

با مشخص کردن نام یک Domain Controller از طریق این گزینه و استفاده از security = [ads|domain] می‌توان Samba را وادار کرد تا تمام اعتبارسنجی‌های نام‌کاربری/گذرواژه خود را با استفاده از یک سرور دوردست مشخص انجام دهد.

در حالت ایده‌آل، از این گزینه نباید استفاده شود، زیرا مقدار پیش‌فرض '*' به Samba اعلام می‌کند که همانند تمام میزبان‌های دیگر در یک دامنه AD، بهترین DC را جهت برقراری ارتباط به‌صورت پویا تعیین کند. این امر امکان نگهداری دامنه (افزودن و حذف Domain Controllerها) را بدون نیاز به تغییر فایل smb.conf فراهم می‌سازد. حفاظت رمزنگاری‌شده روی فراخوانی‌های RPC احراز هویت‌شده که برای تأیید گذرواژه‌ها استفاده می‌شوند، امنیت این مقدار پیش‌فرض را تضمین می‌کند.

اکیداً توصیه می‌شود که از مقدار پیش‌فرض '*' استفاده کنید؛ با این حال اگر در محیط کاری خاص خود دلیلی برای تعیین یک فهرست DC مشخص دارید، آنگاه فهرست ماشین‌ها در این گزینه باید فهرستی از نام‌ها یا نشانی‌های IP کنترل‌کننده‌های دامنه برای آن دامنه باشد. اگر از مقدار پیش‌فرض '*' استفاده کنید، یا چند میزبان را در گزینه password server فهرست نمایید، smbd به نوبت هر یک را امتحان می‌کند تا زمانی که میزبانی پاسخگو را بیابد. این قابلیت در صورت از کار افتادن سرور اصلی شما بسیار مفید است.

اگر فهرست سرورها هم شامل نام‌ها/IPها و هم نویسه '*' باشد، این فهرست به عنوان فهرستی از Domain Controllerهای ترجیحی در نظر گرفته می‌شود، اما جستجوی خودکار تمام DCهای باقی‌مانده نیز به این فهرست افزوده خواهد شد. Samba تلاشی برای بهینه‌سازی این فهرست از طریق یافتن نزدیک‌ترین DC انجام نخواهد داد.

اگر این پارامتر یک نام باشد، با استفاده از پارامتر name resolve order جستجو می‌شود و بنابراین ممکن است با هر روش و ترتیبی که در آن پارامتر شرح داده شده است تحلیل شود.

Default: password server = *

Example: password server = NT-PDC, NT-BDC1, NT-BDC2, *

Example: password server = windc.mydomain.com:389 192.168.1.101 *

directory

این پارامتر مترادفی برای path است.

path (S)

این پارامتر دایرکتوری‌ای را مشخص می‌کند که کاربرِ سرویس قرار است به آن دسترسی داشته باشد. در مورد سرویس‌های چاپ‌پذیر (printable)، این مکان جایی است که داده‌های چاپ قبل از ارسال به میزبان برای چاپ، در آن صف‌بندی (spool) می‌شوند.

برای یک سرویس چاپ‌پذیر که دسترسی مهمان (guest) ارائه می‌دهد، سرویس باید فقط‌خواندنی (readonly) باشد و مسیر باید برای همگان قابل‌نوشتن (world-writeable) بوده و بیت چسبنده (sticky bit) برای آن تنظیم شده باشد. البته این کار اجباری نیست، اما در صورت عدم رعایت آن، احتمالاً به نتیجه مورد انتظار خود نخواهید رسید.

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

توجه داشته باشید که در صورت مشخص شدن root dir، این مسیر بر پایه آن خواهد بود.

Default: path =

Example: path = /home/fred

perfcount module (G)

این پارامتر بستر پشتیبان (backend) perfcount را مشخص می‌کند که هنگام پایش عملیات‌های SMB استفاده می‌شود. تنها می‌توان از یک ماژول perfcount استفاده کرد، و این ماژول باید تمامی APIهای موجود در ساختار smb_perfcount_handler تعریف‌شده در smb.h را پیاده‌سازی کرده باشد.

بدون پیش‌فرض

pid directory (G)

این گزینه دایرکتوری محل قرارگیری فایل‌های pid را مشخص می‌کند.

Default: pid directory = /run

Example: pid directory = /var/run/

posix locking (S)

دیمن smbd(8) پایگاه‌داده‌ای از قفل‌های فایلی که توسط کلاینت‌های SMB گرفته شده است را نگهداری می‌کند. رفتار پیش‌فرض این است که این پایگاه‌داده داخلی به قفل‌های POSIX نگاشت شود. این بدان معناست که قفل‌های فایل گرفته‌شده توسط کلاینت‌های SMB با آنچه برنامه‌های سازگار با POSIX که از روش‌های غیر SMB (مانند NFS یا دسترسی محلی به فایل) به فایل‌ها دسترسی دارند می‌بینند، همخوانی دارند. بسیار بعید است که نیاز داشته باشید این پارامتر را روی "no" تنظیم کنید، مگر اینکه اشتراک را از یک نقطه اتصال NFS ارائه دهید، که اساساً از ابتدا ایده خوبی نیست.

Default: posix locking = yes

postexec (S)

این گزینه دستوری را مشخص می‌کند که هر زمان اتصال به سرویس قطع شود اجرا گردد. این گزینه جایگزینی‌های معمول متغیرها را می‌پذیرد. این دستور در برخی سیستم‌ها ممکن است به عنوان root اجرا شود.

یک نمونه جالب می‌تواند پیاده‌سازی (unmount کردن) منابع سرور باشد:

postexec = /etc/umount /cdrom

Default: postexec =

Example: postexec = echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log

exec

این پارامتر مترادفی برای preexec است.

preexec (S)

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

یک نمونه جالب، ارسال پیام خوش‌آمدگویی به کاربران در هر بار ورود آن‌ها است. شاید یک پیام روز (message of the day)؟ در اینجا یک نمونه آمده است:

preexec = csh -c 'echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I' &

البته، این ممکن است بعد از مدتی کلافه‌کننده شود :-)

همچنین ببینید: preexec close و postexec.

Default: preexec =

Example: preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log

preexec close (S)

این گزینه بولی (boolean) تعیین می‌کند که آیا یک کد بازگشتی غیرصفر از سوی preexec باید موجب بسته شدن سرویسی شود که در حال اتصال به آن است یا خیر.

Default: preexec close = no

prefered master

این پارامتر مترادفی برای preferred master است.

preferred master (G)

این پارامتر بولی تعیین می‌کند که آیا nmbd(8) یک مرورگر ارشد ترجیحی (preferred master browser) برای گروه کاری (workgroup) خود باشد یا خیر.

اگر این گزینه روی yes تنظیم شود، هنگام راه‌اندازی، nmbd برگزاری یک انتخابات (election) را تحمیل خواهد کرد، و مزیت اندکی در پیروزی در انتخابات خواهد داشت. توصیه می‌شود این پارامتر همراه با domain master = yes استفاده شود، تا nmbd بتواند تبدیل شدن به Domain Master را تضمین نماید.

از این گزینه با احتیاط استفاده کنید، زیرا اگر چندین میزبان (چه سرورهای Samba، چه Windows 95 یا NT) در یک زیرشبکه (subnet) یکسان وجود داشته باشند که مرورگرهای ارشد ترجیحی هستند، هر یک به‌طور دوره‌ای و پیوسته تلاش خواهند کرد تا به مرورگر ارشد محلی (local master browser) تبدیل شوند. این امر منجر به ترافیک برودکست (broadcast) غیرضروری و کاهش قابلیت‌های مرور شبکه خواهد شد.

Default: preferred master = auto

prefork backoff increment (G)

این گزینه تعداد ثانیه‌هایی را مشخص می‌کند که به تأخیر قبل از راه‌اندازی مجدد یک فرآیند والد (master) یا کارگر (worker) از نوع prefork افزوده می‌شود. این تأخیر در ابتدا صفر است، و prefork backoff increment در هر راه‌اندازی مجدد به تأخیر اضافه می‌شود تا زمانی که به مقدار تعیین‌شده در "prefork maximum backoff" برسد.

علاوه بر این، می‌توان با استفاده از "prefork backoff increment: service name" عقب‌نشینی را برای یک سرویس جداگانه تنظیم کرد؛ به عنوان مثال "prefork backoff increment:ldap = 2" برای تنظیم افزایش عقب‌نشینی روی ۲ ثانیه.

اگر مقدار افزایش عقب‌نشینی ۲ و حداکثر عقب‌نشینی ۵ باشد، برای اولین راه‌اندازی مجدد تأخیر صفر ثانیه‌ای، برای دومین راه‌اندازی مجدد تأخیر دو ثانیه‌ای، و برای سومین و راه‌اندازی‌های بعدی تأخیر چهار ثانیه‌ای وجود خواهد داشت.

Default: prefork backoff increment = 10

prefork children (G)

این گزینه تعداد پردازش‌های کارگر (worker processes) را کنترل می‌کند که هنگام فعال بودن مدل پردازشی prefork برای هر سرویس راه‌اندازی می‌شوند (نگاه کنید به samba(8) -M). فرزندان prefork تنها برای سرویس‌هایی راه‌اندازی می‌شوند که از prefork پشتیبانی می‌کنند (در حال حاضر ldap، kdc و netlogon). برای پردازش‌هایی که از prefork پشتیبانی نمی‌کنند، تمام درخواست‌ها توسط یک پردازش واحد برای آن سرویس رسیدگی می‌شوند.

این مقدار باید روی مضرب کوچکی از تعداد CPUهای موجود در سرور تنظیم شود.

علاوه بر این، تعداد فرزندان prefork را می‌توان برای یک سرویس مشخص با استفاده از «prefork children: service name» تعیین کرد، یعنی «prefork children:ldap = 8» برای تنظیم تعداد پردازش‌های کارگر ldap.

Default: prefork children = 4

prefork maximum backoff (G)

این گزینه حداکثر زمان تاخیر پیش از راه‌اندازی مجدد یک پردازش شکست‌خورده‌ی pre-fork را کنترل می‌کند.

Default: prefork maximum backoff = 120

preload modules (G)

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

Default: preload modules =

Example: preload modules = /usr/lib/samba/passdb/mysql.so

preserve case (S)

این گزینه مشخص می‌کند که آیا نام فایل‌های جدید با بزرگی و کوچکی حروفی که کلاینت ارسال می‌کند ایجاد شوند، یا اینکه اجباراً با default case تطبیق داده شوند.

برای توضیحات کامل‌تر به بخش NAME MANGLING مراجعه کنید.

Default: preserve case = yes

print ok

این پارامتر مترادفی برای printable است.

printable (S)

اگر این پارامتر برابر yes باشد، کلاینت‌ها می‌توانند فایل‌های قرقره‌سازی (spool) را در دایرکتوری مشخص‌شده برای این سرویس باز کرده، در آن بنویسند و ارسال کنند.

توجه داشته باشید که یک سرویس printable همواره به نوشتن در مسیر سرویس (در صورت مجاز بودن دسترسی‌های کاربر) از طریق قرقره‌سازی داده‌های چاپ اجازه خواهد داد. پارامتر read only تنها دسترسی‌های غیرچاپی به منبع را کنترل می‌کند.

Default: printable = no

printcap cache time (G)

این گزینه مدت زمانی را به ثانیه مشخص می‌کند که پس از آن، وضعیت چاپگرهای شناخته‌شده دوباره از زیرسیستم چاپ استعلام می‌شود.

تنظیم این پارامتر روی 0، هرگونه بررسی مجدد برای چاپگرهای جدید یا حذف‌شده را پس از راه‌اندازی اولیه غیرفعال می‌کند.

Default: printcap cache time = 750

Example: printcap cache time = 600

printcap

این پارامتر مترادفی برای printcap name است.

printcap name (G)

این پارامتر ممکن است برای بازنویسی و نادیده‌گرفتن نام پیش‌فرض و کامپایل‌شده‌ی printcap که توسط سرور استفاده می‌شود (معمولاً /etc/printcap) به کار رود. برای بررسی دلایل استفاده از این پارامتر، به توضیحات بخش [printers] در بالا مراجعه کنید.

برای استفاده از رابط چاپ CUPS، مقدار printcap name = cups را تنظیم کنید. این مورد باید با تنظیم اضافی printing = cups در بخش [global] تکمیل شود. گزینه printcap name = cups از printcap مجازی و ساختگی (dummy) ایجادشده توسط CUPS، همان‌طور که در فایل پیکربندی CUPS شما مشخص شده است، استفاده خواهد کرد.

در سیستم‌های System V که از lpstat برای فهرست کردن چاپگرهای موجود استفاده می‌کنند، می‌توانید از printcap name = lpstat جهت دریافت خودکار فهرست چاپگرهای در دسترس استفاده کنید. این حالت برای سیستم‌هایی که در زمان پیکربندی و ساخت Samba گزینه SYSV را تعریف می‌کنند (شامل اکثر سیستم‌های مبتنی بر System V)، پیش‌فرض است. اگر printcap name روی این سیستم‌ها روی lpstat تنظیم شده باشد، Samba دستور lpstat -v را اجرا کرده و تلاش می‌کند تا خروجی را جهت به‌دست آوردن فهرست چاپگرها تجزیه (parse) کند.

یک فایل کمینه printcap ساختاری شبیه به این خواهد داشت:

print1|My Printer 1
print2|My Printer 2
print3|My Printer 3
print4|My Printer 4
print5|My Printer 5

که در آن '|' نام‌های مستعار یک چاپگر را جدا می‌کند. وجود فاصله در نام مستعار دوم به Samba نشان می‌دهد که این بخش یک یادداشت است.


نکته
در AIX نام پیش‌فرض printcap برابر /etc/qconfig است. در صورتی که رشته‌ی qconfig در نام فایل printcap وجود داشته باشد، Samba فرض می‌کند که فایل در قالب qconfig مربوط به AIX است.
Default: printcap name = /etc/printcap

Example: printcap name = /etc/myprintcap

print command (S)

پس از اتمام فرایند قرقره‌سازی (spooling) کار چاپ در یک سرویس، این دستور از طریق فراخوانی سیستمی system() برای پردازش فایل اسپول استفاده خواهد شد. معمولاً دستور تعیین‌شده فایل اسپول را به زیرسیستم چاپ میزبان ارسال می‌کند، اما الزامی برای این موضوع وجود ندارد. سرور فایل اسپول را پاک نخواهد کرد، بنابراین هر دستوری که تعیین می‌کنید باید پس از اتمام پردازش فایل اسپول، آن را حذف کند؛ در غیر این صورت باید فایل‌های اسپول قدیمی را به صورت دستی پاک کنید.

دستور print command صرفاً یک رشته متنی است. این رشته پس از اعمال جایگزینی ماکروها عینا به کار گرفته خواهد شد:

%s, %f - مسیر نام فایل اسپول

%p - نام چاپگر مربوطه

%J - نام کار چاپ ارسالی از طرف کلاینت، اما با جایگزینی کاراکترهای خطرناک با _. شما باید مستقیماً از کوتیشن تکی اطراف %J استفاده کنید، مانند '%J'؛ برای جزئیات بیشتر به CVE-2026-4480 مراجعه کنید.

%c - تعداد صفحات چاپ‌شده از کار اسپول‌شده (در صورت مشخص بودن).

%z - اندازه کار چاپ اسپول‌شده (به بایت)

دستور print command باید حداقل شامل یکی از شناسه‌های %s یا %f باشد؛ استفاده از %p اختیاری است. در زمان ارسال کار چاپ، در صورتی که نام چاپگری ارائه نشده باشد، %p بدون هیچ پیامی از دستور چاپ حذف خواهد شد.

اگر این گزینه در بخش [global] تعیین شود، دستور چاپ ارائه‌شده برای هر سرویس چاپی (printable) که فاقد print command اختصاصی باشد استفاده خواهد شد.

اگر هیچ دستور چاپی چه در سرویس چاپی و چه به صورت سراسری تعیین نشده باشد، فایل‌های اسپول ایجاد می‌شوند اما پردازش نشده و (مهم‌تر از همه) حذف نخواهند شد.

توجه داشته باشید که در برخی سیستم‌های UNIX ممکن است فرایند چاپ با استفاده از حساب کاربری nobody با خطا مواجه شود. در این صورت، یک حساب کاربری مهمان جایگزین بسازید که توانایی چاپ داشته باشد و گزینه guest account را در بخش [global] تنظیم کنید.

با دانستن اینکه این دستورات مستقیماً به شل تحویل داده می‌شوند، می‌توانید دستورهای چاپ بسیار پیچیده‌ای بسازید. برای مثال، دستور زیر کار چاپ را در یک لاگ ثبت کرده، فایل را چاپ می‌کند و سپس آن را حذف می‌نماید. توجه داشته باشید که ';' جداکننده معمول دستورات در اسکریپت‌های شل است.

print command = echo Printing %s >> /tmp/print.log; lpr -P %p %s; rm %s

بسته به نحوه چاپ معمول فایل‌ها در سیستم خود، ممکن است نیاز باشد این دستور را به مقدار زیادی تغییر دهید. مقدار پیش‌فرض این پارامتر بر اساس مقدار تنظیم‌شده در پارامتر printing تغییر می‌کند.

Default: For printing = BSD, AIX, QNX, LPRNG or PLP :

print command = lpr -r -P%p %s

For printing = SYSV or HPUX :

print command = lp -c -d%p %s; rm %s

For printing = SOFTQ :

print command = lp -d%p -s %s; rm %s

For printing = CUPS : اگر Samba به همراه libcups کامپایل شده باشد، آنگاه printcap = cups از رابط برنامه‌نویسی CUPS API برای ارسال کارها و غیره استفاده می‌کند. در غیر این صورت، این حالت به دستورات System V همراه با گزینه -oraw برای چاپ نگاشت می‌شود؛ یعنی از lp -c -d%p -oraw; rm %s استفاده می‌کند. با تنظیم printing = cups، و در صورتی که Samba با libcups کامپایل شده باشد، هرگونه دستور چاپ دستی تنظیم‌شده نادیده گرفته خواهد شد.

بدون پیش‌فرض

Example: print command = /usr/local/samba/bin/myprintscript %p %s

printer

این پارامتر مترادفی برای printer name است.

printer name (S)

این پارامتر نام چاپگری را مشخص می‌کند که کارهای چاپ اسپول‌شده از طریق یک سرویس چاپی (printable) باید به آن ارسال شوند.

اگر در بخش [global] تعیین شود، نام چاپگر مشخص‌شده برای هر سرویس چاپی که نام چاپگر اختصاصی برای آن مشخص نشده باشد، اعمال خواهد شد.

مقدار پیش‌فرض printer name در بسیاری از سیستم‌ها ممکن است lp باشد.

Default: printer name =

Example: printer name = laserwriter

printing (S)

این پارامتر چگونگی تفسیر اطلاعات وضعیت چاپگر را در سیستم شما کنترل می‌کند. همچنین اگر در بخش [global] مشخص شده باشد، بر مقادیر پیش‌فرض برای print command، lpq command، lppause command ، lpresume command و lprm command اثر می‌گذارد.

در حال حاضر نه شیوه چاپ پشتیبانی می‌شوند. آن‌ها عبارتند از BSD، AIX، LPRNG، PLP، SYSV، HPUX، QNX، SOFTQ، CUPS و IPRINT.

توجه داشته باشید که CUPS و IPRINT تنها زمانی در دسترس هستند که کتابخانه توسعه CUPS در زمان کامپایل یا بسته‌بندی Samba موجود بوده باشد.

برای مشاهده مقادیر پیش‌فرض سایر دستورات چاپ هنگام استفاده از گزینه‌های مختلف، از برنامه testparm(1) استفاده کنید.

این گزینه را می‌توان به ازای هر چاپگر تنظیم کرد. با این حال لطفاً آگاه باشید که باید هر یک از دستورات مختلف چاپ (مانند print command، lpq command و غیره) را پس از تعریف مقدار گزینه printing قرار دهید، زیرا مقدار دستورات چاپ را به مقادیر پیش‌فرض بازنشانی خواهد کرد.

همچنین به توضیحات بخش [printers] مراجعه کنید.

برای مشاهده مقدار پیش‌فرض در سیستم خود، testparm -v. را بررسی کنید.

Default: printing = # Depends on the operating system

printjob username (S)

این پارامتر مشخص می‌کند کدام اطلاعات کاربر به سیستم چاپ ارسال خواهد شد. معمولاً نام کاربری ارسال می‌شود، اما در برخی موارد، برای مثال پیشوند دامنه (domain prefix) نیز مفید است.

Default: printjob username = %U

Example: printjob username = %D\%U

print notify backchannel (S)

کلاینت‌های چاپ Windows می‌توانند وضعیت صف چاپ را با انتظار از سرور برای باز کردن یک اتصال SMB در کانال بازگشتی (backchannel) به سمت آن‌ها به‌روزرسانی کنند. به دلیل تنظیمات فایروال کلاینت، این امر می‌تواند باعث وقفه‌های زمانی (timeout) طولانی شود و اغلب با شکست مواجه خواهد شد، زیرا هیچ تضمینی وجود ندارد که کلاینت حتی یک سرور SMB را اجرا کند. به طور پیش‌فرض، سرور چاپ Samba تلاشی برای اتصال بازگشتی به کلاینت‌ها نخواهد کرد و با درخواست‌های مربوطه به گونه‌ای رفتار می‌کند که گویی اتصال بازگشتی به کلاینت ناموفق بوده است.

Default: print notify backchannel = no

private directory

این پارامتر مترادفی برای private dir. است.

private dir (G)

این پارامتر دایرکتوری‌ای را مشخص می‌کند که smbd برای ذخیره فایل‌هایی نظیر smbpasswd و secrets.tdb. استفاده خواهد کرد.

Default: private dir = /var/lib/samba/private

queuepause command (S)

این پارامتر دستوری را مشخص می‌کند که باید بر روی میزبان سرور اجرا شود تا صف چاپگر متوقف (pause) شود.

این دستور باید یک برنامه یا اسکریپت باشد که نام چاپگر را به عنوان تنها آرگومان خود دریافت کرده و صف چاپگر را متوقف کند، به طوری که کارهای جدید دیگری به چاپگر تحویل داده نشوند.

این دستور توسط Windows for Workgroups پشتیبانی نمی‌شود، اما می‌تواند از پنجره Printers در Windows 95 و NT صادر شود.

اگر یک %p مشخص شده باشد، نام چاپگر در جایگاه آن قرار می‌گیرد. در غیر این صورت در انتهای دستور قرار خواهد گرفت.

توجه داشته باشید که استفاده از مسیر مطلق در دستور عملکرد مناسبی است، زیرا ممکن است متغیر PATH برای سرور در دسترس نباشد.

Default: queuepause command = # determined by printing parameter

Example: queuepause command = disable %p

queueresume command (S)

این پارامتر دستوری را مشخص می‌کند که باید بر روی میزبان سرور اجرا شود تا کار صف چاپگر از سر گرفته شود (resume). این دستور برای خنثی کردن رفتاری است که توسط پارامتر قبلی (queuepause command) ایجاد شده است.

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

این دستور توسط Windows for Workgroups پشتیبانی نمی‌شود، اما می‌تواند از پنجره Printers در Windows 95 و NT صادر شود.

اگر یک %p مشخص شده باشد، نام چاپگر در جایگاه آن قرار می‌گیرد. در غیر این صورت در انتهای دستور قرار خواهد گرفت.

توجه داشته باشید که استفاده از مسیر مطلق در دستور عملکرد مناسبی است، زیرا ممکن است متغیر PATH برای سرور در دسترس نباشد.

Default: queueresume command = # determined by printing parameter

Example: queueresume command = enable %p

raw NTLMv2 auth (G)

این پارامتر از نسخه 4.13 سامبا منسوخ شده است و پشتیبانی از احراز هویت NTLMv2 بدون NTLMSSP در انتشار آینده Samba حذف خواهد شد.

به این معنی که در آینده، رفتار پیش‌فرض کنونی raw NTLMv2 auth = no رفتار اجباری خواهد بود.

این پارامتر تعیین می‌کند که آیا smbd(8) به کلاینت‌های SMB1 فاقد امنیت گسترش‌یافته (بدون SPNEGO) اجازه استفاده از احراز هویت NTLMv2 را می‌دهد یا خیر.

اگر این گزینه، lanman auth و ntlm auth همگی غیرفعال باشند، تنها کلاینت‌های دارای پشتیبانی از SPNEGO مجاز خواهند بود. این بدان معناست که NTLMv2 تنها درون NTLMSSP پشتیبانی می‌شود.

Default: raw NTLMv2 auth = no

read list (S)

این فهرستی از کاربرانی است که دسترسی فقط‌خواندنی (read-only) به یک سرویس دریافت می‌کنند. اگر کاربر متصل‌شونده در این فهرست باشد، صرف‌نظر از این‌که گزینه read only روی چه مقداری تنظیم شده باشد، دسترسی نوشتن به او داده نخواهد شد. این فهرست می‌تواند با استفاده از نحو شرح‌داده‌شده در پارامتر invalid users شامل نام گروه‌ها نیز باشد.

Default: read list =

Example: read list = mary, @students

read only (S)

یک مترادف معکوس، writeable است.

اگر این پارامتر برابر yes باشد، کاربران یک سرویس نمی‌توانند فایل‌هایی را در دایرکتوری آن سرویس ایجاد کنند یا تغییر دهند.

توجه داشته باشید که یک سرویس قابل‌چاپ (printable = yes) همواره اجازه نوشتن در دایرکتوری را (در صورت اجازه مجوزهای کاربر) خواهد داد، اما تنها از طریق عملیات‌های قرقره‌سازی (spooling).

Default: read only = yes

read raw (G)

اگر async smb echo handler تنظیم شده باشد، این پارامتر نادیده گرفته می‌شود، زیرا این قابلیت با درخواست‌های SMB خواندن خام (raw read) ناسازگار است.

در صورت فعال بودن، خواندن خام امکان خواندن ۶۵۵۳۵ بایت را در یک بسته فراهم می‌کند. این ویژگی معمولاً مزیت عملکردی چشمگیری را برای برخی کلاینت‌های بسیار بسیار قدیمی ایجاد می‌کند.

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

به طور کلی این پارامتر باید به عنوان یک ابزار تنظیم دقیق سیستم در نظر گرفته شده و اکیداً به حال خود رها شود.

Default: read raw = yes

realm (G)

این گزینه قلمرو (realm) کربروس مورد استفاده را مشخص می‌کند. قلمرو به عنوان معادل ADS برای دامنه NT4 به کار می‌رود. این گزینه معمولاً روی نام DNS سرور کربروس تنظیم می‌شود.

Default: realm =

Example: realm = mysambabox.mycompany.com

registry shares (G)

این گزینه پشتیبانی از تعاریف اشتراک خوانده‌شده از رجیستری را فعال یا غیرفعال می‌کند. اشتراک‌های تعریف‌شده در smb.conf بر اشتراک‌های هم‌نام تعریف‌شده در رجیستری اولویت دارند. برای جزئیات به بخش پیکربندی مبتنی بر رجیستری مراجعه کنید.

توجه داشته باشید که این پارامتر به طور پیش‌فرض روی no تنظیم است، اما هنگامی که config backend روی registry تنظیم شده باشد، به yes تغییر می‌یابد.

Default: registry shares = no

Example: registry shares = yes

reject aes netlogon servers (G)

این گزینه مشخص می‌کند که آیا winbindd برای کانال امن netlogon به پشتیبانی از ServerAuthenticateKerberos نیاز دارد یا خیر.

پشتیبانی از ServerAuthenticateKerberos در Windows با شروع از Server 2025 اضافه شده است؛ این قابلیت در کنترل‌کننده‌های دامنه Active Directory سامبا با شروع از نسخه 4.22 با گزینه 'server support krb5 netlogon = yes' در دسترس است، که به طور پیش‌فرض غیرفعال می‌باشد.

فلگ‌های زیر الزامی خواهند بود: NETLOGON_NEG_PASSWORD_SET2، NETLOGON_NEG_SUPPORTS_KERBEROS_AUTH و NETLOGON_NEG_AUTHENTICATED_RPC.

اگر تمام کنترل‌کننده‌های دامنه از ServerAuthenticateKerberos پشتیبانی می‌کنند، می‌توانید این گزینه را روی yes قرار دهید. این کار از حملات تنزل رتبه (downgrade attacks) جلوگیری خواهد کرد.

این رفتار می‌تواند به ازای هر دامنه NetBIOS با استفاده از 'reject aes netlogon servers:NETBIOSDOMAIN = no' به عنوان گزینه کنترل شود.

این گزینه بر گزینه reject md5 servers اولویت دارد و آن را باطل می‌کند.

این گزینه بر گزینه client use krb5 netlogon (در صورتی که عملاً غیرفعال باشد) اولویت دارد و آن را باطل می‌کند.

Default: reject aes netlogon servers = no

reject md5 clients (G)

این گزینه منسوخ شده است و در نسخه‌های آینده حذف خواهد شد، زیرا در صورتی که روی «yes» تنظیم نشود، یک مشکل امنیتی محسوب می‌شود (که در آینده به رفتار ثابت و پیش‌فرض سامانه تبدیل خواهد شد).

این گزینه کنترل می‌کند که آیا سرور netlogon (در حال حاضر تنها در حالت 'active directory domain controller')، کلاینت‌هایی را که از NETLOGON_NEG_SUPPORTS_AES پشتیبانی نمی‌کنند رد خواهد کرد یا خیر.

پشتیبانی از NETLOGON_NEG_SUPPORTS_AES در ویندوز با نسخه‌های Server 2008R2 و Windows 7 اضافه شد؛ این قابلیت در Samba از نسخه 4.0 به بعد در دسترس است، با این حال اعضای دامنه‌ی شخص ثالث مانند NetApp ONTAP همچنان از RC4 (HMAC-MD5) استفاده می‌کنند؛ برای جزئیات بیشتر به https://www.samba.org/samba/security/CVE-2022-38023.html مراجعه کنید.

مقدار پیش‌فرض با وصله‌های مربوط به CVE-2022-38023 از 'no' به 'yes' تغییر یافته است؛ نگاه کنید به https://bugzilla.samba.org/show_bug.cgi?id=15240.

از این گزینه استفاده نکنید! در عوض از گزینه صریح به ازای هر حساب رایانه 'server reject md5 schannel:COMPUTERACCOUNT' استفاده کنید! این امکان همراه با وصله‌های مربوط به CVE-2022-38023 در دسترس قرار گرفته است؛ نگاه کنید به https://bugzilla.samba.org/show_bug.cgi?id=15240.

اگر یک کلاینت قدیمی (legacy) رد شود یا بدون یک گزینه صریح 'server reject md5 schannel:COMPUTERACCOUNT = no' برای آن کلاینت مجاز دانسته شود، Samba خطایی را در فایل‌های لاگ در سطح لاگ 0 ثبت خواهد کرد. در صورتی که نرم‌افزار کلاینت قدیمی به آن نیاز داشته باشد، پیام مشخص خواهد کرد که کدام خط صریح 'server reject md5 schannel:COMPUTERACCOUNT = no' باید اضافه شود. (سطح لاگ را می‌توان با 'CVE_2022_38023:error_debug_level = 1' تنظیم کرد تا تنها در سطوح لاگ بالاتر اخطار داده شود).

این امر به مدیران سیستم اجازه می‌دهد تا از «no» تنها برای یک دوره مهلت کوتاه استفاده کنند، تا بتوانند گزینه‌های صریح 'server reject md5 schannel:COMPUTERACCOUNT = no' را جمع‌آوری و اعمال نمایند.

هنگامی که روی 'yes' تنظیم شود، این گزینه بر گزینه‌های 'allow nt4 crypto:COMPUTERACCOUNT' و 'allow nt4 crypto' اولویت یافته و آن‌ها را لغو می‌کند و به معنای 'allow nt4 crypto:COMPUTERACCOUNT = no' خواهد بود.

این گزینه توسط مقدار مؤثر 'yes' ناشی از گزینه‌های 'server reject aes schannel:COMPUTERACCOUNT' و/یا 'server reject aes schannel' لغو (override) می‌شود.

Default: reject md5 clients = yes

server reject md5 schannel:COMPUTERACCOUNT (G)

اگر هنوز اعضای دامنه یا دامنه‌های مورد اعتماد قدیمی دارید که قبلاً به «reject md5 clients = no» نیاز داشتند، این امکان وجود دارد که با تنظیم 'server reject md5 schannel:COMPUTERACCOUNT = no' یک استثنای صریح برای هر حساب رایانه مشخص کنید. توجه داشته باشید که COMPUTERACCOUNT باید مقدار sAMAccountName حساب رایانه باشد (شامل علامت '$' پایانی).

اگر این گزینه روی «no» تنظیم شده باشد اما رایانه مربوطه به آن نیازی نداشته باشد، Samba در سطح لاگ 0 شکایتی را درباره این مشکل امنیتی در فایل‌های لاگ ثبت خواهد کرد. (سطح لاگ را می‌توان با 'CVE_2022_38023:warn_about_unused_debug_level = 1' تنظیم کرد تا تنها در سطوح لاگ بالاتر اخطار داده شود).

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

نگاه کنید به CVE-2022-38023, https://bugzilla.samba.org/show_bug.cgi?id=15240.

این گزینه پارامتر reject md5 clients را لغو می‌کند.

هنگامی که روی 'yes' تنظیم شود، این گزینه بر گزینه‌های 'allow nt4 crypto:COMPUTERACCOUNT' و 'allow nt4 crypto' اولویت یافته و آن‌ها را لغو می‌کند و به معنای 'allow nt4 crypto:COMPUTERACCOUNT = no' خواهد بود.

این گزینه توسط مقدار مؤثر 'yes' ناشی از گزینه‌های 'server reject aes schannel:COMPUTERACCOUNT' و/یا 'server reject aes schannel' لغو (override) می‌شود.

این بدان معناست که 'server reject md5 schannel:COMPUTERACCOUNT = no' تنها در ترکیب با 'server reject aes schannel:COMPUTERACCOUNT = no' مفید خواهد بود.

server reject md5 schannel:LEGACYCOMPUTER1$ = no
server reject aes schannel:LEGACYCOMPUTER1$ = no
server reject md5 schannel:NASBOX$ = no
server reject aes schannel:NASBOX$ = no
server reject md5 schannel:LEGACYCOMPUTER2$ = no
server reject aes schannel:LEGACYCOMPUTER2$ = no

No default

reject md5 servers (G)

این گزینه کنترل می‌کند که آیا winbindd به پشتیبانی از aes برای کانال امن netlogon نیاز دارد یا خیر.

فلگ‌های زیر الزامی خواهند بود: NETLOGON_NEG_ARCFOUR، NETLOGON_NEG_SUPPORTS_AES، NETLOGON_NEG_PASSWORD_SET2 و NETLOGON_NEG_AUTHENTICATED_RPC.

اگر همه کنترل‌کننده‌های دامنه (domain controllers) از aes پشتیبانی می‌کنند، می‌توانید این گزینه را روی yes تنظیم کنید. این کار از حملات تنزل رتبه امنیتی (downgrade attacks) جلوگیری خواهد کرد.

این رفتار را می‌توان به ازای هر دامنه netbios با استفاده از گزینه 'reject md5 servers:NETBIOSDOMAIN = no' کنترل کرد.

مقدار پیش‌فرض با وصله‌های مربوط به CVE-2022-38023 از 'no' به 'yes' تغییر یافت؛ نگاه کنید به https://bugzilla.samba.org/show_bug.cgi?id=15240

این گزینه توسط گزینه reject aes netlogon servers لغو (override) می‌شود.

این گزینه بر گزینه require strong key اولویت دارد و آن را لغو می‌کند.

Default: reject md5 servers = yes

remote announce (G)

این گزینه به شما امکان می‌دهد nmbd(8) را پیکربندی کنید تا خود را به‌طور دوره‌ای با یک نام workgroup دلخواه به آدرس‌های IP دلخواه اعلان کند.

این قابلیت زمانی مفید است که بخواهید سرور Samba شما در یک گروه کاری دوردست ظاهر شود که قوانین معمول انتشار مرور (browse propagation) در آن کار نمی‌کنند. گروه کاری دوردست می‌تواند هر مکانی باشد که امکان ارسال بسته‌های IP به آن وجود دارد.

برای مثال:

remote announce = 192.168.2.255/SERVERS 192.168.4.255/STAFF

خط بالا باعث می‌شود nmbd با استفاده از نام‌های workgroup مشخص‌شده، خود را به دو آدرس IP ارائه‌شده اعلان نماید. اگر نام گروه کاری را تعیین نکنید، نام مشخص‌شده در پارامتر workgroup به جای آن استفاده خواهد شد.

آدرس‌های IP انتخابی شما معمولاً آدرس‌های پخش همگانی (broadcast) شبکه‌های دوردست هستند، اما در صورتی که پیکربندی شبکه شما به اندازه کافی پایدار باشد، می‌توانند آدرس‌های IP مستر بروزرهای (browse masters) شناخته‌شده نیز باشند.

فصل مربوط به مرور شبکه (Network Browsing) را در کتابچه Samba-HOWTO مطالعه کنید.

Default: remote announce =

remote browse sync (G)

این گزینه به شما امکان می‌دهد nmbd(8) را پیکربندی کنید تا به‌طور دوره‌ای همگام‌سازی فهرست‌های مرور (browse lists) را با مستر بروزر یک سرور Samba که در یک سگمنت دوردست قرار دارد، درخواست نماید. این گزینه به شما امکان می‌دهد فهرست‌های مرور را برای چندین گروه کاری در سراسر شبکه‌های مسیریابی‌شده دریافت کنید. این فرایند به گونه‌ای انجام می‌شود که با هیچ سرور غیر Samba کار نمی‌کند.

این قابلیت زمانی مفید است که بخواهید سرور Samba شما و تمام کلاینت‌های محلی در یک گروه کاری دوردست ظاهر شوند که قوانین معمولی انتشار مرور در آن کار نمی‌کنند. گروه کاری دوردست می‌تواند هر مکانی باشد که بتوانید بسته‌های IP به آن ارسال کنید.

برای مثال:

remote browse sync = 192.168.2.255 192.168.4.255

خط بالا باعث می‌شود nmbd از مستر بروزر در زیرشبکه‌ها یا آدرس‌های مشخص‌شده درخواست کند تا فهرست‌های مرور خود را با سرور محلی همگام‌سازی نمایند.

آدرس‌های IP انتخابی شما معمولاً آدرس‌های پخش همگانی (broadcast) شبکه‌های دوردست خواهند بود، اما در صورت پایداری پیکربندی شبکه، می‌توانند آدرس‌های IP مستر بروزرهای شناخته‌شده نیز باشند. اگر آدرس IP یک ماشین مشخص شود، Samba هیچ تلاشی برای تأیید اعتبار در دسترس بودن ماشین دوردست، گوش دادن آن، یا اینکه آیا واقعاً مستر بروزر سگمنت خود است یا خیر انجام نمی‌دهد.

گزینه remote browse sync را می‌توان در شبکه‌هایی که سرور WINS ندارند، و همچنین در شبکه‌های مجزایی که هر کدام سرور WINS مخصوص به خود را دارند استفاده کرد.

Default: remote browse sync =

rename user script (G)

این مسیر کامل اسکریپتی است که تحت شرایط خاصی که در ادامه شرح داده شده است، با دسترسی ریشه (root) توسط smbd(8) اجرا خواهد شد.

هنگامی که کاربری با اختیارات مدیر سیستم (admin authority) یا امتیازات SeAddUserPrivilege نام کاربری را تغییر دهد (برای مثال: از طریق NT4 User Manager for Domains)، این اسکریپت برای تغییر نام کاربر POSIX اجرا خواهد شد. دو متغیر %uold و %unew به ترتیب با نام‌های کاربری قدیمی و جدید جایگزین خواهند شد. اسکریپت باید در صورت اتمام موفقیت‌آمیز مقدار 0 و در غیر این صورت مقداری غیرصفر بازگرداند.


نکته
این اسکریپت مسئولیت کامل تغییر نام تمام داده‌های لازمی را دارد که در این روش posix قابل دسترسی هستند. این امر می‌تواند الزامات متفاوتی برای بک‌اندهای گوناگون به همراه داشته باشد. بک‌اندهای tdbsam و smbpasswd به محتویات فایل‌های مربوط به خود رسیدگی می‌کنند، بنابراین اسکریپت تنها مسئول تغییر نام کاربری POSIX و سایر داده‌هایی است که ممکن است بسته به شرایط شما مورد نیاز باشد، مانند دایرکتوری خانگی (home directory). لطفاً این نکته را نیز بررسی کنید که آیا نیازی به تغییر نام خود پوشه‌های خانگی واقعی دارید یا خیر. بک‌اند ldapsam به دلیل مشکلات احتمالی مرتبط با تغییر نام مشخصه نام‌گذاری LDAP، هیچ تغییری ایجاد نخواهد کرد. در این حالت، اسکریپت مسئول تغییر مشخصه‌ای است که samba برای یافتن کاربران از آن استفاده می‌کند (uid)، و همچنین مسئول هر داده‌ای خواهد بود که باید برای سایر برنامه‌های استفاده‌کننده از همان دایرکتوری تغییر یابد.
Default: rename user script =

require strong key (G)

این گزینه کنترل می‌کند که آیا winbindd به پشتیبانی از کلید قوی md5 برای کانال امن netlogon نیاز دارد یا خیر.

فلگ‌های زیر الزامی خواهند بود: NETLOGON_NEG_STRONG_KEYS، NETLOGON_NEG_ARCFOUR و NETLOGON_NEG_AUTHENTICATED_RPC.

اگر برخی از کنترل‌کننده‌های دامنه تنها از des پشتیبانی می‌کنند، می‌توانید این گزینه را روی no تنظیم کنید. این کار ممکن است اجازه دهد تا رمزنگاری‌های ضعیف، احتمالاً از طریق حملات تنزل رتبه امنیتی (downgrade attacks)، مورد توافق قرار گیرند.

این رفتار را می‌توان به ازای هر دامنه netbios با استفاده از گزینه 'require strong key:NETBIOSDOMAIN = no' کنترل کرد.

توجه داشته باشید که برای دامنه active directory این گزینه به‌طور ثابت روی 'yes' تنظیم شده است.

این گزینه توسط پارامتر reject md5 servers لغو (override) می‌شود.

این گزینه پارامتر client schannel را لغو می‌کند.

Default: require strong key = yes

reset on zero vc (G)

این گزینه بولی مشخص می‌کند که آیا برقراری نشست ورودی SMB1 باید سایر اتصال‌های ناشی از همان آدرس IP را قطع کند یا خیر. این رفتار مطابق با رفتار پیش‌فرض Windows 2003 است. فعال کردن این پارامتر (yes) زمانی ضروری می‌شود که شما یک شبکه ناپایدار داشته باشید و ویندوز تصمیم به اتصال مجدد بگیرد، در حالی که اتصال قبلی همچنان فایل‌هایی با حالت اشتراک‌گذاری (share modes) باز دارد. این فایل‌ها از طریق اتصال جدید غیرقابل دسترس می‌شوند. کلاینت یک VC صفر بر روی اتصال جدید ارسال می‌کند، و Windows 2003 تمام اتصالات دیگر حاصل از همان IP را قطع می‌کند. به این ترتیب فایل‌های قفل‌شده دوباره قابل دسترس می‌شوند. لطفاً توجه داشته باشید که فعال کردن این گزینه اتصالات پشت یک روتر ماسکرادینگ (masquerading router) را قطع خواهد کرد، و برای کلاینت‌هایی که فقط از SMB2 یا SMB3 استفاده می‌کنند اعمال نخواهد شد.

Default: reset on zero vc = no

restrict anonymous (G)

تنظیم این پارامتر مشخص می‌کند که آیا سرویس‌های DCERPC مربوط به SAMR و LSA به‌صورت ناشناس قابل دسترسی هستند یا خیر. این گزینه با مقادیر رجیستری Windows Server زیر مطابقت دارد:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\RestrictAnonymous

این گزینه همچنین بر گزینه مرور (browse) که توسط کلاینت‌های قدیمی متکی به مرور Netbios مورد نیاز است تأثیر می‌گذارد. با اینکه نسخه‌های مدرن ویندوز نباید با محدود کردن این دسترسی مشکلی داشته باشند، ممکن است همچنان برنامه‌هایی وجود داشته باشند که به دسترسی ناشناس متکی هستند.

تنظیم restrict anonymous = 1 دسترسی ناشناس به SAMR را غیرفعال خواهد کرد.

تنظیم restrict anonymous = 2 علاوه بر محدود کردن دسترسی به SAMR، به‌طور کلی اتصال‌های ناشناس به اشتراک IPC$ را نیز غیرمجاز می‌کند. تنظیم guest ok = yes بر روی هر اشتراکی، این مزیت امنیتی را بی‌اثر خواهد ساخت.

Default: restrict anonymous = 0

root

این پارامتر مترادفی برای root directory است.

root dir

این پارامتر مترادفی برای root directory است.

root directory (G)

سرور در هنگام راه‌اندازی، به این دایرکتوری chroot() خواهد کرد (یعنی دایرکتوری ریشه خود را تغییر می‌دهد). این کار برای عملکرد امن، الزام قطعی نیست. حتی بدون آن نیز سرور دسترسی به فایل‌هایی را که در یکی از مدخل‌های سرویس نیستند مسدود خواهد کرد. همچنین ممکن است پیوندهای نمادین (soft links) به بخش‌های دیگر سیستم‌فایل، یا تلاش برای استفاده از «..» در نام فایل‌ها جهت دسترسی به سایر دایرکتوری‌ها را بررسی کرده و دسترسی به آن‌ها را منع کند (بسته به تنظیم پارامتر wide links).

افزودن یک مدخل root directory به غیر از «/» یک سطح امنیتی اضافی ایجاد می‌کند، اما بهایی به همراه دارد. این تنظیم کاملاً تضمین می‌کند که هیچ دسترسی به فایل‌های خارج از زیردرخت مشخص‌شده در گزینه root directory داده نشود، از جمله برخی فایل‌های مورد نیاز برای عملکرد کامل سرور. برای حفظ کارایی کامل سرور، باید برخی از فایل‌های سیستمی را در درخت root directory آینه‌سازی (mirror) کنید. به‌ویژه باید /etc/passwd (یا زیرمجموعه‌ای از آن) و هر باینری یا فایل پیکربندی مورد نیاز برای چاپ (در صورت لزوم) را بازتاب دهید. مجموعه فایل‌هایی که باید بازتاب داده شوند، وابسته به سیستم‌عامل است.

Default: root directory =

Example: root directory = /homes/smb

root postexec (S)

این پارامتر همانند پارامتر postexec است، با این تفاوت که دستور با دسترسی root اجرا می‌شود. این قابلیت برای پیاده‌سازی (unmount) سیستم‌فایل‌ها (مانند CDROMها) پس از بسته شدن یک اتصال کاربرد دارد.

Default: root postexec =

root preexec (S)

این پارامتر همانند پارامتر preexec است، با این تفاوت که دستور با دسترسی root اجرا می‌شود. این قابلیت برای سوار کردن (mount) سیستم‌فایل‌ها (مانند CDROMها) هنگام باز شدن یک اتصال کاربرد دارد.

Default: root preexec =

root preexec close (S)

این پارامتر همانند پارامتر preexec close است، با این تفاوت که دستور با دسترسی root اجرا می‌شود.

Default: root preexec close = no

rpc big endian (G)

تنظیم این گزینه کلاینت و سرور RPC را مجبور به انتقال داده‌ها در قالب big endian (بزرگ‌پایان) می‌کند.

اگر غیرفعال باشد، داده‌ها در قالب little endian (کوچک‌پایان) منتقل خواهند شد.

این رفتار مستقل از چینش بایت‌ها (endianness) در ماشین میزبان است.

Default: rpc big endian = no

rpc server dynamic port range (G)

این پارامتر به سرور RPC مشخص می‌کند مجاز به استفاده از کدام بازه پورت برای ایجاد یک سوکت شنود جهت LSA، SAM، Netlogon و سایر موارد بدون پورت‌های tcp شناخته‌شده است. مقدار اول کمترین شماره بازه پورت و مقدار دوم بیشترین شماره است.

این پارامتر برای سرورهای RPC در تمامی نقش‌های سرور (server roles) اعمال می‌شود.

Default: rpc server dynamic port range = 49152-65535

rpc server port (G)

مشخص می‌کند که سرور برای ترافیک DCE/RPC روی TCP/IP باید به کدام پورت گوش فرا دهد.

این پارامتر پورت پیش‌فرض را برای تمامی پروتکل‌ها، به جز NETLOGON کنترل می‌کند.

در صورت عدم تنظیم، نخستین پورت در دسترس از rpc server dynamic port range استفاده می‌شود، برای مثال 49152.

سرور NETLOGON از پورت در دسترس بعدی استفاده خواهد کرد، برای مثال 49153. برای تغییر این پورت می‌توانید (برای نمونه) از rpc server port:netlogon = 4000 استفاده کنید.

علاوه بر این، برای همه سرورهای RPC می‌توان پورت مورد استفاده را به‌طور مستقل تعیین کرد؛ برای نمونه با rpc server port:drsuapi = 5000.

این گزینه در حال حاضر تنها زمانی اعمال می‌شود که samba(8) به عنوان کنترل‌کننده دامنه اکتیو دایرکتوری (Active Directory Domain Controller) اجرا شود.

مقدار پیش‌فرض 0 موجب می‌شود که سامبا نخستین پورت در دسترس را از rpc server dynamic port range انتخاب کند.

Default: rpc server port = 0

rpc start on demand helpers (G)

این پارامتر سراسری تعیین می‌کند که آیا samba-dcerpcd باید بر حسب تقاضا (on demand) جهت پاسخ‌گویی به درخواست‌های پایپ نام‌گذاری‌شده (np) DCE-RPC از سوی smbd یا winbindd راه‌اندازی شود یا خیر. این حالت عادی زمانی است که هیچ اسکریپت راه‌اندازی برای شروع samba-dcerpcd به عنوان یک دیمن تغییر داده نشده باشد.

اگر samba-dcerpcd به صورت یک دیمن یا از طریق یک مدیر سرویس سیستمی مانند systemd راه‌اندازی شود، این پارامتر حتماً باید بر روی "no" تنظیم گردد؛ در غیر این صورت راه‌اندازی samba-dcerpcd با شکست مواجه خواهد شد.

Default: rpc start on demand helpers = yes

samba kcc command (G)

این گزینه مسیر دستور Samba KCC را مشخص می‌کند. این اسکریپت برای بازتولید توپولوژی تکثیر (replication topology replication) استفاده می‌شود.

اصلاح این گزینه جز برای اهداف آزمایشی یا در صورتی که samba_kcc در مکانی غیرپیش‌فرض نصب شده باشد، نباید لازم باشد.

Default: samba kcc command = /build/samba/src/samba-4.24.6/source4/scripting/bin/samba_kcc

Example: samba kcc command = /usr/local/bin/kcc

security (G)

این گزینه بر نحوه پاسخ‌دهی کلاینت‌ها به سامبا اثر می‌گذارد و یکی از مهم‌ترین تنظیمات در فایل smb.conf است.

مگر آنکه server role مشخص شده باشد، حالت پیش‌فرض security = user است، چرا که این رایج‌ترین تنظیم بوده و برای یک سرور فایل مستقل (standalone) یا یک DC به کار می‌رود.

جایگزین‌های security = user شامل security = ads یا security = domain هستند که از پیوستن سامبا به یک دامنه ویندوز (Windows domain) پشتیبانی می‌کنند.

اگر عمدتاً مایل به راه‌اندازی اشتراک‌های بدون گذرواژه (اشتراک‌های مهمان یا guest shares) هستید، باید از security = user و map to guest استفاده کنید. این پیکربندی معمولاً برای یک سرور چاپگر اشتراکی به کار می‌رود.

اکنون تنظیمات مختلف توضیح داده می‌شوند.

SECURITY = AUTO

این تنظیم امنیتی پیش‌فرض در سامبا است و باعث می‌شود سامبا برای تعیین حالت امنیتی، پارامتر server role را (در صورت تنظیم بودن) بررسی کند.

SECURITY = USER

اگر server role مشخص نشده باشد، این حالت تنظیم امنیتی پیش‌فرض در سامبا است. با امنیت در سطح کاربر (user-level security)، کلاینت ابتدا باید با یک نام کاربری و گذرواژه معتبر «لاگین کند» (که این نام کاربری می‌تواند با استفاده از پارامتر username map نگاشت شود). گذرواژه‌های رمزنگاری‌شده (به پارامتر encrypt passwords مراجعه کنید) نیز می‌توانند در این حالت امنیتی استفاده شوند. پارامترهایی از قبیل force user و guest only در صورت تنظیم بودن سپس اعمال می‌شوند و ممکن است کاربر یونیکس مورد استفاده در این اتصال را تغییر دهند، اما تنها پس از آنکه کاربر با موفقیت احراز هویت شد.

توجه داشته باشید که نام منبع درخواستی تا زمانی که سرور کلاینت را با موفقیت احراز هویت نکرده باشد، به سرور ارسال نمی‌شود. به همین دلیل است که اشتراک‌های مهمان در امنیت سطح کاربر بدون اجازه دادن به سرور جهت نگاشت خودکار کاربران ناشناس به guest account کار نمی‌کنند. برای جزئیات در مورد انجام این کار، پارامتر map to guest را ببینید.

SECURITY = DOMAIN

این حالت تنها در صورتی به‌درستی کار خواهد کرد که از net(8) جهت افزودن این ماشین به یک دامنه Windows NT استفاده شده باشد. این حالت انتظار دارد پارامتر encrypt passwords بر روی yes تنظیم شده باشد. در این حالت، سامبا تلاش می‌کند تا با ارسال نام کاربری/گذرواژه به یک کنترل‌کننده اصلی یا پشتیبان دامنه (PDC یا BDC) در Windows NT، دقیقاً همانند یک Windows NT Server آن را اعتبارسنجی کند.

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

توجه داشته باشید که از دیدگاه کلاینت، security = domain همانند security = user است. این گزینه فقط بر نحوه برخورد سرور با احراز هویت اثر می‌گذارد و به هیچ وجه تأثیری بر آنچه کلاینت مشاهده می‌کند ندارد.

توجه داشته باشید که نام منبع درخواستی تا زمانی که سرور کلاینت را با موفقیت احراز هویت نکرده باشد، به سرور ارسال نمی‌شود. به همین دلیل است که اشتراک‌های مهمان در امنیت سطح کاربر بدون اجازه دادن به سرور جهت نگاشت خودکار کاربران ناشناس به guest account کار نمی‌کنند. برای جزئیات در این خصوص، پارامتر map to guest را ببینید.

همچنین پارامتر password server و پارامتر encrypt passwords را ببینید.

SECURITY = ADS

در این حالت، سامبا به عنوان یک عضو دامنه در یک قلمرو (realm) ADS عمل خواهد کرد. برای فعالیت در این حالت، ماشینی که سامبا را اجرا می‌کند باید کربروس (Kerberos) را نصب و پیکربندی کرده باشد و سامبا با استفاده از ابزار net به قلمرو ADS پیوسته باشد.

توجه داشته باشید که این حالت موجب نمی‌شود سامبا به عنوان یک کنترل‌کننده دامنه اکتیو دایرکتوری (Active Directory Domain Controller) عمل کند.

توجه داشته باشید که این حالت مقادیر require strong key = yes و client schannel = yes را برای دامنه اصلی اجباری می‌کند.

برای جزئیات بیشتر، فصل مربوط به عضویت در دامنه (Domain Membership) را در HOWTO مطالعه کنید.

Default: security = AUTO

Example: security = DOMAIN

security mask (S)

این پارامتر در Samba 4.0.0 حذف شده است.

بدون پیش‌فرض

server addresses (S)

این یک پارامتر به ازای هر اشتراک (per-share) است تا دیده‌شدن و دسترسی‌پذیری اشتراک را به نشانی‌های IP خاص سرور محدود کند. سرورهای دارای چند کارت شبکه (Multi-homed) می‌توانند مجموعه‌ای متفاوت از اشتراک‌ها را به ازای هر رابط شبکه ارائه دهند.

یک فهرست خالی به معنای ارائه اشتراک روی تمامی رابط‌ها است.

Default: server addresses =

max protocol

این پارامتر مترادفی برای server max protocol است.

protocol

این پارامتر مترادفی برای server max protocol است.

server max protocol (G)

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

مقادیر ممکن عبارتند از:

•LANMAN1: نخستین نسخه مدرن پروتکل. پشتیبانی از نام‌های طولانی فایل.
•LANMAN2: به‌روزرسانی‌هایی برای پروتکل Lanman1.
•NT1: نسخه جاری و به‌روز پروتکل. مورد استفاده توسط Windows NT. شناخته‌شده با عنوان CIFS.
•SMB2: پیاده‌سازی مجدد پروتکل SMB. مورد استفاده در Windows Vista و نسخه‌های جدیدتر ویندوز. پروتکل SMB2 دارای زیرپروتکل‌هایی است.
•SMB2_02: ابتدایی‌ترین نسخه SMB2.
•SMB2_10: نسخه SMB2 مربوط به Windows 7.
به‌طور پیش‌فرض، SMB2 گونه SMB2_10 را برمی‌گزیند.
•SMB3: مشابه SMB2. مورد استفاده در Windows 8. پروتکل SMB3 دارای زیرپروتکل‌هایی است.
•SMB3_00: نسخه SMB3 مربوط به Windows 8.
•SMB3_02: نسخه SMB3 مربوط به Windows 8.1.
•SMB3_11: نسخه SMB3 مربوط به Windows 10.
به‌طور پیش‌فرض، SMB3 گونه SMB3_11 را برمی‌گزیند.
در حالت عادی این گزینه نباید تنظیم شود، چرا که مرحله مذاکره خودکار در پروتکل SMB وظیفه انتخاب پروتکل مناسب را بر عهده دارد.

Default: server max protocol = SMB3

Example: server max protocol = LANMAN1

min protocol

این پارامتر مترادفی برای server min protocol است.

server min protocol (G)

این تنظیم حداقل نسخه پروتکلی را کنترل می‌کند که سرور به کلاینت اجازه استفاده از آن را می‌دهد.

در حالت عادی این گزینه نباید تنظیم شود، چرا که مرحله مذاکره خودکار در پروتکل SMB وظیفه انتخاب پروتکل مناسب را بر عهده دارد، مگر اینکه کلاینت‌های قدیمی داشته باشید که تنها قادر به کار با SMB1 هستند.

برای مشاهده فهرست کامل پروتکل‌های موجود، به دستور مرتبط: server max protocol مراجعه کنید.

Default: server min protocol = SMB2_02

Example: server min protocol = NT1

server multi channel support (G)

این پارامتر بولی کنترل می‌کند که آیا smbd(8) از چندکاناله بودن (multi-channel) در SMB3 پشتیبانی می‌کند یا خیر.

این پارامتر در نسخه 4.4 اضافه شد.

توجه داشته باشید که این قابلیت تا نسخه 4.14 همچنان آزمایشی تلقی می‌شد.

به دلیل وابستگی‌ها به APIهای کرنل لینوکس یا FreeBSD، در حال حاضر استفاده از این قابلیت تنها روی Linux و FreeBSD امکان‌پذیر است. برای مقاصد آزمایشی، می‌توان با مشخص کردن اضافیِ force:server multi channel support=yes این محدودیت را نادیده گرفت.

این گزینه از نسخه 4.15 به بعد به‌طور پیش‌فرض فعال است (روی Linux و FreeBSD).

Default: server multi channel support = yes

server reject aes schannel (G)

این گزینه در حال حاضر آزمایشی است!

این گزینه کنترل می‌کند که آیا سرور netlogon (در حال حاضر تنها در حالت 'active directory domain controller')، کلاینت‌هایی را که از ServerAuthenticateKerberos پشتیبانی نمی‌کنند رد خواهد کرد یا خیر.

پشتیبانی از ServerAuthenticateKerberos از نسخه Server 2025 به ویندوز اضافه شد؛ این قابلیت در Samba از نسخه 4.22 با گزینه‌های 'server support krb5 netlogon = yes' و 'client use krb5 netlogon = yes' که به‌طور پیش‌فرض غیرفعال هستند، در دسترس است.

توجه داشته باشید که این گزینه واقعاً به مشکلات امنیتی پیرامون CVE_2022_38023 مربوط نمی‌شود، اما همچنان از منطق و گزینه‌های مرتبط با سطح اشکال‌زدایی (debug level) استفاده می‌کند.

سامبا در صورتی که یک کلاینت قدیمی بدون گزینه صریح 'server reject aes schannel:COMPUTERACCOUNT = no' برای آن کلاینت رد شود، خطایی را در فایل‌های لاگ در سطح لاگ 0 ثبت خواهد کرد. اگر نرم‌افزار کلاینت به آن نیاز داشته باشد، این پیام خط صریح 'server reject aes schannel:COMPUTERACCOUNT = no' را که باید اضافه شود مشخص می‌کند. (سطح لاگ را می‌توان با 'CVE_2022_38023:error_debug_level = 1' تنظیم کرد تا فقط در سطح لاگ بالاتری اخطار دهد).

سامبا در صورتی که کلاینتی بدون گزینه صریح 'server reject aes schannel:COMPUTERACCOUNT = no' برای آن کلاینت مجاز دانسته شود، پیامی را در سطح لاگ 5 در فایل‌های لاگ ثبت خواهد کرد. اگر نرم‌افزار کلاینت به آن نیاز داشته باشد، این پیام خط صریح 'server reject aes schannel:COMPUTERACCOUNT = no' را که باید اضافه شود مشخص می‌کند. (سطح لاگ را می‌توان با 'NETLOGON_AES:usage_debug_level = 0' تنظیم کرد تا فقط در سطح لاگ پایین‌تر یا بالاتری گزارش دهد). از این قابلیت می‌توان برای آماده‌سازی پیکربندی پیش از تغییر به 'server reject aes schannel = yes' استفاده کرد.

مدیران سیستم می‌توانند برای داشتن کنترل بیشتر از گزینه‌های 'server reject aes schannel:COMPUTERACCOUNT = no/yes' استفاده کنند.

هنگامی که روی 'yes' تنظیم شود، این گزینه بر گزینه‌های 'server reject md5 schannel:COMPUTERACCOUNT' و 'reject md5 clients' تقدم یافته و متضمن 'server reject md5 schannel:COMPUTERACCOUNT = no' خواهد بود.

این گزینه با گزینه 'server support krb5 netlogon' تعامل دارد.

در حال حاضر 'server reject aes schannel' آزمایشی (EXPERIMENTAL) است و نباید به‌طور صریح پیکربندی شود.

Default: server reject aes schannel = no

Example: server reject aes schannel = yes

server reject aes schannel:COMPUTERACCOUNT (G)

اگر زمان آن فرا برسد و اکثر اعضای دامنه یا دامنه‌های مورد اعتماد از ServerAuthenticateKerberos پشتیبانی کنند، مدیران سیستم ممکن است بخواهند از “server reject aes schannel = yes” استفاده کنند. مشخص کردن یک استثنای صریح به ازای هر حساب رایانه با تنظیم 'server reject aes schannel:COMPUTERACCOUNT = no' امکان‌پذیر است. توجه داشته باشید که COMPUTERACCOUNT باید مقدار sAMAccountName حساب رایانه باشد (شامل علامت '$' در انتهای آن).

توجه داشته باشید که این گزینه واقعاً به مشکلات امنیتی پیرامون CVE_2022_38023 مربوط نمی‌شود، اما همچنان از منطق و گزینه‌های مرتبط با سطح اشکال‌زدایی استفاده می‌کند.

اگر این گزینه روی "no" تنظیم شده باشد اما رایانه مربوطه به آن نیازی نداشته باشد، سامبا شکایتی را در سطح لاگ 0 درباره مشکل امنیتی در فایل‌های لاگ ثبت خواهد کرد. (سطح لاگ را می‌توان با 'CVE_2022_38023:warn_about_unused_debug_level = 1' تنظیم کرد تا فقط در سطح لاگ بالاتری اخطار دهد).

سامبا در صورتی که همچنان به این تنظیم برای حساب رایانه مشخص‌شده نیاز باشد، هشداری را در سطح لاگ 5 در فایل‌های لاگ ثبت خواهد کرد.

این گزینه بر گزینه server reject aes schannel تقدم دارد.

هنگامی که روی 'yes' تنظیم شود، این گزینه بر گزینه‌های 'server reject md5 schannel:COMPUTERACCOUNT' و 'reject md5 clients' تقدم یافته و متضمن 'server reject md5 schannel:COMPUTERACCOUNT = no' خواهد بود.

server reject aes schannel:LEGACYCOMPUTER1$ = no
server reject aes schannel:NASBOX$ = no
server reject aes schannel:LEGACYCOMPUTER2$ = no
server reject aes schannel:HIGHPRIVACYSRV$ = yes

بدون پیش‌فرض

server role (G)

این گزینه حالت کاری پایه‌ای یک کارساز Samba را تعیین می‌کند و یکی از مهم‌ترین تنظیمات در فایل smb.conf است.

مقدار پیش‌فرض server role = auto است که باعث می‌شود Samba بر اساس تنظیمات security یا در صورت مشخص نشدن، به عنوان یک کارساز فایل ساده که به هیچ دامنه‌ای متصل نیست عمل کند.

گزینه‌های دیگر عبارتند از server role = standalone یا server role = member server که از پیوستن Samba به یک دامنه Windows پشتیبانی می‌کنند، به همراه server role = domain controller که Samba را به عنوان یک کنترل‌کننده دامنه Windows اجرا می‌کند.

اگر می‌خواهید عمدتاً اشتراک‌های بدون گذرواژه (اشتراک‌های مهمان یا guest shares) را راه‌اندازی کنید، باید از server role = standalone و map to guest استفاده نمایید. این مورد معمولاً برای یک کارساز چاپگر به اشتراک گذاشته شده استفاده می‌شود.

SERVER ROLE = AUTO

این نقش کارساز پیش‌فرض در Samba است و باعث می‌شود Samba پارامتر security را (در صورت تنظیم شدن) برای تعیین نقش کارساز بررسی کند، که رفتاری سازگار با نسخه‌های پیشین Samba فراهم می‌کند.

SERVER ROLE = STANDALONE

اگر security نیز مشخص نشده باشد، این تنظیم امنیتی پیش‌فرض در Samba است. در حالت مستقل (standalone)، کلاینت ابتدا باید با یک نام کاربری و گذرواژه معتبر (که می‌تواند با استفاده از پارامتر username map نگاشت شود) ذخیره شده روی این ماشین وارد (log-on) شود. گذرواژه‌های رمزگذاری‌شده (به پارامتر encrypt passwords مراجعه کنید) به صورت پیش‌فرض در این حالت امنیتی استفاده می‌شوند. پارامترهایی مانند force user و guest only در صورت تنظیم شدن اعمال می‌شوند و ممکن است کاربر UNIX مورد استفاده در این اتصال را تغییر دهند، اما تنها پس از آنکه کاربر با موفقیت احراز هویت شد.

SERVER ROLE = MEMBER SERVER

این حالت تنها در صورتی به درستی کار خواهد کرد که از net(8) برای افزودن این ماشین به یک دامنه Windows استفاده شده باشد. این حالت انتظار دارد پارامتر encrypt passwords روی yes تنظیم شده باشد. در این حالت Samba تلاش می‌کند نام کاربری/گذرواژه را با ارسال آن به یک کنترل‌کننده دامنه Windows یا Samba اعتبارسنجی کند، دقیقاً به همان روشی که یک Windows Server انجام می‌دهد.

توجه داشته باشید که علاوه بر حساب کاربری در کنترل‌کننده دامنه، یک کاربر معتبر UNIX نیز باید وجود داشته باشد تا به Samba اجازه دهد یک حساب معتبر UNIX برای نگاشت دسترسی به فایل‌ها داشته باشد. Winbind می‌تواند این را فراهم کند.

SERVER ROLE = CLASSIC PRIMARY DOMAIN CONTROLLER

این حالت کاری یک کنترل‌کننده دامنه اصلی (PDC) کلاسیک Samba را اجرا می‌کند و خدمات ورود به دامنه را برای کلاینت‌های Windows و Samba در یک دامنه شبیه به NT4 فراهم می‌سازد. کلاینت‌ها برای ایجاد یک مسیر امن و قابل اعتماد در سراسر شبکه باید به دامنه ملحق شوند. به ازای هر محدوده NetBIOS (معمولاً یک شبکه پخشی یا کلاینت‌هایی که توسط یک کارساز WINS سرویس‌دهی می‌شوند) باید تنها یک PDC وجود داشته باشد.

SERVER ROLE = CLASSIC BACKUP DOMAIN CONTROLLER

این حالت کاری یک کنترل‌کننده دامنه پشتیبان (BDC) کلاسیک Samba را اجرا می‌کند و خدمات ورود به دامنه را برای کلاینت‌های Windows و Samba در یک دامنه شبیه به NT4 فراهم می‌سازد. به عنوان یک BDC، این امکان را فراهم می‌کند که چندین کارساز Samba خدمات ورود زائد (redundant) را به یک محدوده NetBIOS واحد ارائه دهند.

SERVER ROLE = ACTIVE DIRECTORY DOMAIN CONTROLLER

این حالت کاری Samba را به عنوان یک کنترل‌کننده دامنه Active Directory اجرا می‌کند و خدمات ورود به دامنه را به کلاینت‌های Windows و Samba دامنه ارائه می‌دهد. این نقش به پیکربندی ویژه‌ای نیاز دارد، به Samba4 HOWTO مراجعه کنید.

SERVER ROLE = IPA PRIMARY DOMAIN CONTROLLER

این حالت کاری Samba را در یک حالت ترکیبی (هیبرید) برای کنترل‌کننده دامنه IPA اجرا می‌کند و اعتماد بیشه‌ای (forest trust) را به Active Directory فراهم می‌سازد. این نقش نیازمند پیکربندی ویژه‌ای است که توسط نصاب‌های IPA انجام می‌شود و نباید به صورت دستی توسط هیچ مدیر سیستمی استفاده شود.

Default: server role = AUTO

Example: server role = ACTIVE DIRECTORY DOMAIN CONTROLLER

server schannel (G)

این گزینه منسوخ شده است و در آینده حذف خواهد شد، زیرا اگر روی "yes" تنظیم نشود یک مشکل امنیتی خواهد بود (که در آینده رفتار تغییرناپذیر کارساز خواهد بود).

از استفاده از این گزینه خودداری کنید! در عوض به طور صریح از 'server require schannel:COMPUTERACCOUNT = no' استفاده کنید!

اگر کلاینت قدیمی رد شود یا بدون گزینه صریح 'server require schannel:COMPUTERACCOUNT = no' برای آن کلاینت مجاز دانسته شود، Samba خطایی را در فایل‌های لاگ در سطح لاگ ۰ ثبت خواهد کرد. پیام لاگ، خط صریح 'server require schannel:COMPUTERACCOUNT = no' را که در صورت نیاز نرم‌افزار کلاینت قدیمی باید اضافه شود نشان می‌دهد. (سطح لاگ را می‌توان با 'CVE_2020_1472:error_debug_level = 1' تنظیم کرد تا فقط در سطح لاگ بالاتری هشدار داده شود).

این به مدیران سیستم اجازه می‌دهد از "auto" تنها برای یک دوره موقت مهلت (grace period) استفاده کنند تا گزینه‌های صریح 'server require schannel:COMPUTERACCOUNT = no' را جمع‌آوری نمایند.

ببینید: CVE-2020-1472(ZeroLogon)، https://bugzilla.samba.org/show_bug.cgi?id=14497.

این گزینه توسط گزینه server require schannel:COMPUTERACCOUNT بازنویسی (نادیده گرفته) می‌شود.

این گزینه توسط مقدار مؤثر 'yes' حاصل از گزینه‌های 'server schannel require seal:COMPUTERACCOUNT' و/یا 'server schannel require seal' بازنویسی می‌شود.

Default: server schannel = yes

server require schannel:COMPUTERACCOUNT (G)

اگر هنوز اعضای دامنه قدیمی دارید که پیش از این به "server schannel = auto" نیاز داشتند، می‌توان با استفاده از گزینه 'server require schannel:COMPUTERACCOUNT = no' استثنای صریحی برای هر حساب رایانه مشخص کرد. توجه داشته باشید که COMPUTERACCOUNT باید مقدار sAMAccountName مربوط به حساب رایانه (شامل علامت '$' در انتهای آن) باشد.

اگر گزینه روی "no" تنظیم نشده باشد اما رایانه مربوطه واقعاً از ویژگی کانال امن netlogon (همان schannel) استفاده کند، Samba در فایل‌های لاگ در سطح لاگ ۰ درباره این مشکل امنیتی هشدار خواهد داد. (سطح لاگ را می‌توان با 'CVE_2020_1472:warn_about_unused_debug_level = 1' تنظیم کرد تا فقط در سطح لاگ بالاتری هشدار داده شود).

اگر تنظیمی همچنان برای حساب رایانه مشخص‌شده نیاز باشد، Samba در فایل‌های لاگ در سطح لاگ ۵ هشدار خواهد داد.

ببینید: CVE-2020-1472(ZeroLogon)، https://bugzilla.samba.org/show_bug.cgi?id=14497.

این گزینه، گزینه server schannel را بازنویسی می‌کند.

این گزینه توسط مقدار مؤثر 'yes' حاصل از گزینه‌های 'server schannel require seal:COMPUTERACCOUNT' و/یا 'server schannel require seal' نادیده گرفته می‌شود.

این بدان معناست که 'server require schannel:COMPUTERACCOUNT = no' تنها در ترکیب با 'server schannel require seal:COMPUTERACCOUNT = no' مفید است.

server require schannel:LEGACYCOMPUTER1$ = no
server require schannel seal:LEGACYCOMPUTER1$ = no
server require schannel:NASBOX$ = no
server require schannel seal:NASBOX$ = no
server require schannel:LEGACYCOMPUTER2$ = no
server require schannel seal:LEGACYCOMPUTER2$ = no

بدون پیش‌فرض

server schannel require seal (G)

این گزینه منسوخ شده است و در آینده حذف خواهد شد، زیرا اگر روی "yes" تنظیم نشود یک مشکل امنیتی خواهد بود (که در آینده رفتار تغییرناپذیر کارساز خواهد بود).

این گزینه کنترل می‌کند که آیا کارساز netlogon، استفاده از کانال امن netlogon را بدون حریم‌خصوصی/رمزنگاری (privacy/encryption) رد می‌کند یا خیر.

این گزینه بر اساس کلید رجیستری موجود در Windows الگوبرداری شده است.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\RequireSeal=2

از استفاده از این گزینه خودداری کنید! در عوض از گزینه اختصاصی به ازای هر حساب رایانه 'server schannel require seal:COMPUTERACCOUNT' استفاده کنید! این گزینه با وصله‌های مربوط به CVE-2022-38023 در دسترس است؛ ببینید: https://bugzilla.samba.org/show_bug.cgi?id=15240.

اگر یک کلاینت قدیمی رد شود یا بدون یک گزینه صریح 'server schannel require seal:COMPUTERACCOUNT = no' برای کلاینت مجاز دانسته شود، Samba خطایی را در فایل‌های لاگ در سطح لاگ ۰ ثبت خواهد کرد. پیام لاگ، خط صریح 'server schannel require seal:COMPUTERACCOUNT = no' را که در صورت نیاز نرم‌افزار کلاینت قدیمی باید اضافه شود نشان خواهد داد. (سطح لاگ را می‌توان با 'CVE_2022_38023:error_debug_level = 1' تنظیم کرد تا فقط در سطح لاگ بالاتری هشدار داده شود).

این به مدیران سیستم اجازه می‌دهد از "no" فقط برای یک دوره موقت مهلت (grace period) استفاده کنند تا گزینه‌های صریح 'server schannel require seal:COMPUTERACCOUNT = no' را جمع‌آوری نمایند.

هنگامی که روی 'yes' تنظیم شود، این گزینه بر گزینه‌های 'server require schannel:COMPUTERACCOUNT' و 'server schannel' تقدم یافته و به معنی 'server require schannel:COMPUTERACCOUNT = yes' خواهد بود.

این گزینه توسط گزینه server schannel require seal:COMPUTERACCOUNT بازنویسی (بی‌اثر) می‌شود.

Default: server schannel require seal = yes

server schannel require seal:COMPUTERACCOUNT (G)

اگر هنوز اعضای دامنه قدیمی دارید که پیش از این به "server schannel require seal = no" نیاز داشتند، می‌توان با استفاده از 'server schannel require seal:COMPUTERACCOUNT = no' به عنوان گزینه، استثنای صریحی به ازای هر حساب رایانه مشخص کرد. توجه داشته باشید که COMPUTERACCOUNT باید مقدار sAMAccountName مربوط به حساب رایانه (شامل علامت '$' در انتها) باشد.

اگر این گزینه روی "no" تنظیم شده باشد اما رایانه مربوطه به آن نیاز نداشته باشد، Samba هشداری را در فایل‌های لاگ در سطح لاگ ۰ درباره این مشکل امنیتی ثبت خواهد کرد. (سطح لاگ را می‌توان با 'CVE_2022_38023:warn_about_unused_debug_level = 1' تنظیم کرد تا تنها در سطوح لاگ بالاتر هشدار داده شود).

اگر همچنان تنظیمی برای حساب رایانه مشخص‌شده مورد نیاز باشد، Samba در فایل‌های لاگ در سطح لاگ ۵ هشدار خواهد داد.

ببینید: CVE-2022-38023، https://bugzilla.samba.org/show_bug.cgi?id=15240.

این گزینه بر گزینه 'server schannel require seal' تقدم دارد.

هنگامی که روی 'yes' تنظیم شود، این گزینه بر گزینه‌های 'server require schannel:COMPUTERACCOUNT' و 'server schannel' تقدم داشته و متضمن 'server require schannel:COMPUTERACCOUNT = yes' است.

server require schannel seal:LEGACYCOMPUTER1$ = no
server require schannel seal:NASBOX$ = no
server require schannel seal:LEGACYCOMPUTER2$ = no

بدون پیش‌فرض

server services (G)

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

یک مدخل در فایل smb.conf می‌تواند مقدار قبلی را به طور کامل بازنویسی کند یا با افزودن پیشوند + یا - به مدخل‌ها، مواردی را از آن حذف کرده یا به آن اضافه کند.

Default: server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, ft_scanner, winbindd, ntp_signd, kcc, dnsupdate, dns

Example: server services = -s3fs, +smb

server signing (G)

این گزینه مشخص می‌کند که آیا کلاینت مجاز یا ملزم به استفاده از امضای SMB1 و SMB2 است یا خیر. مقادیر ممکن عبارتند از default، auto، mandatory و disabled.

به طور پیش‌فرض و زمانی که smb signing روی default تنظیم شده است، امضای smb هنگامی که server role برابر با active directory domain controller باشد الزامی است و در غیر این صورت غیرفعال (disabled) خواهد بود.

هنگامی که روی auto تنظیم شود، امضای SMB1 پیشنهاد می‌شود اما اجباری نیست. هنگامی که روی mandatory تنظیم شود، امضای SMB1 الزامی است و در صورت تنظیم روی disabled، امضای SMB حتی پیشنهاد هم نخواهد شد.

برای پروتکل SMB2 بر اساس طراحی، امضا نمی‌تواند غیرفعال شود. در حالتی که بر سر SMB2 مذاکره (negotiate) شود، اگر این پارامتر روی disabled تنظیم شده باشد، با آن مانند auto رفتار خواهد شد. تنظیم آن روی mandatory همچنان کلاینت‌های SMB2 را ملزم به استفاده از امضا خواهد کرد.

Default: server signing = default

server smb encrypt (S)

این پارامتر کنترل می‌کند که آیا یک کلاینت دوردست مجاز یا ملزم به استفاده از رمزنگاری SMB است یا خیر. این پارامتر بسته به اینکه اتصال از SMB1 یا SMB2 و جدیدتر استفاده می‌کند، اثرات متفاوتی دارد:
•اگر اتصال از SMB1 استفاده کند، این گزینه استفاده از یک افزونه اختصاصی Samba به پروتکل SMB که در Samba 3.2 معرفی شده و از افزونه‌های Unix بهره می‌برد را کنترل می‌کند.
•اگر اتصال از SMB2 یا جدیدتر استفاده کند، این گزینه استفاده از رمزنگاری در سطح SMB را که در SMB نسخه 3.0 و بالاتر پشتیبانی شده و در Windows 8 و جدیدتر در دسترس است، کنترل می‌نماید.
این پارامتر می‌تواند به صورت سراسری و بر مبنای هر اشتراک تنظیم شود. مقادیر مجاز عبارتند از off، if_required، desired و required. یک مقدار ویژه default است که مقدار پیش‌فرض ضمنی if_required می‌باشد.

اثرات در SMB1

رمزنگاری اختصاصی Samba برای اتصالات SMB1 یک افزونه برای پروتکل SMB است که به عنوان بخشی از افزونه‌های UNIX مذاکره می‌شود. رمزنگاری SMB از قابلیت GSSAPI (یا SSPI در Windows) برای رمزنگاری و امضای هر درخواست/پاسخ در یک جریان پروتکل SMB استفاده می‌کند. هنگام فعال بودن، روشی امن برای ارتباطات SMB/CIFS مشابه یک نشست محافظت‌شده با ssh فراهم می‌کند، اما از احراز هویت SMB/CIFS برای مذاکره بر سر کلیدهای رمزنگاری و امضا استفاده می‌نماید. در حال حاضر این ویژگی تنها توسط smbclient در Samba 3.2 و جدیدتر پشتیبانی می‌شود، و امید است به زودی توسط کلاینت‌های Linux CIFSFS و MacOS/X نیز پشتیبانی گردد. کلاینت‌های Windows از این ویژگی پشتیبانی نمی‌کنند.

این گزینه ممکن است بر مبنای هر اشتراک تنظیم شود، اما کلاینت‌ها ممکن است ترجیح دهند به جای ترافیک مربوط به یک اشتراک خاص، کل نشست را رمزنگاری کنند. اگر این مقدار روی mandatory تنظیم شود، پس از برقراری اتصال به اشتراک، تمامی ترافیک به سمت آن اشتراک باید رمزنگاری شود. سرور برای تمامی درخواست‌های رمزنگاری‌نشده روی چنین اشتراکی، خطای "access denied" را برمی‌گرداند. انتخاب ترافیک رمزنگاری‌شده توان عملیاتی را کاهش می‌دهد، زیرا باید از بسته‌های با اندازه کوچکتری استفاده شود (خواندن/نوشتن‌های بزرگ به سبک UNIX مجاز نیستند) و علاوه بر آن سربار رمزنگاری و امضای تمامی داده‌ها نیز وجود دارد.

در صورت انتخاب رمزنگاری SMB، امضای SMB به سبک Windows (گزینه server signing را ببینید) دیگر ضروری نیست، زیرا فلگ‌های GSSAPI هر دو عملیات امضا و مهر و موم داده‌ها را انتخاب می‌کنند.

هنگامی که روی auto یا default تنظیم شود، رمزنگاری SMB پیشنهاد می‌شود اما اجبار نمی‌گردد. هنگامی که روی mandatory تنظیم شود، رمزنگاری SMB الزامی است و در صورت تنظیم روی disabled، امکان مذاکره برای رمزنگاری SMB وجود ندارد.

اثرات در SMB3.0 و جدیدتر

رمزنگاری بومی انتقال SMB در SMB نسخه 3.0 یا جدیدتر در دسترس است. این ویژگی تنها زمانی توسط Samba ارائه می‌شود که server max protocol روی SMB3 یا جدیدتر تنظیم شده باشد. کلاینت‌هایی که از این نوع رمزنگاری پشتیبانی می‌کنند شامل Windows 8 و جدیدتر، Windows server 2012 و جدیدتر، و smbclient در Samba 4.1 و جدیدتر هستند.

پیاده‌سازی پروتکل گزینه‌های گوناگونی را ارائه می‌دهد:

•قابلیت انجام رمزنگاری SMB می‌تواند در حین مذاکره پروتکل مورد مذاکره قرار گیرد.
•رمزنگاری داده‌ها می‌تواند به صورت سراسری فعال شود. در این حالت، یک اتصال با قابلیت رمزنگاری، تمام ترافیک خود در تمامی نشست‌هایش را به صورت رمزنگاری‌شده خواهد داشت. به‌ویژه تمام اتصالات اشتراک رمزنگاری خواهند شد.
•در صورت عدم فعال‌سازی سراسری، رمزنگاری داده‌ها می‌تواند به ازای هر اشتراک نیز فعال شود. برای یک اتصال با قابلیت رمزنگاری، تمامی اتصالات به یک اشتراک دارای رمزنگاری فعال، رمزنگاری خواهند شد.
•رمزنگاری می‌تواند اجباری شود. این بدان معناست که در صورت فعال بودن سراسری رمزنگاری داده‌ها، برپاسازی نشست در اتصالات فاقد قابلیت رمزنگاری رد خواهد شد. و اتصالات درختی (tree connections) برای اتصالات فاقد قابلیت رمزنگاری به اشتراک‌هایی با رمزنگاری فعال، رد خواهند شد.
این ویژگی‌ها می‌توانند با تنظیمات server smb encrypt به صورت زیر کنترل شوند:
•رها کردن آن روی حالت پیش‌فرض، تنظیم صریح آن به default، یا تنظیم آن به if_required به صورت سراسری، مذاکره برای رمزنگاری را فعال می‌کند اما رمزنگاری داده‌ها را به صورت سراسری یا به ازای هر اشتراک فعال نخواهد کرد.
•تنظیم آن به desired به صورت سراسری، مذاکره را فعال کرده و رمزنگاری داده‌ها را در نشست‌ها و اتصالات اشتراک برای کلاینت‌هایی که از آن پشتیبانی می‌کنند روشن خواهد کرد.
•تنظیم آن به required به صورت سراسری، مذاکره را فعال کرده و رمزنگاری داده‌ها را در نشست‌ها و اتصالات اشتراک روشن می‌کند. کلاینت‌هایی که از رمزنگاری پشتیبانی نمی‌کنند اجازه دسترسی به سرور را نخواهند داشت.
•تنظیم آن به off به صورت سراسری، ویژگی رمزنگاری را برای تمامی اتصالات کاملاً غیرفعال خواهد کرد. تنظیم server smb encrypt = required برای اشتراک‌های منفرد (در حالی که به صورت سراسری off است) دسترسی به این اشتراک‌ها را برای تمامی کلاینت‌ها رد خواهد کرد.
•تنظیم آن به desired روی یک اشتراک، در صورتی که مذاکره به صورت سراسری فعال شده باشد، رمزنگاری داده‌ها را برای این اشتراک و برای کلاینت‌هایی که از رمزنگاری پشتیبانی می‌کنند روشن خواهد کرد.
•تنظیم آن به required روی یک اشتراک، در صورتی که مذاکره به صورت سراسری فعال شده باشد، رمزنگاری داده‌ها را برای این اشتراک اجباری خواهد کرد؛ بدین معنا که کلاینت‌هایی که از رمزنگاری پشتیبانی نمی‌کنند اجازه دسترسی به اشتراک را نخواهند داشت.

توجه داشته باشید که این موضوع اجازه می‌دهد اعمال اجبار به ازای هر اشتراک در Samba متفاوت از Windows کنترل شود: در Windows، گزینه RejectUnencryptedAccess یک تنظیم سراسری است، و اگر تنظیم شود، تمام اشتراک‌هایی که رمزنگاری داده‌ها در آن‌ها روشن است به صورت خودکار رمزنگاری را اجباری می‌کنند. برای دستیابی به همین اثر در Samba، باید به صورت سراسری server smb encrypt را روی if_required تنظیم کرد و سپس تمام اشتراک‌هایی را که باید رمزنگاری شوند روی required قرار داد. علاوه بر این، در Samba این امکان وجود دارد که برخی اشتراک‌ها دارای رمزنگاری required و برخی دیگر تنها دارای رمزنگاری desired باشند، امری که در Windows ممکن نیست.

•تنظیم آن به off یا if_required برای یک اشتراک هیچ تأثیری ندارد.

Default: server smb encrypt = default

server smb3 encryption algorithms (G)

این پارامتر در دسترس بودن و ترتیب الگوریتم‌های رمزنگاری موجود برای مذاکره در گویش SMB3_11 را مشخص می‌کند.

همچنین حذف الگوریتم‌های مجزا از فهرست پیش‌فرض، با قرار دادن پیشوند '-' در ابتدای آن‌ها امکان‌پذیر است. این امر می‌تواند از الزام به مشخص کردن یک فهرست ثابت (hardcoded) جلوگیری کند.

توجه: حذف AES-128-CCM از این فهرست منجر به در دسترس نبودن SMB3_00 و SMB3_02 خواهد شد، زیرا این الگوریتم، الگوریتم پیش‌فرض و تنها الگوریتم موجود برای این گویش‌ها است.

Default: server smb3 encryption algorithms = AES-128-GCM, AES-128-CCM, AES-256-GCM, AES-256-CCM

Example: server smb3 encryption algorithms = AES-256-GCM

Example: server smb3 encryption algorithms = -AES-128-GCM -AES-128-CCM

server smb encryption over quic (G)

این پارامتر کنترل می‌کند که آیا سرور SMB با وجود اینکه لایه انتقال از طریق QUIC رمزنگاری شده است، به رمزنگاری در سطح SMB نیاز دارد یا خیر.

پارامتر server smb encrypt استفاده از سازوکار رمزنگاری معرفی‌شده در SMB3.0 را کنترل می‌کند. اگر مقدار server smb encryption over quic روی no تنظیم شده باشد، و کلاینت از طریق یک اتصال QUIC معتبر (و در نتیجه TLS) متصل شود، سرور الزامات ناشی از پارامتر server smb encrypt را نادیده گرفته و تمامی بسته‌های سطح SMB درون اتصال QUIC را به عنوان بسته‌هایی که به شیوه‌ای قابل اعتماد رمزنگاری شده‌اند می‌پذیرد. این امر از رمزنگاری مضاعف و پرهزینه جلوگیری می‌کند.

اگر server smb encryption over quic روی مقدار پیش‌فرض خود یعنی yes باقی بماند، کلاینت از طریق TCP معمولی متصل شود، یا کلاینت اعلام نکند که می‌تواند به اتصال QUIC مورد استفاده اعتماد کند، الزامات server smb encrypt اعمال خواهند شد.

توجه داشته باشید که رمزنگاری لایه QUIC مبتنی بر گواهی ارائه‌شده در سطح TLS توسط سرور است. رمزنگاری لایه SMB مبتنی بر نشست‌های انفرادی کاربر و در نتیجه اساساً مبتنی بر اعتبارنامه‌های اولیه کاربر مانند گذرواژه کاربر یا اعتبارنامه‌های معادل استفاده‌شده برای ورود به یک نشست Windows است. این موضوع ممکن است بر ارزیابی امنیتی شما در رابطه با پارامتر server smb encryption over quic تأثیر بگذارد.

ویندوز دارای تنظیم مشابهی در سرور SMB با سوییچ DisableSmbEncryptionOnSecureConnection در کامندلت پاورشل Set-SmbServerConfiguration است.

Default: server smb encryption over quic = yes

server smb3 signing algorithms (G)

این پارامتر در دسترس بودن و ترتیب الگوریتم‌های امضا (signing algorithms) را که برای مذاکره در لهجهٔ SMB3_11 موجود هستند، مشخص می‌کند.

همچنین می‌توان الگوریتم‌های خاصی را با افزودن پیشوند '-' پیش از نام آن‌ها، از فهرست پیش‌فرض حذف کرد. این کار از لزوم تعیین یک فهرست ثابت و هاردکدشده (hardcoded) جلوگیری می‌کند.

نکته: توجه داشته باشید که حذف AES-128-CMAC از فهرست، منجر به عدم دسترسی به SMB3_00 و SMB3_02 خواهد شد، و حذف HMAC-SHA256 منجر به عدم دسترسی به SMB2_02 و SMB2_10 می‌شود؛ چرا که این‌ها الگوریتم‌های پیش‌فرض و تنها الگوریتم‌های موجود برای این لهجه‌ها هستند.

Default: server smb3 signing algorithms = AES-128-GMAC, AES-128-CMAC, HMAC-SHA256

Example: server smb3 signing algorithms = AES-128-CMAC, HMAC-SHA256

Example: server smb3 signing algorithms = -AES-128-CMAC

server smb transports (G)

مشخص می‌کند که سرور باید برای ترافیک SMB روی کدام لایه‌های انتقال (transports) و پورت‌ها گوش فرادهد (listen کند).

ترتیب موارد تنها برای ثبت‌های mDNS اهمیت دارد؛ نخستین پورت 'tcp' یا 'nbt' برای این منظور به کار می‌رود.

لایهٔ انتقال 'tcp' از پروتکل TCP خام با یک سرایند طول ۴ بایتی به ازای هر SMB PDU استفاده می‌کند. پورت پیش‌فرض برای 'tcp' برابر با 445 است. سایر پورت‌ها را می‌توان با درج پس از علامت ':' تعیین کرد، به عنوان مثال 'tcp:1445'.

لایهٔ انتقال 'nbt' از فریم‌بندی NetBIOS بر روی TCP به ازای هر SMB PDU استفاده می‌کند. پورت پیش‌فرض برای 'nbt' برابر با 139 است. سایر پورت‌ها را می‌توان با درج پس از علامت ':' تعیین کرد، به عنوان مثال 'nbt:1139'.

لایهٔ انتقال 'quic' از پروتکل QUIC بر روی UDP استفاده می‌کند. پورت پیش‌فرض برای 'quic' برابر با 443 است. سایر پورت‌ها را می‌توان با درج پس از علامت ':' تعیین کرد، به عنوان مثال 'quic:1443'. گزینه‌های زیر نیز مرتبط هستند: tls enabled, tls cafile, tls certfile و tls keyfile. اگر فایل‌هایی که توسط tls cafile, tls certfile و tls keyfile به آن‌ها اشاره شده است هیچ‌کدام وجود نداشته باشند، یک گواهی خودامضا (self-signed) برای TLS در هنگام راه‌اندازی به صورت خودکار ایجاد می‌شود.

نکته: انتقال 'quic' نیازمند ماژول هستهٔ quic.ko برای Linux از نشانی https://github.com/lxin/quic است (بر روی Linux 6.14 آزمایش شده است). ممکن است نسخه‌های آیندهٔ لینوکس به صورت بومی از آن پشتیبانی کنند.

پورت‌های عددی به عنوان 'tcp' مدیریت می‌شوند، به جز پورت '139' که به عنوان 'nbt' در نظر گرفته می‌شود.

توجه داشته باشید که در حال حاضر محدودیتی معادل ۱۰ لایهٔ انتقال منحصربه‌فرد وجود دارد و تمام موارد مازاد بر آن نادیده گرفته خواهند شد.

Default: server smb transports = tcp, nbt

Example: server smb transports = 445

Example: server smb transports = tcp, tcp:1445

Example: server smb transports = 8000, nbt:1139

Example: server smb transports = tcp, quic, nbt

Example: server smb transports = +quic

smb ports (G)

این گزینه مترادفی برای server smb transports است.

No default

server string (G)

این گزینه مشخص می‌کند که چه رشته‌ای در کادر توضیحات چاپگر در مدیر چاپ (print manager) و در کنار اتصال IPC در دستور net view نمایش داده شود. این مقدار می‌تواند هر رشته‌ای باشد که مایلید به کاربران خود نشان دهید.

این پارامتر همچنین متنی را که در فهرست‌های مرور (browse lists) در کنار نام رایانه ظاهر می‌شود، تنظیم می‌کند.

شناسهٔ %v با شماره نسخهٔ Samba جایگزین خواهد شد.

شناسهٔ %h با نام میزبان (hostname) جایگزین خواهد شد.

Default: server string = Samba %v

Example: server string = University of GNUs Samba Server

server support krb5 netlogon (G)

این گزینه در حال حاضر آزمایشی است!

این گزینه تعیین می‌کند که آیا سرور netlogon (در حال حاضر تنها در حالت 'active directory domain controller')، از ServerAuthenticateKerberos پشتیبانی خواهد کرد یا خیر.

پشتیبانی از ServerAuthenticateKerberos از نسخهٔ Server 2025 به Windows افزوده شده است و در Samba از نسخهٔ 4.22 با گزینه‌های 'server support krb5 netlogon = yes' و 'client use krb5 netlogon = yes' که به صورت پیش‌فرض غیرفعال هستند، در دسترس قرار دارد.

این گزینه با گزینه‌های 'server reject aes schannel:COMPUTERACCOUNT = yes' و 'server reject aes schannel = yes' در تعامل است.

Default: server support krb5 netlogon = no

Example: server support krb5 netlogon = yes

set primary group script (G)

به لطف زیرسیستم Posix در NT، یک کاربر Windows علاوه بر گروه‌های کمکی (auxiliary groups)، دارای یک گروه اصلی (primary group) نیز هست. این اسکریپت هنگامی که یک مدیر گروه اصلی را از طریق مدیر کاربران ویندوز (windows user manager) تنظیم می‌کند یا هنگام واکشی SAM با net rpc vampire، گروه اصلی را در پایگاه دادهٔ کاربران unix ثبت و تنظیم می‌کند. %u با کاربری که گروه اصلی او باید تعیین شود جایگزین خواهد شد. %g با گروهی که باید تنظیم گردد جایگزین خواهد شد.

Default: set primary group script =

Example: set primary group script = /usr/sbin/usermod -g '%g' '%u'

set quota command (G)

دستور set quota command تنها زمانی باید به کار رود که هیچ API مناسبی از جانب سیستم‌عامل برای استفاده توسط Samba در دسترس نباشد.

این گزینه تنها در صورتی فعال است که Samba همراه با پشتیبانی از quota کامپایل شده باشد.

این پارامتر باید مسیر اسکریپتی را مشخص کند که بتواند سهمیه‌بندی (quota) را برای آرگومان‌های تعیین‌شده اعمال نماید.

اسکریپت مشخص‌شده باید آرگومان‌های زیر را بپذیرد:

•1 - مسیر جایی که سهمیه باید برای آن تنظیم شود. این مسیر باید به صورت نسبی با دایرکتوری کاری جاری (که اسکریپت نیز می‌تواند آن را بررسی کند) تفسیر شود.
•2 - نوع سهمیه
•1 - سهمیه‌های کاربر (user quotas)
•2 - سهمیه‌های پیش‌فرض کاربر (uid = -1)
•3 - سهمیه‌های گروه (group quotas)
•4 - سهمیه‌های پیش‌فرض گروه (gid = -1)
•3 - شناسه یا id (شناسهٔ uid برای کاربر، gid برای گروه، مقدار -1 در صورت عدم کاربرد)
•4 - وضعیت سهمیه (0 = غیرفعال، 1 = فعال، 2 = فعال و اعمال اجباری)
•5 - حد نرم بلوک (block softlimit)
•6 - حد سخت بلوک (block hardlimit)
•7 - حد نرم inode (inode softlimit)
•8 - حد سخت inode (inode hardlimit)
•9(اختیاری) - اندازهٔ بلوک، مقدار پیش‌فرض 1024 است
این اسکریپت باید در صورت موفقیت حداقل یک خط داده در خروجی چاپ کند، و در صورت بروز خطا هیچ خروجی چاپ نکند.

Default: set quota command =

Example: set quota command = /usr/local/sbin/set_quota

share:fake_fscaps (S)

این پارامتر برای پشتیبانی از برخی برنامه‌های کاربردی خاص که از ویژگی‌های مختص سیستم فایل مانند sparse files (فایل‌های کم‌پشت) یا کپی بر مبنای ارجاع بلوک (block reflink copy) استفاده می‌کنند، مورد نیاز است.

با share:fake_fscaps = 64 فلگ قابلیت سیستم فایل SPARSE_FILES (0x40) تنظیم می‌شود.

با share:fake_fscaps = 134217728 فلگ قابلیت سیستم فایل SUPPORTS_BLOCK_REFCOUNTING (0x8000000) تنظیم می‌شود. در زمان نگارش این مستند، سیستم‌فایل‌هایی که از این ویژگی پشتیبانی می‌کنند عبارتند از BTRFS، XFS و ZFS.

فهرست کامل را می‌توان در MS-FSCC 2.5.1 FileFsAttributeInformation یافت. توجه داشته باشید که در پیکربندی تنها می‌توان از مقادیر ده‌دهی (decimal) استفاده کرد.

Default: share:fake_fscaps = 0

short preserve case (S)

این پارامتر بولی (boolean) کنترل می‌کند که آیا فایل‌های جدیدی که با نحو 8.3 مطابقت دارند (یعنی تماماً با حروف بزرگ و با طول مناسب هستند)، با حروف بزرگ ایجاد شوند یا اینکه مجبور شوند از default case پیروی کنند. از این گزینه می‌توان همراه با preserve case = yes استفاده کرد تا نام‌های طولانی فایل‌ها حالت بزرگی/کوچکی حروف خود را حفظ کنند، در حالی که نام‌های کوتاه با حروف کوچک ذخیره شوند.

بخش NAME MANGLING را ببینید.

Default: short preserve case = yes

show add printer wizard (G)

با معرفی پشتیبانی از چاپ مبتنی بر MS-RPC برای کلاینت‌های Windows NT/2000 در Samba 2.2، یک پوشه "“Printers...”" در فهرست اشتراک‌های میزبان‌های Samba ظاهر خواهد شد. به طور معمول این پوشه حاوی یک آیکون برای MS Add Printer Wizard (APW) است. با این حال، می‌توان این ویژگی را صرف‌نظر از سطح دسترسی کاربر متصل‌شده غیرفعال کرد.

در شرایط عادی، کلاینت Windows NT/2000 با فراخوانی OpenPrinterEx() و درخواست دسترسی‌های Administrator، یک هندل (handle) روی سرور چاپ باز می‌کند. اگر کاربر دسترسی مدیریتی روی سرور چاپ نداشته باشد (یعنی کاربر root نباشد یا امتیاز SePrintOperatorPrivilege به او اعطا نشده باشد)، فراخوانی OpenPrinterEx() با شکست مواجه می‌شود و کلاینت یک فراخوانی باز کردن دیگر با درخواست سطح دسترسی پایین‌تر انجام می‌دهد. این فراخوانی باید با موفقیت انجام شود، اما آیکون APW نمایش داده نخواهد شد.

غیرفعال کردن پارامتر show add printer wizard همواره باعث ناموفق شدن OpenPrinterEx() روی سرور خواهد شد. بنابراین آیکون APW هرگز نمایش داده نخواهد شد.


نکته
این امر مانع از داشتن دسترسی مدیریتی همان کاربر روی یک چاپگر مجزا نمی‌شود.
Default: show add printer wizard = yes

shutdown script (G)

این پارامتر مسیر کامل اسکریپتی است که توسط smbd(8) فراخوانی می‌شود و باید روند خاموش کردن سیستم (shutdown) را آغاز کند.

اگر کاربر متصل‌شده دارای امتیاز SeRemoteShutdownPrivilege باشد، این دستور با دسترسی root اجرا خواهد شد.

متغیرهای %z %t %r %f به صورت زیر جایگزین می‌شوند:

•%z با پیام خاموش‌سازی ارسال‌شده به سرور جایگزین خواهد شد.
•%t با تعداد ثانیه‌هایی که باید پیش از آغاز عملی فرایند خاموش‌سازی سپری شود جایگزین خواهد شد.
•%r با سوییچ -r جایگزین خواهد شد. این سوییچ برای NT به معنای راه‌اندازی مجدد (reboot) پس از خاموش شدن است.
•%f با سوییچ -f جایگزین خواهد شد. این سوییچ برای NT به معنای اجبار به خاموش شدن حتی در صورت عدم پاسخگویی برنامه‌ها است.
مثال اسکریپت shutdown:
#!/bin/bash
time=$2
let time="${time} / 60"
let time="${time} + 1"
/sbin/shutdown $3 $4 +$time $1 &

دستور shutdown خاتمه نمی‌یابد (خروجی بازنمی‌گرداند)، بنابراین باید آن را در پس‌زمینه (background) اجرا کنیم.

Default: shutdown script =

Example: shutdown script = /usr/local/samba/sbin/shutdown %m %t %r %f

unix extensions

این پارامتر مترادفی برای smb1 unix extensions است.

smb1 unix extensions (G)

این پارامتر بولی کنترل می‌کند که آیا Samba افزونه‌های یونیکس برای SMB1/CIFS را که توسط HP تعریف شده‌اند، پیاده‌سازی کند یا خیر. این افزونه‌ها Samba را قادر می‌سازند تا با پشتیبانی از قابلیت‌هایی مانند پیوندهای نمادین (symbolic links)، پیوندهای سخت (hard links) و غیره، به کلاینت‌های SMB1/CIFS یونیکس سرویس‌دهی بهتری داشته باشد. این افزونه‌ها نیازمند کلاینتی هستند که قابلیت مشابهی در آن فعال شده باشد، و در حال حاضر هیچ کاربردی برای کلاینت‌های Windows ندارند.

توجه داشته باشید که در صورت فعال بودن این پارامتر، پارامتر wide links به صورت خودکار غیرفعال خواهد شد.

اگر می‌خواهید این پیوند میان این دو پارامتر را تغییر دهید، پارامتر allow insecure wide links را ببینید.

Default: smb1 unix extensions = yes

smb2 disable lock sequence checking (G)

این پارامتر بولی کنترل می‌کند که آیا smbd(8) بررسی توالی قفل (lock sequence checking) را حتی برای اتصالات چندکاناله (multi-channel) و همچنین durable handles غیرفعال کند یا خیر.

مشخصات [MS-SMB2] (در بخش 3.3.5.14 Receiving an SMB2 LOCK Request) مستند کرده است که سرور در صورتی که Open.IsResilient یا Open.IsDurable یا Open.IsPersistent برابر TRUE باشد، یا اگر Connection.Dialect به خانواده گویش‌های SMB 3.x تعلق داشته و Connection.ServerCapabilities شامل SMB2_GLOBAL_CAP_MULTI_CHANNEL باشد، باید بررسی توالی قفل را انجام دهد.

اما Windows Server (حداقل تا نسخه v2004) این بررسی‌ها را تنها برای Open.IsResilient و Open.IsPersistent انجام می‌دهد. این بدان معناست که آن‌ها رفتاری را که در [MS-SMB2] تصریح شده است، پیاده‌سازی نمی‌کنند.

به طور پیش‌فرض Samba مطابق با این مشخصات عمل می‌کند و هنگام استفاده از multi-channel، بررسی توالی قفل را پیاده‌سازی می‌نماید.

هشدار: این گزینه را تنها در صورتی فعال کنید که کلاینت‌های موجود نتوانند بررسی توالی قفل را برای هندل‌های فاقد Open.IsResilient و Open.IsPersistent پردازش کنند و مشخص شود که رفتار Windows Server مورد نیاز است.

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

نکته: Samba هنوز Open.IsResilient و Open.IsPersistent را پیاده‌سازی نکرده است.

Default: smb2 disable lock sequence checking = no

Example: smb2 disable lock sequence checking = yes

smb2 disable oplock break retry (G)

این پارامتر بولی کنترل می‌کند که آیا smbd(8) هنگام استفاده از server multi channel support = yes تلاش‌های مجدد برای اعلان شکستن oplock در SMB2 را به جریان بیندازد یا خیر.

مشخصات [MS-SMB2] مستند کرده است که سرور باید تلاش‌های مجدد اعلان شکستن oplock در SMB2 را روی تمام کانال‌های موجود برای کلاینت مربوطه ارسال نماید.

اما نسخه‌های Windows Server (حداقل تا نسخه 2019) تلاش‌های مجدد اعلان شکستن oplock در SMB2 را در هنگام بروز خطای کانال ارسال نمی‌کنند. این بدان معناست که آن‌ها رفتار مشخص‌شده در [MS-SMB2] را پیاده‌سازی نمی‌کنند.

به طور پیش‌فرض Samba مطابق با این مشخصات عمل کرده و تلاش‌های مجدد اعلان شکستن oplock در SMB2 را ارسال می‌کند.

هشدار: این گزینه را تنها در صورتی فعال کنید که کلاینت‌های موجود نتوانند تلاش‌های مجدد احتمالی را پردازش کنند و ثابت شود که رفتار Windows Server ضروری است.

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

نکته: این مورد تنها روی oplockها اعمال می‌شود و شامل SMB2 leases نمی‌گردد.

Default: smb2 disable oplock break retry = no

Example: smb2 disable oplock break retry = yes

smb2 leases (G)

این گزینه بولی به smbd اعلام می‌کند که آیا مذاکره برای SMB2 leases را به صورت سراسری در درخواست‌های باز کردن فایل انجام دهد یا خیر. اجاره‌دهی (Leasing) قابلیتی منحصراً مربوط به SMB2 است که به کلاینت‌ها امکان می‌دهد فایل‌ها را به شکلی تهاجمی‌تر در سطح محلی کش کنند، فراتر از آنچه در کش مجاز توسط oplockهای SMB1 امکان‌پذیر است.

این قابلیت تنها با oplocks = yes و kernel oplocks = no در دسترس است.

Default: smb2 leases = yes

smb2 max credits (G)

این گزینه حداکثر تعداد عملیات هم‌زمان معوق SMB2 را که Samba به کلاینت اعلام می‌کند مجاز خواهد بود، کنترل می‌نماید. این پارامتر مشابه پارامتر max mux برای SMB1 است. شما هرگز نباید نیازی به تنظیم این پارامتر داشته باشید.

مقدار پیش‌فرض 8192 اعتبار (credits) است که دقیقاً مشابه یک سرور SMB2 در Windows 2008R2 می‌باشد.

Default: smb2 max credits = 8192

smb2 max read (G)

این گزینه مقدار پروتکلی را مشخص می‌کند که smbd(8) به کلاینت بازمی‌گرداند، و به کلاینت اطلاع می‌دهد که حداکثر اندازه‌ای که می‌تواند توسط یک فراخوانی خواندن (read) تکی در SMB2 بازگردانده شود چقدر است.

حداکثر مقدار ۸۳۸۸۶۰۸ بایت (8MiB) است که با مقدار موجود در Windows Server 2012 r2 یکسان است.

لطفاً توجه داشته باشید که مقدار پیش‌فرض 8MiB است، اما محدودیت آن بر اساس لهجه/گویش (dialect) پروتکل smb2 تعیین می‌شود (۶۴ کیبی‌بایت برای SMB == 2.0 و ۸ مبی‌بایت برای SMB >= 2.1 با LargeMTU). قابلیت Large MTU بر روی NBT (پورت tcp شماره ۱۳۹) پشتیبانی نمی‌شود.

Default: smb2 max read = 8388608

smb2 max trans (G)

این گزینه مقدار پروتکلی را مشخص می‌کند که smbd(8) به کلاینت بازمی‌گرداند، و به کلاینت اطلاع می‌دهد که حداکثر اندازه بافری که می‌تواند در پرس‌وجوی متاداده‌های فایل از طریق QUERY_INFO و فراخوانی‌های مرتبط SMB2 استفاده شود چقدر است.

حداکثر مقدار ۸۳۸۸۶۰۸ بایت (8MiB) است که با مقدار موجود در Windows Server 2012 r2 یکسان است.

لطفاً توجه داشته باشید که مقدار پیش‌فرض 8MiB است، اما محدودیت آن بر اساس لهجه/گویش (dialect) پروتکل smb2 تعیین می‌شود (۶۴ کیبی‌بایت برای SMB == 2.0 و ۱ مبی‌بایت برای SMB >= 2.1 با LargeMTU). قابلیت Large MTU بر روی NBT (پورت tcp شماره ۱۳۹) پشتیبانی نمی‌شود.

Default: smb2 max trans = 8388608

smb2 max write (G)

این گزینه مقدار پروتکلی را مشخص می‌کند که smbd(8) به کلاینت بازمی‌گرداند، و به کلاینت اطلاع می‌دهد که حداکثر اندازه‌ای که می‌تواند توسط یک فراخوانی نوشتن (write) تکی در SMB2 به سرور ارسال شود چقدر است.

حداکثر مقدار ۸۳۸۸۶۰۸ بایت (8MiB) است که با مقدار موجود در Windows Server 2012 r2 یکسان است.

لطفاً توجه داشته باشید که مقدار پیش‌فرض 8MiB است، اما محدودیت آن بر اساس لهجه/گویش (dialect) پروتکل smb2 تعیین می‌شود (۶۴ کیبی‌بایت برای SMB == 2.0 و ۸ مبی‌بایت برای SMB => 2.1 با LargeMTU). قابلیت Large MTU بر روی NBT (پورت tcp شماره ۱۳۹) پشتیبانی نمی‌شود.

Default: smb2 max write = 8388608

smb3 directory leases (G)

این یک نوع شمارشی است که مشخص می‌کند آیا اجاره‌های دایرکتوری (directory leases) در SMB3 برای smbd فعال هستند یا خیر. ویژگی Directory Leasing قابلیتی مختص SMB3 است که به کلاینت‌ها اجازه می‌دهد دایرکتوری‌ها را کش (ذخیره موقت) کنند.

مقادیر ممکن برای smb3 directory leases عبارتند از yes، no و auto، که auto مقدار پیش‌فرض است.

هنگامی که بر روی auto تنظیم شود، مقدار موثر به گزینه clustering بستگی دارد. اگر clustering فعال باشد، smb3 directory leases غیرفعال می‌شود و برعکس.

smb3 directory leases تنها در صورت فعال بودن smb2 leases = yes، oplocks = yes و kernel oplocks = no در دسترس است.

فعال کردن smb3 directory leases به‌طور ضمنی strict rename را نیز فعال می‌کند.

Default: smb3 directory leases = auto

smb3 share cap:CONTINUOUS AVAILABILITY (S)

پروتکل SMB3 فلگ SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY را معرفی کرد. این بدان معناست که کلاینت‌ها می‌توانند انتظارات متفاوتی از سرور (یا خوشه‌ای از سرورها) داشته باشند.

نکته: این گزینه فقط برای اشتراک‌های دیسک (disk shares) اعمال می‌شود.

در یک کلاستر ctdb اشتراک‌ها به‌طور مداوم در دسترس (continuously available) هستند، اما کلاینت‌های ویندوز این ویژگی را با پشتیبانی سراسری از دستگیره‌های پایدار (persistent handles) در هم می‌آمیزند.

در صورتی که SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY وجود داشته باشد، دستگیره‌های پایدار حتی بدون SMB2_CAP_PERSISTENT_HANDLES نیز درخواست می‌شوند.

و وجود SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY برای موثر واقع شدن SMB2_SHARE_CAP_CLUSTER الزامی است.

بنابراین بهتر است تا زمانی که از دستگیره‌های پایدار پشتیبانی نمی‌کنیم، این مورد را به‌طور پیش‌فرض اعلام نکنیم.

گزینه smb3 share cap:CONTINUOUS AVAILABILITY می‌تواند برای اجبار به اعلام SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY استفاده شود.

هشدار: فقط در صورتی از این گزینه استفاده کنید که کاملاً می‌دانید چه کاری انجام می‌دهید!

smb3 share cap:CONTINUOUS AVAILABILITY = yes

No default

smb3 share cap:SCALE OUT (S)

پروتکل SMB3 فلگ SMB2_SHARE_CAP_SCALEOUT را معرفی کرد. این بدان معناست که کلاینت‌ها می‌توانند انتظارات متفاوتی از خوشه‌ای شامل چندین سرور داشته باشند و رفتار تلاش مجدد/اتصال مجدد (retry/reconnect) را تغییر می‌دهد.

نکته: این گزینه فقط برای اشتراک‌های دیسک اعمال می‌شود.

در یک کلاستر ctdb ما چندین گره (node) فعال داریم، بنابراین در یک کلاستر SMB2_SHARE_CAP_SCALEOUT را اعلام می‌کنیم.

گزینه smb3 share cap:SCALE OUT می‌تواند برای غیرفعال کردن اعلام SMB2_SHARE_CAP_SCALEOUT استفاده شود، حتی اگر clustering برابر yes باشد.

clustering = yes
smb3 share cap: SCALE OUT = no

No default

smb3 share cap:CLUSTER (S)

پروتکل SMB3 فلگ SMB2_SHARE_CAP_CLUSTER را معرفی کرد. این بدان معناست که کلاینت‌ها می‌توانند انتظار داشته باشند همه گره‌های کلاستر یک سرویس witness ارائه دهند تا از پروتکل [MS-SWN] برای نظارت بر کلاستر سرور استفاده شود.

نکته: این گزینه فقط برای اشتراک‌های دیسک اعمال می‌شود.

دیمن rpcd_witness تنها در صورتی فعال است که samba-dcerpcd(8) به عنوان دستیار درخواستی (on demand helper) شروع نشده باشد و فقط در یک کلاستر ctdb اجرا شده باشد.

بنابراین ما SMB2_SHARE_CAP_CLUSTER را تنها در صورتی اعلام می‌کنیم که clustering برابر yes و rpc start on demand helpers برابر no باشد.

گزینه smb3 share cap:SCALE OUT می‌تواند برای کنترل اعلام SMB2_SHARE_CAP_CLUSTER مستقل از clustering و rpc start on demand helpers استفاده شود.

Example برای غیرفعال کردن اعلام SMB2_SHARE_CAP_CLUSTER:

clustering = yes
rpc start on demand helpers = no
smb3 share cap: CLUSTER = no

Example برای اجبار به اعلام SMB2_SHARE_CAP_CLUSTER:

smb3 share cap: CLUSTER = yes

Example برای اجازه دادن به کلاینت‌های ویندوز جهت استفاده از سرویس witness، گزینه smb3 share cap:CONTINUOUS AVAILABILITY را ببینید و با مسئولیت خود استفاده کنید (USE AT YOUR OWN RISK!):

clustering = yes
rpc start on demand helpers = no
# This is the default with the above:
# smb3 share cap: CLUSTER = yes
#
# Use at you own risk!
smb3 share cap: CONTINUOUS AVAILABILITY = yes

No default

smb3 share cap:ASYMMETRIC (S)

پروتکل SMB3_02 فلگ SMB2_SHARE_CAP_ASYMMETRIC را معرفی کرد. این بدان معناست که کلاینت رفتار خود را تغییر داده و از اتصالات انتقال (transport) و ثبت‌های witness مجزا برای این اشتراک استفاده می‌کند. این به این معنی است که کلاینت ممکن است برای هر اشتراک به گره‌های مختلف کلاستر متصل شود و net witness share-move می‌تواند برای کنترل استفاده از گره به کار رود.

نکته: این گزینه فقط برای اشتراک‌های دیسک اعمال می‌شود.

اشتراک‌ها در یک کلاستر ctdb بر اساس طراحی متقارن هستند، بنابراین ما به‌طور پیش‌فرض SMB2_SHARE_CAP_ASYMMETRIC را اعلام نمی‌کنیم.

گزینه smb3 share cap:ASYMMETRIC می‌تواند برای اجبار به اعلام SMB2_SHARE_CAP_ASYMMETRIC استفاده شود.

Example برای اجبار به اعلام SMB2_SHARE_CAP_ASYMMETRIC:

smb3 share cap: ASYMMETRIC = yes

Example برای اجازه دادن به کلاینت‌های ویندوز جهت استفاده از سرویس witness، گزینه smb3 share cap:CONTINUOUS AVAILABILITY را ببینید و با مسئولیت خود استفاده کنید (USE AT YOUR OWN RISK!):

clustering = yes
rpc start on demand helpers = no
# This is the default with the above:
# smb3 share cap: CLUSTER = yes
#
# Use at you own risk!
smb3 share cap: CONTINUOUS AVAILABILITY = yes
smb3 share cap: ASYMMETRIC = yes

No default

smb3 unix extensions (S)

پشتیبانی از SMB 3.1.1 Unix Extensions.

Default: smb3 unix extensions = yes

smbd async dosmode (S)

این پارامتر مشخص می‌کند که آیا سرور فایل هنگام فهرست کردن دایرکتوری، از روش‌های همگام (sync) یا ناهمگام (async) برای واکشی ویژگی‌های DOS استفاده کند یا خیر. به‌طور پیش‌فرض از روش‌های همگام استفاده خواهد شد.

Default: smbd async dosmode = no

smbd getinfo ask sharemode (S)

این پارامتر امکان غیرفعال کردن واکشی زمان نوشتن فایل (file write time) از پایگاه‌دادهٔ هندل‌های باز فایل، locking.tdb، در زمان درخواست متادادهٔ فایل یا دایرکتوری توسط کلاینت را فراهم می‌کند. این یک بهینه‌سازی کارایی است که به بهای درستی پروتکل تمام می‌شود.

Default: smbd getinfo ask sharemode = yes

smbd max async dosmode (S)

این پارامتر کنترل می‌کند که سرور فایل هنگام فهرست کردن دایرکتوری، چه تعداد عملیات ناهمگام را برای واکشی ویژگی‌های DOS در صف قرار دهد.

Default: smbd max async dosmode = aio max threads * 2

smbd max xattr size (S)

این پارامتر حداکثر اندازهٔ ویژگی‌های گسترش‌یافته (extended attributes) را که می‌توان به‌صورت EA یا به عنوان جریان‌های دادهٔ جایگزین (alternate data streams) در صورت فعال بودن vfs_streams_xattr بر روی سرور نوشت، کنترل می‌کند. حداکثر اندازهٔ ویژگی‌های گسترش‌یافته به سیستم‌عامل سرور Samba و سیستم‌فایل زیرین بستگی دارد. در حال حاضر Linux VFS یک حد بالاییِ 64 KiB برای هر ویژگی گسترش‌یافته تعیین کرده است. FreeBSD حد بالاییِ عملی تعیین نمی‌کند، اما از آنجا که فراخوانی‌های pread()‎ و pwrite()‎ از طریق extattr در FreeBSD امکان‌پذیر نیستند، افزایش این مقدار به بیش از چند MiB توصیه نمی‌شود. اگر یک کلاینت تلاش کند جریان دادهٔ جایگزینِ بیش از حد بزرگی را بنویسد، سرور Samba خطای STATUS_FILESYSTEM_LIMITATION را بازمی‌گرداند. در صورت مواجهه با این خطا، کاربران می‌توانند حداکثر اندازهٔ پشتیبانی‌شده برای نوشتن xattr را افزایش دهند. اگر این امر ممکن نباشد و نوشتن از سوی یک کلاینت MacOS و روی ویژگی گسترش‌یافتهٔ AFP_Resource صورت گیرد، کاربر می‌تواند ماژول vfs_fruit را فعال کرده و آن را طوری پیکربندی کند که نوشتن جریان‌ها برای AFP_Resource به یک مکان ذخیره‌سازی جایگزین مجاز شود. برای جزئیات بیشتر به مستندات vfs_fruit مراجعه کنید.

Default: smbd max xattr size = 65536

smbd profiling share (S)

این پارامتر به مدیر سیستم اجازه می‌دهد پشتیبانی از پروفایل‌بندی بر اساس هر اشتراک (per-share profiling) را فعال کند. در صورت فعال بودن، شمارنده‌های پروفایل می‌توانند با تفکیک‌پذیری در سطح اشتراک‌های خاص جمع‌آوری شوند. تنها زمانی اعمال می‌شود که گزینهٔ سراسری smbd profiling level فعال باشد.

Default: smbd profiling share = no

smbd profiling level (G)

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

مقادیر ممکن عبارتند از off، count و on.

Default: smbd profiling level = off

Example: smbd profiling level = on

smbd search ask sharemode (S)

این پارامتر امکان غیرفعال کردن واکشی زمان نوشتن فایل را از پایگاه‌دادهٔ هندل‌های باز فایل locking.tdb فراهم می‌کند. این یک بهینه‌سازی کارایی است که به بهای درستی پروتکل تمام می‌شود.

Default: smbd search ask sharemode = yes

smb encrypt (S)

این پارامتر مترادفی برای server smb encrypt است.

Default: smb encrypt = default

smb passwd file (G)

این گزینه مسیر فایل رمزنگاری‌شدهٔ smbpasswd را تعیین می‌کند. به‌طور پیش‌فرض، مسیر فایل smbpasswd در زمان کامپایل درون Samba تعبیه می‌شود.

یک نمونه از کاربرد آن:

smb passwd file = /etc/samba/smbpasswd

Default: smb passwd file = /var/lib/samba/private/smbpasswd

socket options (G)


هشدار
سیستم‌عامل‌های سرور مدرن در اکثر موقعیت‌ها برای کارایی بالای شبکه تنظیم شده‌اند؛ هنگامی که socket options را تعیین می‌کنید، آن تنظیمات را بازنویسی می‌نمایید. لینوکس به‌ویژه دارای یک سازوکار تنظیم خودکار (auto-tuning) برای اندازهٔ بافرها است که در صورت مشخص کردن اندازهٔ بافر سوکت، غیرفعال خواهد شد. این امر می‌تواند به‌طور بالقوه پشتهٔ TCP/IP شما را دچار اختلال جدی کند.

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

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

گزینه‌های سوکت، کنترل‌هایی بر روی لایهٔ شبکه در سیستم‌عامل هستند که امکان تنظیم دقیق (tune) اتصال را فراهم می‌کنند.

این گزینه معمولاً برای تنظیم سرور Samba جهت دستیابی به عملکرد بهینه در شبکهٔ محلی شما استفاده می‌شود. Samba به‌هیچ‌وجه نمی‌تواند بداند چه پارامترهایی برای شبکهٔ شما بهینه‌اند، بنابراین باید خودتان آن‌ها را آزمایش کرده و انتخاب کنید. ما اکیداً توصیه می‌کنیم ابتدا مستندات مربوط به سیستم‌عامل خود را بخوانید (شاید man setsockopt کمک کند).

ممکن است مشاهده کنید که در برخی سیستم‌ها، هنگام وارد کردن یک گزینه Samba پیام "Unknown socket option" را نمایش می‌دهد. این بدان معناست که یا آن را اشتباه تایپ کرده‌اید یا باید یک فایل include به includes.h برای سیستم‌عامل خود بیفزایید. اگر مورد دوم صادق است، لطفاً وصله (patch) مربوطه را به samba-technical@lists.samba.org ارسال نمایید.

هر یک از گزینه‌های سوکتِ پشتیبانی‌شده را می‌توان به هر شکلی که مایل باشید با یکدیگر ترکیب کرد، مشروط بر آنکه سیستم‌عامل شما اجازه دهد.

این فهرست گزینه‌های سوکتی است که در حال حاضر با استفاده از این گزینه قابل تنظیم هستند:

•SO_KEEPALIVE
•SO_REUSEADDR
•SO_BROADCAST
•TCP_NODELAY
•TCP_KEEPCNT *
•TCP_KEEPIDLE *
•TCP_KEEPINTVL *
•IPTOS_LOWDELAY
•IPTOS_THROUGHPUT
•SO_REUSEPORT
•SO_SNDBUF *
•SO_RCVBUF *
•SO_SNDLOWAT *
•SO_RCVLOWAT *
•SO_SNDTIMEO *
•SO_RCVTIMEO *
•TCP_FASTACK *
•TCP_QUICKACK
•TCP_NODELAYACK
•TCP_KEEPALIVE_THRESHOLD *
•TCP_KEEPALIVE_ABORT_THRESHOLD *
•TCP_DEFER_ACCEPT *
•TCP_USER_TIMEOUT *
موارد نشانه‌گذاری‌شده با '*' یک آرگومان عدد صحیح می‌پذیرند. سایر گزینه‌ها می‌توانند به‌طور اختیاری یک آرگومان 1 یا 0 را برای فعال یا غیرفعال کردن دریافت کنند؛ به‌طور پیش‌فرض در صورت عدم مشخص کردن 1 یا 0، فعال خواهند بود.

برای تعیین یک آرگومان از نحو SOME_OPTION = VALUE استفاده کنید؛ برای مثال SO_SNDBUF = 8192. توجه داشته باشید که نباید قبل یا بعد از علامت = هیچ فاصله‌ای قرار دهید.

اگر در یک شبکهٔ محلی هستید، یک گزینهٔ معقول می‌تواند به این صورت باشد:

socket options = IPTOS_LOWDELAY

اگر یک شبکهٔ محلی دارید، می‌توانید این را امتحان کنید:

socket options = IPTOS_LOWDELAY TCP_NODELAY

اگر در یک شبکهٔ گسترده (WAN) قرار دارید، تنظیم IPTOS_THROUGHPUT را امتحان کنید.

توجه داشته باشید که چندین مورد از این گزینه‌ها ممکن است باعث شوند سرور Samba شما کاملاً از کار بیفتد. از این گزینه‌ها با احتیاط استفاده کنید!

Default: socket options = TCP_NODELAY

Example: socket options = IPTOS_LOWDELAY

spn update command (G)

این گزینه دستوری را مشخص می‌کند که برای به‌روزرسانی نام‌های servicePrincipalName از spn_update_list به کار می‌رود.

Default: spn update command = /build/samba/src/samba-4.24.6/source4/scripting/bin/samba_spnupdate

Example: spn update command = /usr/local/sbin/spnupdate

spoolss: architecture (G)

کلاینت‌های چاپ spoolss در ویندوز تنها زمانی اجازه مرتبط‌سازی درایورهای سمت سرور با چاپگرها را می‌دهند که معماری درایور با معماری اعلام‌شده سرور چاپ مطابقت داشته باشد. معماری سرور چاپ spoolss سامبا را می‌توان با استفاده از این پارامتر تغییر داد.

Default: spoolss: architecture = Windows x64

Example: spoolss: architecture = Windows NT x86

spoolss: os_major (G)

ویندوز ممکن است به یک شماره نسخه جدیدتر سیستم‌عامل نیاز داشته باشد. این گزینه اجازه تغییر شماره ساخت (build number) را می‌دهد. شماره نسخه کامل پیش‌فرض عبارت است از: 5.0.2195 (Windows 2000). مثال داده‌شده 6.1.7601 (Windows 2008 R2) است.

Default: spoolss: os_major = 5

Example: spoolss: os_major = 6

spoolss: os_minor (G)

ویندوز ممکن است به یک شماره نسخه جدیدتر سیستم‌عامل نیاز داشته باشد. این گزینه اجازه تغییر شماره ساخت (build number) را می‌دهد. شماره نسخه کامل پیش‌فرض عبارت است از: 5.0.2195 (Windows 2000). مثال داده‌شده 6.1.7601 (Windows 2008 R2) است.

Default: spoolss: os_minor = 0

Example: spoolss: os_minor = 1

spoolss: os_build (G)

ویندوز ممکن است به یک شماره نسخه جدیدتر سیستم‌عامل نیاز داشته باشد. این گزینه اجازه تغییر شماره ساخت (build number) را می‌دهد. شماره نسخه کامل پیش‌فرض عبارت است از: 5.0.2195 (Windows 2000). مثال داده‌شده 6.1.7601 (Windows 2008 R2) است.

Default: spoolss: os_build = 2195

Example: spoolss: os_build = 7601

spoolss_client: os_major (G)

ویندوز ممکن است به یک شماره نسخه جدیدتر سیستم‌عامل نیاز داشته باشد. این گزینه اجازه تغییر شماره ساخت (build number) را می‌دهد. شماره نسخه کامل پیش‌فرض عبارت است از: 6.1.7007 (Windows 7 و Windows Server 2008 R2).

Default: spoolss_client: os_major = 6

spoolss_client: os_minor (G)

ویندوز ممکن است به یک شماره نسخه جدیدتر سیستم‌عامل نیاز داشته باشد. این گزینه اجازه تغییر شماره ساخت (build number) را می‌دهد. شماره نسخه کامل پیش‌فرض عبارت است از: 6.1.7007 (Windows 7 و Windows Server 2008 R2).

Default: spoolss_client: os_minor = 1

spoolss_client: os_build (G)

ویندوز ممکن است به یک شماره نسخه جدیدتر سیستم‌عامل نیاز داشته باشد. این گزینه اجازه تغییر شماره ساخت (build number) را می‌دهد. شماره نسخه کامل پیش‌فرض عبارت است از: 6.1.7007 (Windows 7 و Windows Server 2008 R2).

Default: spoolss_client: os_build = 7007

spotlight (S)

این پارامتر مشخص می‌کند که آیا سامبا اجازه پرس‌وجوهای Spotlight را روی یک اشتراک می‌دهد یا خیر. برای کنترل نمایه‌سازی سیستم‌های فایل، باید از سیستم پیکربندی خود Tracker نیز استفاده کنید.

Spotlight چندین پیش‌نیاز دارد:

•سامبا باید با پشتیبانی از Spotlight پیکربندی و کامپایل شده باشد.
•یکپارچه‌سازی با Tracker باید راه‌اندازی شده باشد و اشتراک توسط Tracker نمایه شود.
برای مجموعه‌ای از دستورالعمل‌های دقیق لطفاً https://wiki.samba.org/index.php/Spotlight را ببینید.

Default: spotlight = no

spotlight backend (S)

بک‌اند جستجوی Spotlight. بک‌اندهای در دسترس:
•noindex - بک‌اندی که هیچ نتیجه‌ای برنمی‌گرداند.
•tracker - بسته Gnome Tracker.
•elasticsearch - بک‌اندی که از JSON و REST بر بستر HTTP(s) برای پرس‌وجو از یک سرور Elasticsearch استفاده می‌کند.

Default: spotlight backend = noindex

stat cache (G)

این پارامتر مشخص می‌کند که آیا smbd(8) به منظور افزایش سرعت نگاشت نام‌های غیرحساس به بزرگی و کوچکی حروف از حافظه موقت (کش) استفاده کند یا خیر. شما هرگز نباید نیازی به تغییر این پارامتر داشته باشید.

Default: stat cache = yes

state directory (G)

معمولاً بیشتر فایل‌های TDB در lock directory ذخیره می‌شوند. از نسخه 3.4.0 سامبا به بعد، امکان تمایز بین فایل‌های TDB حاوی داده‌های ماندگار و فایل‌های TDB حاوی داده‌های غیرماندگار با استفاده از گزینه‌های state directory و cache directory فراهم شده است.

این گزینه دایرکتوری محل ذخیره‌سازی فایل‌های TDB حاوی داده‌های مهم ماندگار را مشخص می‌کند.

Default: state directory = /var/lib/samba

Example: state directory = /var/run/samba/locks/state

store dos attributes (S)

در صورت تنظیم این پارامتر، سامبا پیش از نگاشت ویژگی‌های DOS به بیت‌های مجوز یونیکس (مانند آنچه با map hidden و map readonly رخ می‌دهد)، ابتدا تلاش می‌کند ویژگی‌های DOS (شامل SYSTEM،‏ HIDDEN،‏ ARCHIVE یا READ-ONLY) را از یک ویژگی گسترش‌یافته سیستم فایل بخواند. هنگامی که تنظیم شود، ویژگی‌های DOS روی یک ویژگی گسترش‌یافته در سیستم فایل یونیکس، متصل به فایل یا دایرکتوری ذخیره خواهند شد. وقتی این پارامتر تنظیم باشد، بر پارامترهای map hidden، map system، map archive و map readonly ارجحیت دارد و آنها به گونه‌ای رفتار خواهند کرد که گویی روی off تنظیم شده‌اند. این پارامتر ویژگی‌های DOS را به صورت یک رشته درون ویژگی گسترش‌یافته‌ای به نام "user.DOSATTRIB" می‌نویسد. این ویژگی گسترش‌یافته صریحاً از کلاینت‌های smbd که فهرست EA را درخواست می‌کنند، پنهان می‌شود. در لینوکس، سیستم فایل باید با گزینه mount به صورت user_xattr سوار شده باشد تا ویژگی‌های گسترش‌یافته کار کنند؛ همچنین ویژگی‌های گسترش‌یافته باید درون هسته لینوکس کامپایل شده باشند. در سامبا 3.5.0 و بالاتر، ویژگی گسترش‌یافته "user.DOSATTRIB" توسعه یافته است تا علاوه بر ویژگی‌های DOS، زمان ایجاد (create time) فایل را نیز ذخیره کند. این کار با حفظ سازگاری عقبرو انجام می‌شود، بنابراین فایل‌های ایجادشده توسط سامبا 3.5.0 و بالاتر همچنان می‌توانند ویژگی DOS خود را توسط نسخه‌های قدیمی‌تر سامبا از این ویژگی گسترش‌یافته بخوانند، اما آن نسخه‌ها قادر به خواندن زمان ایجاد ذخیره‌شده در آن نخواهند بود. ذخیره زمان ایجاد به طور جداگانه از فراداده‌های معمولی سیستم فایل، به سامبا اجازه می‌دهد تا مفاهیم و رفتار NTFS را با دقت بر روی یک سیستم فایل POSIX بازآفرینی کند. مقدار پیش‌فرض در نگارش سامبا 4.9.0 و بالاتر به yes تغییر یافته است تا سازگاری بهتری با سرور فایل ویندوز در یک نصب پیش‌فرض فراهم شود.

Default: store dos attributes = yes

strict allocate (S)

این یک مقدار بولی است که نحوه مدیریت تخصیص فضای دیسک را در سرور کنترل می‌کند. هنگامی که این گزینه روی yes تنظیم شود، سرور رفتار یونیکسیِ عدم تخصیص بلوک‌های ذخیره‌سازی واقعی دیسک در هنگام گسترش اندازه فایل را به رفتار ویندوزیِ اجبار سیستم دیسک به تخصیص بلوک‌های ذخیره‌سازی واقعی هنگام ایجاد یا افزایش حجم فایل به یک اندازه مشخص تغییر می‌دهد. در اصطلاح یونیکس این بدان معنی است که سامبا از ایجاد فایل‌های تنک (sparse files) دست خواهد کشید.

این گزینه در واقع برای سیستم‌های فایلی طراحی شده است که از تخصیص سریع تعداد زیادی بلوک پشتیبانی می‌کنند، مانند سیستم‌های فایل مبتنی بر اکستنت (extent-based). در سیستم‌های فایلی که از اکستنت‌ها پشتیبانی نمی‌کنند (به‌ویژه ext3) این گزینه می‌تواند سامبا را کندتر کند. هنگامی که با فایل‌های بزرگ با حجم بیش از ۱۰۰ مگابایت روی سیستم‌های فایل بدون اکستنت کار می‌کنید، حتی ممکن است با مشکل اتمام مهلت زمانی (timeout) کلاینت‌ها مواجه شوید.

هنگامی که یک سیستم فایل مبتنی بر اکستنت دارید، احتمالاً می‌توان از اکستنت‌های نانوشته (unwritten extents) استفاده کرد که به سامبا اجازه می‌دهد مقادیر زیادی فضا را نیز بسیار سریع تخصیص دهد و شما با مشکلات timeout ناشی از strict allocate مواجه نخواهید شد. همچنین با استفاده از strict allocate، در صورت فعال بودن سهمیه‌بندی (کوتا) پیام‌های بسیار بهتری در مورد اتمام سهمیه (out of quota) دریافت خواهید کرد. مزیت دیگر فعال‌سازی این تنظیم این است که به کاهش تکه‌تکه‌شدگی فایل‌ها (fragmentation) کمک می‌کند.

برای این که دیدی به دست آورید که این تنظیم در حال حاضر روی کدام سیستم‌های فایل ممکن است گزینه مناسبی باشد: سیستم‌های فایل XFS،‏ ext4،‏ btrfs،‏ ocfs2 در لینوکس و JFS2 در AIX از اکستنت‌های نانوشته پشتیبانی می‌کنند. در سیستم‌های فایلی که از آن پشتیبانی نمی‌کنند، پیش‌تخصیص احتمالاً عملیاتی سنگین و پرهزینه است که در آن شاهد کاهش کارایی خواهید بود و در زمان ایجاد فایل‌های بزرگ با خطر خطای وقفه زمانی کلاینت‌ها روبه‌رو می‌شوید. نمونه‌هایی از این دست عبارتند از ext3،‏ ZFS،‏ HFS+ و اغلب سیستم‌های فایل دیگر؛ بنابراین اگر این تنظیم را روی این دسته از سیستم‌های فایل فعال می‌کنید مراقب باشید.

Default: strict allocate = no

strict locking (S)

این یک نوع شمارشی است که مدیریت قفل‌گذاری فایل را در سرور کنترل می‌کند. هنگامی که این گزینه روی yes تنظیم شود، سرور تمام دسترسی‌های خواندن و نوشتن را برای بررسی قفل‌های فایل ارزیابی کرده و در صورت وجود قفل، دسترسی را رد می‌کند. این عمل در برخی سیستم‌ها می‌تواند کند باشد.

هنگامی که strict locking روی Auto (پیش‌فرض) تنظیم شده باشد، سرور بررسی قفل فایل را تنها روی فایل‌های بدون oplock انجام می‌دهد. از آنجا که بیشتر هدایت‌کننده‌های ویندوز بررسی قفل فایل را به صورت محلی روی فایل‌های دارای oplock انجام می‌دهند، این گزینه مصالحه‌ای عالی برای بهبود کارایی است.

هنگامی که strict locking غیرفعال باشد، سرور بررسی قفل فایل را تنها زمانی انجام می‌دهد که کلاینت صریحاً آن را درخواست کند.

کلاینت‌های استاندارد همیشه در مواقع مهم بررسی قفل را درخواست می‌کنند. بنابراین در اکثریت قریب به اتفاق موارد، strict locking = Auto یا strict locking = no قابل قبول خواهد بود.

Default: strict locking = Auto

strict rename (S)

به‌طور پیش‌فرض، یک سرور SMB ویندوز هنگامی که هندل‌های باز فایل یا دایرکتوری در زیر آن در سلسله‌مراتب فایل‌سیستم وجود داشته باشد، از تغییر نام دایرکتوری جلوگیری می‌کند. از نظر تاریخی سامبا همواره این کار را مجاز دانسته است زیرا معناشناسی فایل‌سیستم POSIX به آن نیاز دارد.

این پارامتر بولی به سامبا اجازه می‌دهد تا با رفتار ویندوز مطابقت یابد. تنظیم این گزینه روی "yes" تغییری بسیار پرهزینه است، زیرا سامبا را وادار می‌کند تا در هر درخواست تغییر نام دایرکتوری، کل پایگاه‌داده هندل‌های فایل باز را پیمایش کند. در یک سیستم سامبای کلاسترشده، هزینه این کار حتی بیشتر از حالت غیرکلاستر است.

هنگامی که روی "no" تنظیم شود، smbd به جای بررسی فایل‌های باز در میان تمام فرآیندهای smbd، فقط فرآیند محلی را که کلاینت به آن متصل است برای فایل‌های بازِ زیر دایرکتوری در حال تغییر نام بررسی می‌کند.

به دلیل هزینه ناشی از جستجوی کامل پایگاه‌داده، مقدار پیش‌فرض "no" است و توصیه می‌شود به همان صورت رها شود مگر اینکه یک برنامه کاربردی خاص ویندوز الزام به تغییر آن داشته باشد.

اگر کلاینت افزونه‌های یونیکس (POSIX pathnames) را درخواست کرده باشد، در این صورت تغییر نام‌ها همواره مجاز بوده و این پارامتر هیچ اثری ندارد.

فعال کردن smb3 directory leases به‌طور ضمنی strict rename را فعال می‌کند.

Default: strict rename = no

strict sync (S)

این پارامتر کنترل می‌کند که آیا سامبا به درخواست کلاینت SMB مبنی بر اطمینان از نوشته شدن ایمن محتوای بافرهای معلق سیستم‌عامل در حافظه بر روی ذخیره‌ساز پایدار دیسک احترام می‌گذارد یا خیر. اگر روی yes تنظیم شود، که مقدار پیش‌فرض است، برنامه‌های کاربردی ویندوز می‌توانند سرور smbd را وادار کنند تا داده‌های نوشته‌نشده را بر روی دیسک همگام‌سازی کند. اگر روی no تنظیم شود، smbd درخواست‌های کلاینت برای همگام‌سازی داده‌های نوشته‌نشده بر روی ذخیره‌ساز پایدار دیسک را نادیده خواهد گرفت.

در سامبا 4.7.0، مقدار پیش‌فرض این پارامتر از no به yes تغییر یافت تا با انتظارات کلاینت‌های SMB2/3 تطابق بهتری داشته باشد و ایمنی برنامه‌ها هنگام کار با smbd بهبود یابد.

درخواست تخلیه بافر (flush) از سوی کلاینت‌های SMB2/3 به صورت ناهمگام در داخل smbd پردازش می‌شود، بنابراین باقی گذاشتن این پارامتر روی مقدار پیش‌فرض yes مانع پردازش سایر درخواست‌ها در فرآیند smbd نمی‌شود.

به نظر می‌رسید برنامه‌های قدیمی ویندوز (مانند پوسته اکسپلورر ویندوز ۹۸) نوشتن محتوای بافر در سیستم‌عامل را با نوشتن همگام داده‌های معلق بر روی ذخیره‌ساز پایدار دیسک اشتباه می‌گرفتند. تغییر این پارامتر به no بدین معناست که smbd(8) درخواست برنامه‌های کاربردی ویندوز برای همگام‌سازی داده‌های نوشته‌نشده بر روی دیسک را نادیده می‌گیرد. تنها در صورتی تغییر این مورد را مد نظر قرار دهید که smbd در حال سرویس‌دهی به کلاینت‌های منسوخ SMB1 ویندوز قبل از ویندوز XP (ویندوز ۹۸ و قبل از آن) باشد. برای عملیات عادی نباید نیازی به تغییر این تنظیم باشد.

Default: strict sync = yes

svcctl list (G)

این گزینه فهرستی از اسکریپت‌های init را تعریف می‌کند که smbd برای راه‌اندازی و متوقف کردن سرویس‌های یونیکس از طریق Win32 ServiceControl API استفاده خواهد کرد. این قابلیت به مدیران سیستم ویندوز اجازه می‌دهد تا از افزونه‌های MS Management Console برای مدیریت یک سرور یونیکسِ اجراکننده سامبا استفاده کنند.

مدیر سیستم باید دایرکتوری‌ای به نام svcctl در $(libdir) سامبا بسازد و پیوندهای نمادینی (symbolic links) به اسکریپت‌های init در /etc/init.d/ ایجاد کند. نام پیوندها باید با نام‌های مشخص‌شده در svcctl list مطابقت داشته باشد.

Default: svcctl list =

Example: svcctl list = cups postfix portmap httpd

sync always (S)

این یک پارامتر بولی است که کنترل می‌کند آیا عملیات نوشتن همیشه پیش از بازگشت فراخوانی نوشتن، بر روی حافظه پایدار نوشته شود یا خیر. اگر این مقدار no باشد، سرور در هر فراخوانیِ نوشتن توسط درخواست کلاینت هدایت می‌شود (کلاینت‌ها می‌توانند بیتی را تنظیم کنند که نشان می‌دهد یک عمل نوشتن مشخص باید همگام باشد). اگر این مقدار yes باشد، به دنبال هر عمل نوشتن یک فراخوانی fsync() انجام می‌شود تا از نوشته شدن داده‌ها بر روی دیسک اطمینان حاصل گردد. توجه داشته باشید که پارامتر strict sync باید روی yes تنظیم شده باشد تا این پارامتر هرگونه اثری داشته باشد.

Default: sync always = no

sync machine password script (G)

این مسیر کامل به اسکریپتی است که هنگام به‌روزرسانی گذرواژه حساب ماشین، توسط winbindd(8) اجرا خواهد شد.

اگر در محیط‌های کلاسترشده نیاز به تولید keytabها باشد، توصیه می‌شود آن‌ها را روی همه گره‌ها به‌روزرسانی کنید. در حالت کلاسترینگ می‌توانید این گزینه پیکربندی را به /usr/share/ctdb/scripts/winbind_ctdb_updatekeytab.sh تنظیم کنید. همچنین نیاز است که 46.update-keytabs.script در ctdb فعال شود؛ این اسکریپت در طول رویداد ctdb recovered فایل keytab را دوباره ایجاد می‌کند:

onnode all ctdb event script enable legacy 46.update-keytabs.script

Default: sync machine password script =

Example: sync machine password script = /usr/share/ctdb/scripts/winbind_ctdb_updatekeytab.sh

sync machine password to keytab (G)

این گزینه به شما امکان می‌دهد مشخص کنید چه keytabهایی و چگونه باید هنگام تغییر حساب ماشین از طریق یکی از این دستورها به‌روزرسانی شوند:
wbinfo --change-secret
rpcclient --machine-pass -c change_trust_pw
net rpc changetrustpw
net ads changetrustpw

یا از طریق به‌روزرسانی‌های منظمی که توسط winbindd انجام می‌شود (ببینید machine password timeout)

این گزینه فهرستی از رشته‌های keytab را برای توصیف نحوه همگام‌سازی محتوای آن keytabها یا یک مقدار منفرد 'disabled' برای غیرفعال کردن همگام‌سازی می‌پذیرد. هر رشته دارای این قالب است:

absolute_path_to_keytab:spn_spec[:spn_spec]*[:sync_etypes][:sync_kvno][:netbios_aliases][:additional_dns_hostnames][:machine_password]

مقدار spn_spec می‌تواند چندین بار مشخص شود (با استفاده از ':' جدا می‌شود) و هر spn_spec می‌تواند دقیقاً یکی از این قالب‌ها را داشته باشد:

account_name
sync_account_name
sync_upn
sync_spns
spn_prefixes=value1[,value2[...]]
spns=value1[,value2[...]]

هر keytab شامل principalهایی بر اساس مشخصات زیر است:

account_name      - COMPUTER$@REALM
sync_account_name - استفاده از مشخصه "sAMAccountName" از AD
sync_upn          - استفاده از مشخصه "userPrincipalName" (در صورت وجود در AD)
sync_spns         - استفاده از مشخصه "servicePrincipalName" (در صورت وجود در AD)
spn_prefixes      - ایجاد این دو principal از هر پیشوند؛ به عنوان مثال:
                      prefix/netbios name@REALM
                      prefix/dns hostname@REALM
                    همراه با :netbios_aliases به ازای هر netbiosalias در netbios aliases
                      prefix/netbiosalias@REALM
                      prefix/netbiosalias.dnsdomain@REALM
                    همراه با :additional_dns_hostnames به ازای هر additionaldnshostname در additional dns hostnames
                      prefix/additionaldnshostname@REALM
                  - مورد 'host' principal باید با استفاده از مشخص‌کننده spn_prefixes ایجاد شود
spns              - فقط principalهای تعریف‌شده در فهرست را ایجاد می‌کند

مقادیر 'account_name' و 'sync_account_name' یکسان هستند، تنها منبع آن‌ها تفاوت دارد (secrets.tdb در مقابل AD).

گزینه‌ها:

sync_etypes              - مشخصه "msDS-SupportedEncryptionTypes" از AD خوانده شده و برای یافتن بالاترین نوع رمزگذاری مشترک بین AD و کتابخانه KRB5 استفاده می‌شود.
sync_kvno                - مشخصه "msDS-KeyVersionNumber" از AD برای تعیین KVNO استفاده می‌شود. اگر این گزینه وجود نداشته باشد، KVNO روی -1 تنظیم می‌شود.
netbios_aliases          - تنها برای spn_prefixes ارزیابی می‌شود (جزئیات بالا را ببینید).
additional_dns_hostnames - تنها برای spn_prefixes ارزیابی می‌شود (جزئیات بالا را ببینید).
machine_password         - الزامی است؛ در صورت نبودن، این مدخل نادیده گرفته می‌شود. برای کاربرد در آینده.

Example:

"/path/to/keytab0:account_name:machine_password",
"/path/to/keytab1:account_name:sync_etypes:sync_kvno:machine_password",
"/path/to/keytab2:sync_spns:machine_password",
"/path/to/keytab3:sync_spns:sync_kvno:machine_password",
"/path/to/keytab4:spn_prefixes=imap,smtp:machine_password",
"/path/to/keytab5:spn_prefixes=imap,smtp:netbios_aliases:additional_dns_hostnames:sync_kvno:machine_password",
"/path/to/keytab6:spns=wurst/brot@REALM:machine_password",
"/path/to/keytab7:spns=wurst/brot@REALM,wurst2/brot@REALM:sync_kvno:machine_password",
"/path/to/keytab8:sync_account_name:sync_upn:sync_spns:spn_prefixes=host,cifs,http:spns=wurst/brot@REALM:sync_kvno:machine_password"

اگر sync_etypes یا sync_kvno یا sync_spns وجود داشته باشد، winbind به DC متصل می‌شود. برای «عضویت آفلاین در دامین» (offline domain join) ممکن است مفید باشد که از این گزینه‌ها استفاده نشود.

اگر مقداری مشخص نشده باشد و kerberos method مقداری غیر از 'secrets only' داشته باشد، رفتار میان winbind و ابزار net متفاوت خواهد بود:

•winbind از مقدار زیر استفاده می‌کند:
/path/to/keytab:host:account_name:sync_spns:sync_kvno:machine_password

که در آن مسیر keytab یا از کتابخانه krb5 یا از dedicated keytab file به دست می‌آید.

•دستور net changesecretpw -f از مقدار پیش‌فرض 'disabled' استفاده می‌کند.
•هیچ زیردستور دیگری از net از مقدار 'disabled' استفاده نمی‌کند.
اگر مقدار منفرد 'disabled' موجود باشد، فرایند همگام‌سازی غیرفعال می‌شود. این مورد برای راه‌اندازی عضو دامین FreeIPA لازم است که در آن همگام‌سازی keytab از پروتکلی استفاده می‌کند که توسط سامبا پیاده‌سازی نشده است.

پیکربندی پیشنهادی به همراه kerberos method تنظیم‌شده روی مقدار پیش‌فرض 'secrets only' است.

در محیط‌های کلاسترشده توصیه می‌شود sync machine password script تنظیم گردد تا گذرواژه ماشین بر روی تمامی گره‌ها به‌روزرسانی شود.

No default

syslog (G)

این پارامتر نحوه نگاشت پیام‌های اشکال‌زدایی سامبا بر سطوح ثبت وقایع syslog سیستم را مشخص می‌کند. سطح اشکال‌زدایی صفر سامبا به LOG_ERR در syslog، سطح اشکال‌زدایی یک به LOG_WARNING، سطح اشکال‌زدایی دو به LOG_NOTICE و سطح اشکال‌زدایی سه به LOG_INFO نگاشت می‌شوند. تمام سطوح بالاتر به LOG_DEBUG نگاشت می‌شوند.

این پارامتر آستانه ارسال پیام‌ها به syslog را تعیین می‌کند. تنها پیام‌هایی با سطح اشکال‌زدایی کمتر از این مقدار به syslog ارسال خواهند شد. حتی اگر syslog only فعال باشد، همچنان مقداری ثبت وقایع در log.[sn]mbd انجام خواهد شد.

به جای این، باید از پارامتر logging استفاده شود. زمانی که logging تنظیم شود، پارامتر syslog را لغو می‌کند.

Default: syslog = 1

syslog only (G)

اگر این پارامتر تنظیم شود، پیام‌های اشکال‌زدایی سامبا تنها در syslog سیستم ثبت می‌شوند و در فایل‌های لاگ اشکال‌زدایی ذخیره نخواهند شد. حتی اگر syslog only فعال باشد، همچنان مقداری ثبت وقایع در log.[sn]mbd انجام خواهد شد.

به جای این، باید از پارامتر logging استفاده شود. زمانی که logging تنظیم شود، پارامتر syslog only را لغو می‌کند.

Default: syslog only = no

template homedir (G)

هنگام تکمیل اطلاعات کاربر برای یک کاربر Windows NT، دیمن winbindd(8) از این پارامتر برای تعیین دایرکتوری خانگی آن کاربر استفاده می‌کند. اگر رشته %D وجود داشته باشد، با نام دامنه Windows NT کاربر جایگزین می‌شود. اگر رشته %U وجود داشته باشد، با نام کاربری Windows NT کاربر جایگزین می‌شود.

Default: template homedir = /home/%D/%U

template shell (G)

هنگام تکمیل اطلاعات کاربر برای یک کاربر Windows NT، دیمن winbindd(8) از این پارامتر برای تعیین پوسته ورود (login shell) آن کاربر استفاده می‌کند.

Default: template shell = /bin/false

time server (G)

این پارامتر مشخص می‌کند که آیا nmbd(8) خود را به عنوان یک سرور زمان به کلاینت‌های Windows اعلان کند یا خیر.

Default: time server = no

debug timestamp

این پارامتر مترادفی برای timestamp logs است.

timestamp logs (G)

پیام‌های لاگ اشکال‌زدایی سامبا به‌طور پیش‌فرض دارای برچسب زمانی هستند. اگر در debug level بالایی برنامه را اجرا می‌کنید، این برچسب‌های زمانی می‌توانند مخل تمرکز باشند. این پارامتر بولی امکان غیرفعال کردن برچسب‌های زمانی را فراهم می‌کند.

Default: timestamp logs = yes

tls ca directories (G)

این گزینه می‌تواند روی فهرستی از دایرکتوری‌ها حاوی فایل‌هایی (در قالب PEM) تنظیم شود که شامل گواهی‌های CA مربوط به CAهای ریشه مورد اعتماد برای امضای گواهی‌ها یا گواهی‌های میانی CA هستند.

No default

tls cafile (G)

این گزینه می‌تواند روی فایلی (قالب PEM) حاوی گواهی‌های CA مربوط به CAهای ریشه مورد اعتماد برای امضای گواهی‌ها یا گواهی‌های میانی CA تنظیم شود.

اگر مسیر با / آغاز نشود، این مسیر نسبت به private dir خواهد بود.

Default: tls cafile = tls/ca.pem

tls certfile (G)

این گزینه می‌تواند روی فایلی (قالب PEM) حاوی گواهی RSA جهت استفاده به عنوان گواهی سرور TLS تنظیم شود. در صورت نیاز، این فایل می‌تواند حاوی گواهی‌های میانی اضافی نیز باشد تا در طول دست‌تکانی (handshake) TLS ارسال شوند.

اگر مسیر با / آغاز نشود، این مسیر نسبت به private dir خواهد بود.

Default: tls certfile = tls/cert.pem

tls crlfile (G)

این گزینه می‌تواند روی فایلی حاوی یک فهرست ابطال گواهی (CRL) تنظیم شود.

اگر مسیر با / آغاز نشود، این مسیر نسبت به private dir خواهد بود.

Default: tls crlfile =

tls dh params file (G)

این گزینه می‌تواند روی فایلی حاوی پارامترهای Diffie-Hellman تنظیم شود که همراه با رمزهای DH استفاده خواهد شد.

اگر مسیر با / آغاز نشود، این مسیر نسبت به private dir خواهد بود.

Default: tls dh params file =

tls enabled (G)

اگر این گزینه روی yes تنظیم شود، سامبا در صورت امکان در ارتباطات از TLS استفاده خواهد کرد.

Default: tls enabled = yes

tls keyfile (G)

این گزینه می‌تواند روی فایلی (قالب PEM) حاوی کلید خصوصی RSA تنظیم شود. این فایل باید بدون عبارت عبور (passphrase) در دسترس باشد، یعنی نباید رمزگذاری شده باشد.

اگر مسیر با / آغاز نشود، این مسیر نسبت به private dir خواهد بود.

Default: tls keyfile = tls/key.pem

tls priority (G)

این گزینه می‌تواند روی رشته‌ای تنظیم شود که پروتکل‌های TLS پشتیبانی‌شده در بخش‌هایی از سامبا که از GnuTLS استفاده می‌کنند، به‌ویژه AD DC را توصیف می‌کند.

این رشته به انتهای فهرست اولویت پیش‌فرض GnuTLS افزوده می‌شود.

گزینه‌های معتبر در مستندات اولویت‌بندی رشته‌های GNUTLS در نشانی http://gnutls.org/manual/html_node/Priority-Strings.html توصیف شده‌اند.

پروتکل SSL3.0 غیرفعال خواهد شد.

Default: tls priority = NORMAL:-VERS-SSL3.0

tls trust system cas (G)

با این گزینه، از CAهای مورد اعتماد پیش‌فرض سیستم برای اعتماد به اتصالات SSL/TLS استفاده می‌شود.

لطفاً با احتیاط از این گزینه استفاده کنید، زیرا این کار در واقع به معنای اعتماد به تمامی CAهای نصب‌شده روی سیستم است!

Default: tls trust system cas = no

tls verify peer (G)

این گزینه کنترل می‌کند که آیا کلاینت، گواهی و نام طرف مقابل را تأیید اعتبار کند یا خیر و این کار با چه میزان سخت‌گیری انجام شود. مقادیر ممکن (به ترتیب افزایش سخت‌گیری) عبارتند از: no_check، ca_only، ca_and_name_if_available، ca_and_name و as_strict_as_possible.

هنگامی که روی no_check تنظیم شود، گواهی اصلاً بررسی نمی‌شود، که این امر امکان حملات ساده مرد میانی (man-in-the-middle) را فراهم می‌سازد.

هنگامی که روی ca_only تنظیم شود، بررسی می‌شود که گواهی توسط یک CA مشخص‌شده در گزینه tls ca file امضا شده باشد. به عنوان جایگزین می‌توان از tls ca directories یا tls trust system cas استفاده کرد. ارائه حداقل یک گواهی معتبر CA الزامی است. طول عمر گواهی نیز بررسی می‌شود. اگر گزینه tls crl file پیکربندی شده باشد، گواهی در برابر CRL مربوط به CA نیز بررسی خواهد شد.

هنگامی که روی ca_and_name_if_available تنظیم شود، تمام بررسی‌های ca_only انجام می‌شوند. علاوه بر این، در صورتی که نام میزبان طرف مقابل توسط لایه کاربرد ارائه شده باشد و به صورت رشته آدرس IP داده نشده باشد، با نام گواهی تطبیق داده می‌شود.

هنگامی که روی ca_and_name تنظیم شود، تمام بررسی‌های ca_and_name_if_available انجام می‌شوند. افزون بر این، نام میزبان طرف مقابل باید ارائه شود و حتی آدرس IP نیز در برابر نام گواهی بررسی می‌شود.

هنگامی که روی as_strict_as_possible تنظیم شود، تمام بررسی‌های ca_and_name انجام می‌شوند. علاوه بر این، گزینه tls crl file باید پیکربندی شده باشد. نسخه‌های بعدی سامبا ممکن است بررسی‌های بیشتری را پیاده‌سازی کنند.

Default: tls verify peer = as_strict_as_possible

unicode (G)

مشخص می‌کند که آیا سرور و کلاینت باید از unicode پشتیبانی کنند یا خیر.

اگر این گزینه روی false تنظیم شود، استفاده از ASCII اجباری خواهد شد.

Default: unicode = yes

unix charset (G)

مجموعه نویسه‌ای (charset) را مشخص می‌کند که ماشین یونیکسی که سامبا روی آن اجرا می‌شود، استفاده می‌کند. سامبا برای اینکه بتواند متون را به مجموعه‌های نویسه‌ای مورد استفاده سایر کلاینت‌های SMB تبدیل کند، باید این موضوع را بداند.

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

Default: unix charset = UTF-8

Example: unix charset = ASCII

unix password sync (G)

این پارامتر بولی کنترل می‌کند که آیا سامبا هنگام تغییر گذرواژه رمزگذاری‌شده SMB در فایل smbpasswd، تلاش کند گذرواژه UNIX را با گذرواژه SMB همگام‌سازی کند یا خیر. اگر این پارامتر روی yes تنظیم شود، برنامه‌ای که در پارامتر passwd program مشخص شده است، AS ROOT (با دسترسی مدیر سیستم/ریشه) فراخوانی می‌شود - تا امکان تنظیم گذرواژه جدید UNIX بدون دسترسی به گذرواژه قدیمی UNIX فراهم گردد (زیرا کد تغییر گذرواژه SMB به متن آشکار گذرواژه قدیمی دسترسی ندارد، بلکه تنها به گذرواژه جدید دسترسی دارد).

اگر samba به عنوان یک کنترل‌کننده دامنه اکتیو دایرکتوری (Active Directory Domain Controller) در حال اجرا باشد، این گزینه هیچ تأثیری نخواهد داشت؛ در آن حالت به گزینه password hash gpg key ids و دستور samba-tool user syncpasswords مراجعه کنید.

Default: unix password sync = no

use client driver (S)

این پارامتر تنها برای کلاینت‌های Windows NT/2000 اعمال می‌شود. این پارامتر هیچ تأثیری بر کلاینت‌های Windows 95/98/ME ندارد. هنگام ارائه چاپگر به کلاینت‌های Windows NT/2000 بدون نصب قبلی یک درایور چاپگر معتبر روی میزبان سامبا، کلاینت ملزم به نصب درایور چاپگر محلی خواهد شد. از این نقطه به بعد، کلاینت با این چاپگر به عنوان یک چاپگر محلی رفتار خواهد کرد و نه یک اتصال چاپگر شبکه‌ای. این رفتار بسیار شبیه رفتاری است که هنگام disable spoolss = yes رخ می‌دهد.

عامل متمایزکننده این است که در شرایط عادی، کلاینت NT/2000 تلاش خواهد کرد چاپگر شبکه را با استفاده از MS-RPC باز کند. مشکل اینجاست که چون کلاینت چاپگر را محلی می‌داند، تلاش خواهد کرد فراخوانی OpenPrinterEx() را با درخواست حقوق دسترسی مرتبط با کاربر واردشده صادر کند. اگر کاربر دارای حقوق مدیر محلی (administrator) باشد اما دسترسی root روی میزبان سامبا نداشته باشد (که اغلب چنین است)، فراخوانی OpenPrinterEx() با شکست مواجه خواهد شد. در نتیجه، اکنون کلاینت پیام "Access Denied; Unable to connect" را در پنجره صف چاپگر نمایش می‌دهد (هرچند ممکن است کارها با موفقیت چاپ شوند).

اگر این پارامتر برای یک چاپگر فعال شود، هرگونه تلاش برای باز کردن چاپگر با حق دسترسی PRINTER_ACCESS_ADMINISTER، به جای آن به PRINTER_ACCESS_USE نگاشت می‌شود. در نتیجه به فراخوانی OpenPrinterEx() اجازه موفقیت می‌دهد. این پارامتر نباید روی یک اشتراک چاپ که درایور چاپ معتبری روی سرور سامبا برای آن نصب شده است فعال شود.

Default: use client driver = no

use mmap (G)

این پارامتر سراسری مشخص می‌کند که آیا سازوکارهای داخلی tdb سامبا می‌توانند به عملکرد صحیح mmap روی سیستم در حال اجرا وابسته باشند یا خیر. سامبا نیازمند یک حافظه موقت (cache) سیستمی هماهنگ و یکپارچه بین mmap و خواندن/نوشتن (read-write) است. در حال حاضر فقط OpenBSD و HPUX فاقد چنین حافظه موقت یکپارچه‌ای هستند، و در آن پلتفرم‌ها این پارامتر به‌صورت داخلی نادیده گرفته شده و عملاً به no تبدیل می‌شود. در تمام سیستم‌ها این پارامتر باید به حال خود رها شود. این پارامتر برای کمک به توسعه‌دهندگان سامبا جهت ردیابی مشکلات در کد داخلی tdb ارائه شده است.

Default: use mmap = yes

username level (G)

این گزینه به سامبا کمک می‌کند تا نام کاربری واقعی UNIX را «حدس» بزند، زیرا بسیاری از کلاینت‌های DOS نام کاربری را با حروف تماماً بزرگ ارسال می‌کنند. به‌طور پیش‌فرض، سامبا حالت تماماً حروف کوچک، و سپس نام کاربری با حرف اول بزرگ را امتحان می‌کند، و در صورتی که نام کاربری روی ماشین UNIX یافت نشود، ناموفق خواهد بود.

اگر این پارامتر روی مقداری غیر از صفر تنظیم شود، این رفتار تغییر می‌کند. این پارامتر عددی است که تعداد ترکیب‌های حروف بزرگ را که باید هنگام تعیین نام کاربری UNIX آزموده شوند، مشخص می‌کند. هر چه این عدد بزرگ‌تر باشد، ترکیب‌های بیشتری آزمایش می‌شوند، اما روند کشف نام‌های کاربری کندتر خواهد بود. هنگامی که نام‌های کاربری نامتعارفی روی ماشین UNIX خود دارید، مانند AstrangeUser ، از این پارامتر استفاده کنید.

این پارامتر تنها در سیستم‌های UNIX که نام‌های کاربری حساس به حروف بزرگ و کوچک دارند، مورد نیاز است.

Default: username level = 0

Example: username level = 5

username map (G)

این گزینه به شما امکان می‌دهد فایلی حاوی نگاشت نام‌های کاربری از کلاینت‌ها به سرور را مشخص کنید. این مورد می‌تواند برای چندین منظور استفاده شود. رایج‌ترین کاربرد آن نگاشت نام‌های کاربری است که کاربران در ماشین‌های DOS یا Windows استفاده می‌کنند به نام‌هایی که ماشین UNIX به کار می‌برد. کاربرد دیگر نگاشت چندین کاربر به یک نام کاربری واحد است تا بتوانند آسان‌تر فایل‌ها را به اشتراک بگذارند.

لطفاً توجه داشته باشید که برای امنیت در سطح کاربر (user mode security)، username map پیش از اعتبارسنجی مشخصات کاربر اعمال می‌شود. سرورهای عضو دامنه (domain یا ads) نگاشت نام کاربری را پس از اینکه کاربر با موفقیت توسط کنترل‌کننده دامنه احراز هویت شد اعمال می‌کنند و نیازمند مدخل‌های کاملاً واجد شرایط (fully qualified) در جدول نگاشت هستند (مانند biddle = DOMAIN\foo).

فایل نگاشت خط به خط پردازش می‌شود. هر خط باید شامل یک نام کاربری UNIX منفرد در سمت چپ، سپس یک '=' و به دنبال آن فهرستی از نام‌های کاربری در سمت راست باشد. فهرست نام‌های کاربری در سمت راست ممکن است شامل نام‌هایی به فرمت @group باشد که در این صورت با هر نام کاربری UNIX در آن گروه مطابقت خواهند داشت. نام کلاینت ویژه '*' یک نویسه عام (wildcard) است و با هر نامی مطابقت می‌یابد. هر خط از فایل نگاشت می‌تواند تا ۱۰۲۳ نویسه طول داشته باشد.

این فایل روی هر خط با گرفتن نام کاربری ارائه‌شده و مقایسه آن با هر نام کاربری در سمت راست نمادهای '=' پردازش می‌شود. اگر نام ارائه‌شده با هر یک از نام‌های سمت راست مطابقت داشته باشد، با نام سمت چپ جایگزین می‌شود. سپس پردازش با خط بعدی ادامه می‌یابد.

اگر خطی با '#' یا ';' آغاز شود، نادیده گرفته می‌شود.

اگر خطی با '!' آغاز شود، در صورتی که توسط آن خط نگاشتی انجام گیرد، پردازش پس از آن خط متوقف خواهد شد. در غیر این صورت، نگاشت با پردازش تمام خطوط ادامه می‌یابد. استفاده از '!' بیش از همه زمانی مفید است که یک خط نگاشت عام (wildcard) در ادامه فایل داشته باشید.

به عنوان مثال، برای نگاشت نام admin یا administrator به نام یونیکسی root از این الگو استفاده خواهید کرد:

root = admin administrator

یا برای نگاشت هر کاربری در گروه یونیکسی system به نام یونیکسی sys از این الگو استفاده خواهید کرد:

sys = @system

می‌توانید هر تعداد نگاشت که مایل باشید در فایل username map داشته باشید.

اگر سیستم شما از گزینه NIS NETGROUP پشتیبانی کند، پایگاه داده netgroup پیش از پایگاه داده /etc/group برای یافتن گروه‌های منطبق بررسی می‌شود.

می‌توانید نام‌های کاربری Windows را که در آن‌ها فاصله (space) وجود دارد با قرار دادن علامت نقل‌قول دوتایی در اطراف نام، نگاشت کنید. برای مثال:

tridge = "Andrew Tridgell"

نام کاربری ویندوزی "Andrew Tridgell" را به نام کاربری یونیکسی "tridge" نگاشت می‌کند.

مثال زیر mary و fred را به کاربر یونیکسی sys نگاشت می‌کند و مابقی را به guest نگاشت خواهد داد. به استفاده از '!' برای اعلام توقف پردازش به سامبا در صورت یافتن تطابق در آن خط دقت کنید:

!sys = mary fred
guest = *

توجه داشته باشید که نگاشت مجدد برای تمام رخدادهای نام‌های کاربری اعمال می‌شود. بنابراین اگر به \\server\fred متصل شوید و fred به mary نگاشت مجدد شده باشد، در واقع شما به \\server\mary متصل می‌شوید و باید گذرواژه‌ای مناسب برای mary ارائه دهید نه fred. تنها استثنا برای این مورد، نام کاربری ارسال‌شده به یک کنترل‌کننده دامنه (در صورت وجود) است. کنترل‌کننده دامنه هر نام کاربری که کلاینت ارائه دهد را بدون تغییر دریافت خواهد کرد.

همچنین توجه داشته باشید که هیچ نگاشت معکوسی انجام نمی‌شود. اثر اصلی این موضوع در بخش چاپ است. کاربرانی که نگاشت شده‌اند ممکن است هنگام حذف کارهای چاپی دچار مشکل شوند زیرا PrintManager تحت WfWg تصور خواهد کرد آن‌ها مالک کار چاپی نیستند.

نسخه‌های سامبا پیش از 3.0.8 فقط هنگام انجام ورود Kerberos از طرف یک کلاینت، از خواندن نام کاربری کامل (مانند: DOMAIN\user) از username map پشتیبانی می‌کردند. با این حال، هنگام جستجوی یک مدخل نگاشت برای کاربری که با NTLM[SSP] احراز هویت شده بود، فقط از نام ورود برای تطابق استفاده می‌شد. این امر منجر به رفتاری ناسازگار، حتی گاهی روی یک سرور می‌شد.

عملکرد زیر در نسخه 3.0.8 و بالاتر رعایت می‌شود:

هنگام انجام احراز هویت محلی، username map پیش از تلاش برای احراز هویت اتصال، روی نام ورود اعمال می‌شود.

هنگام تکیه بر یک کنترل‌کننده دامنه خارجی برای اعتبارسنجی درخواست‌های احراز هویت، smbd تنها پس از احراز هویت موفقیت‌آمیز کاربر، username map را روی نام کاربری کامل (یعنی DOMAIN\user) اعمال می‌کند.

یک مثال از نحوه استفاده:

username map = /usr/local/samba/lib/users.map

Default: username map = # no username map

username map cache time (G)

نگاشت نام‌های کاربری با قابلیت‌های username map یا username map script سامبا می‌تواند نسبتاً پرهزینه باشد. هنگام ورود به سیستم یک کاربر، نگاشت چندین بار انجام می‌شود. به ویژه، فراخوانی username map script در صورتی که اسکریپت فراخوانی‌شده نیازمند پرس‌وجو از پایگاه‌های داده خارجی باشد، می‌تواند سرعت ورود به سیستم را کاهش دهد.

پارامتر username map cache time حافظه موقت (کَش) نگاشت را کنترل می‌کند. این پارامتر تعداد ثانیه‌هایی را مشخص می‌کند که طی آن نگاشت حاصل از فایل username map یا اسکریپت به‌صورت کارآمد ذخیره موقت می‌شود. مقدار پیش‌فرض 0 به این معنی است که هیچ کش کردنی انجام نمی‌شود.

Default: username map cache time = 0

Example: username map cache time = 60

username map script (G)

این اسکریپت جایگزینی مانعةالجمع برای پارامتر username map است. این پارامتر یک برنامه یا اسکریپت خارجی را مشخص می‌کند که باید یک گزینه خط فرمان منفرد (نام کاربری منتقل‌شده در درخواست احراز هویت) را بپذیرد و یک خط را در خروجی استاندارد (نامی که حساب باید به آن نگاشت شود) بازگرداند. به این ترتیب، امکان ذخیره‌سازی جداول نگاشت نام کاربری در سرویس‌های دایرکتوری LDAP فراهم می‌شود.

Default: username map script =

Example: username map script = /etc/samba/scripts/mapusers.sh

usershare allow guests (G)

این پارامتر کنترل می‌کند که آیا کاربران احراز هویت‌نشده اجازه دسترسی به اشتراک‌های تعریف‌شده توسط کاربر را دارند یا خیر. این پارامتر معادل دادن این امکان به ایجادکنندگان اشتراک است تا گزینه guest ok = yes را در تعریف اشتراک تنظیم کنند. با توجه به ماهیت حساس امنیتی آن، مقدار پیش‌فرض روی off (غیرفعال) تنظیم شده است.

Default: usershare allow guests = no

usershare max shares (G)

این پارامتر تعداد اشتراک‌های تعریف‌شده توسط کاربر را مشخص می‌کند که ایجاد آن‌ها توسط کاربران متعلق به گروه مالک دایرکتوری usershare مجاز است. در صورت تنظیم روی صفر (پیش‌فرض)، اشتراک‌های تعریف‌شده توسط کاربر نادیده گرفته می‌شوند.

Default: usershare max shares = 0

usershare owner only (G)

این پارامتر کنترل می‌کند که آیا مسیر صادرشده توسط اشتراک‌های تعریف‌شده توسط کاربر باید متعلق به کاربری باشد که اشتراک را ایجاد می‌کند یا خیر. در صورت تنظیم روی True (پیش‌فرض)، دیمن smbd بررسی می‌کند که مسیر دایرکتوری در حال اشتراک متعلق به کاربری باشد که مالک فایل usershare تعریف‌کننده این اشتراک است، و در غیر این صورت از ایجاد اشتراک خودداری می‌کند. اگر روی False تنظیم شود، چنین بررسی انجام نمی‌شود و هر مسیر دایرکتوری صرف‌نظر از مالک آن می‌تواند صادر شود.

Default: usershare owner only = yes

usershare path (G)

این پارامتر مسیر مطلق دایرکتوری روی سیستم‌فایل را مشخص می‌کند که برای ذخیره فایل‌های تعریف اشتراک‌های تعریف‌شده توسط کاربر استفاده می‌شود. این دایرکتوری باید در مالکیت root باشد، هیچ دسترسی برای دیگران (other) نداشته باشد، و فقط توسط گروه مالک قابل نوشتن باشد. علاوه بر این، بیت «sticky» نیز باید تنظیم شود، که تغییر نام و حذف را به مالکان فایل محدود می‌کند (به همان شیوه‌ای که دایرکتوری /tmp معمولاً پیکربندی می‌شود). اعضای گروه مالک این دایرکتوری، کاربرانی هستند که مجاز به ایجاد usershareها می‌باشند.

برای مثال، یک دایرکتوری معتبر usershare می‌تواند /usr/local/samba/lib/usershares باشد که به صورت زیر برپا شده است.

ls -ld /usr/local/samba/lib/usershares/
drwxrwx--T  2 root power_users 4096 2006-05-05 12:27 /usr/local/samba/lib/usershares/

در این حالت، فقط اعضای گروه «power_users» می‌توانند اشتراک‌های تعریف‌شده توسط کاربر را ایجاد کنند.

Default: usershare path = /var/lib/samba/usershares

usershare prefix allow list (G)

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

اگر هم «usershare prefix deny list» و هم «usershare prefix allow list» وجود داشته باشد، ابتدا فهرست deny و سپس فهرست allow پردازش می‌شود که منجر به سخت‌گیرانه‌ترین حالت تفسیر می‌گردد.

Default: usershare prefix allow list =

Example: usershare prefix allow list = /home /data /space

usershare prefix deny list (G)

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

اگر هم «usershare prefix deny list» و هم «usershare prefix allow list» وجود داشته باشد، ابتدا فهرست deny و سپس فهرست allow پردازش می‌شود که منجر به سخت‌گیرانه‌ترین حالت تفسیر می‌گردد.

Default: usershare prefix deny list =

Example: usershare prefix deny list = /etc /dev /private

usershare template share (G)

اشتراک‌های تعریف‌شده توسط کاربر تنها پارامترهای ممکن محدودی مانند path، guest ok و غیره دارند. این پارامتر امکان «شبیه‌سازی» (کلون) usershareها را از یک اشتراک موجود فراهم می‌کند. اگر «usershare template share» روی نام یک اشتراک موجود تنظیم شود، تمام usershareهای ایجادشده مقادیر پیش‌فرض خود را از پارامترهای تعیین‌شده روی آن اشتراک می‌گیرند.

اشتراک هدف می‌تواند با تنظیم پارامتر «-valid = False» در تعریف اشتراک الگو، برای اشتراک‌گذاری واقعی فایل نامعتبر اعلام شود. این کار باعث می‌شود به عنوان یک اشتراک صادرشده واقعی دیده نشود، اما همچنان بتواند به عنوان یک الگو برای usershareها مورد استفاده قرار گیرد.

Default: usershare template share =

Example: usershare template share = template_share

use sendfile (S)

اگر این پارامتر yes باشد و فراخوانی سیستمی sendfile() توسط سیستم‌عامل زیربنایی پشتیبانی شود، آنگاه برخی از فراخوانی‌های خواندن SMB (عمدتاً ReadAndX و ReadRaw) برای فایل‌هایی که دارای قفل انحصاری oplock هستند، از فراخوانی سیستمی کارآمدتر sendfile استفاده خواهند کرد. این کار ممکن است استفاده بهینه‌تری از پردازنده‌های سیستم به عمل آورد و باعث افزایش سرعت Samba شود. سامبا این قابلیت را به طور خودکار برای کلاینت‌هایی که از سطوح پروتکل پایین‌تر از NT LM 0.12 استفاده می‌کنند، و همچنین در صورت تشخیص کلاینت مبتنی بر Windows 9x، غیرفعال می‌کند (استفاده از sendfile از سمت لینوکس باعث خرابی در این کلاینت‌ها می‌شود).

Default: use sendfile = no

utmp (G)

این پارامتر بولی (boolean) فقط زمانی در دسترس است که سامبا با گزینه --with-utmp پیکربندی و کامپایل شده باشد. اگر روی yes تنظیم شود، سامبا هنگام برقراری هر اتصال به سرور سامبا تلاش خواهد کرد رکوردهای utmp یا utmpx (بسته به سیستم یونیکس) را ثبت کند. مجموعه‌ها می‌توانند از این ویژگی برای ثبت کاربر متصل‌شده به یک اشتراک سامبا استفاده کنند.

به دلیل الزامات رکورد utmp، ما ملزم به ایجاد یک شناسه منحصربه‌فرد برای کاربر ورودی هستیم. فعال کردن این گزینه یک الگوریتم با پیچیدگی n^2 برای یافتن این شماره ایجاد می‌کند. این موضوع ممکن است کارایی را در سامانه‌های بزرگ کاهش دهد.

Default: utmp = no

utmp directory (G)

این پارامتر فقط زمانی در دسترس است که سامبا با گزینه --with-utmp پیکربندی و کامپایل شده باشد. این پارامتر مسیر دایرکتوری‌ای را مشخص می‌کند که برای ذخیره فایل‌های utmp یا utmpx (بسته به سیستم یونیکس) که اتصالات کاربر به سرور سامبا را ثبت می‌کنند، استفاده می‌شود. به طور پیش‌فرض این پارامتر تنظیم نشده است، به این معنی که سیستم از هر فایل utmp که سیستم محلی برای استفاده تنظیم کرده است استفاده خواهد کرد (معمولاً در لینوکس /var/run/utmp است).

Default: utmp directory = # Determined automatically

Example: utmp directory = /var/run/utmp

-valid (S)

این پارامتر مشخص می‌کند که آیا یک اشتراک معتبر است و در نتیجه می‌تواند مورد استفاده قرار گیرد یا خیر. هنگامی که این پارامتر روی false تنظیم شود، اشتراک به هیچ وجه قابل مشاهده یا دسترسی نخواهد بود.

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

Default: -valid = yes

valid users (S)

این فهرستی از کاربرانی است که باید اجازه ورود به این سرویس را داشته باشند. نام‌هایی که با '@'، '+' و '&' شروع می‌شوند، با استفاده از همان قوانینی تفسیر می‌شوند که در پارامتر invalid users شرح داده شده است.

اگر خالی باشد (پیش‌فرض)، هر کاربری می‌تواند وارد شود. اگر یک نام کاربری هم در این فهرست و هم در فهرست invalid users باشد، دسترسی برای آن کاربر رد می‌شود.

نام سرویس فعلی به جای %S جایگزین می‌شود. این ویژگی در بخش [homes] کاربرد دارد.

نکته: در صورت استفاده در بخش [global]، این پارامتر ممکن است عوارض جانبی ناخواسته‌ای داشته باشد. برای مثال: اگر سامبا به عنوان یک MASTER BROWSER پیکربندی شده باشد (ببینید: local master، os level، domain master، preferred master)، این گزینه مانع از امکان مرور شبکه توسط ایستگاه‌های کاری (workstations) خواهد شد.

Default: valid users = # No valid users list (anyone can login)

Example: valid users = greg, @pcusers

veto files (S)

این فهرستی از فایل‌ها و دایرکتوری‌هایی است که نه قابل مشاهده هستند و نه قابل دسترس. هر مدخل در فهرست باید با یک '/' جدا شود، که امکان گنجاندن فاصله‌ها را در مدخل فراهم می‌کند. می‌توان از '*' و '?' برای مشخص کردن چندین فایل یا دایرکتوری مانند نویسه‌های عمومی (wildcards) داس استفاده کرد.

veto files همچنین می‌تواند به عنوان یک گزینه پارامتری استفاده شود که در آن NAME در

veto files : NAME =

یک نام کاربری یا گروهی را با همان ساختار نحوی valid users مشخص می‌کند. این شکل پارامتری می‌تواند چندین بار برای کاربران یا گروه‌های مختلف مشخص شود. این بدان معناست که «veto files : NAME» تنظیم‌شده در هر دو بخش [global] و بخش اشتراک با هم جمع می‌شوند، در حالی که معمولاً گزینه‌های تنظیم‌شده در یک بخش اشتراک، مقدار پیش‌فرض را در بخش [global] بازنویسی می‌کنند.

هر نام فایل باید یک مسیر یونیکس باشد، نه مسیر داس، و نباید شامل جداکننده دایرکتوری یونیکس '/' باشد.

توجه داشته باشید که گزینه case sensitive در وتو کردن فایل‌ها اعمال می‌شود.

یکی از ویژگی‌های پارامتر veto files که آگاهی از آن اهمیت دارد، رفتار سامبا هنگام تلاش برای حذف یک دایرکتوری است. اگر دایرکتوری که قرار است حذف شود چیزی به جز فایل‌های وتوشده نداشته باشد، این حذف شکست خواهد خورد مگر اینکه پارامتر delete veto files را نیز روی yes تنظیم کرده باشید.

تنظیم این پارامتر بر کارایی سامبا تأثیر خواهد گذاشت، زیرا هنگام پیمایش همه فایل‌ها و دایرکتوری‌ها مجبور به بررسی تطابق آن‌ها خواهد بود.

مثال‌های استفاده عبارتند از:

; وتو کردن هر فایلی که شامل کلمه Security است،
; هر فایلی که به .tmp ختم می‌شود، و هر دایرکتوری شامل
; کلمه root.
veto files = /*Security*/*.tmp/*root*/
; وتو کردن برخی فایل‌ها برای همه و برخی برای کاربران و گروه‌های خاص
veto files = /vetoforall1/
veto files : USER = /vetotoforuser/
veto files : GROUP = /vetoforgroup/
veto files : UNIVERSITY\Alumnis = /somefile.txt/
veto files : john@university.org = /anotherfile.txt/
veto files : S-1-5-21-123-456-789-1000 = /secretfile.txt/
; وتو کردن فایل‌های خاص Apple که توسط یک سرور
; NetAtalk ایجاد می‌شود.
veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/

Default: veto files = # No files or directories are vetoed

veto oplock files (S)

این پارامتر فقط زمانی معتبر است که پارامتر oplocks برای یک اشتراک فعال باشد. این پارامتر به مدیر سامبا اجازه می‌دهد اعطای oplock را به طور انتخابی روی فایل‌های منطبق با یک فهرست الگویی (wildcard) غیرفعال کند؛ مشابه فهرست wildcard مورد استفاده در پارامتر veto files.

ممکن است بخواهید این کار را برای فایل‌هایی انجام دهید که می‌دانید کلاینت‌ها تقاضا و رقابت بالایی برای آن‌ها خواهند داشت. یک نمونه خوب از این مورد در برنامه محک SMB با نام NetBench است که باعث رقابت شدید کلاینت‌ها برای فایل‌های با پسوند .SEM می‌شود. برای اینکه سامبا روی این فایل‌ها oplock اعطا نکند، می‌توانید از این خط (چه در بخش [global] و چه در بخش مربوط به آن اشتراک خاص NetBench) استفاده کنید.

نمونه‌ای از کاربرد:

veto oplock files = /.*SEM/

Default: veto oplock files = # No files are vetoed for oplock grants

vfs mkdir use tmp name (S)

ایجاد یک دایرکتوری جدید برای یک کلاینت SMB وظیفه بسیار پیچیده‌ای است! این کار شامل مواردی مانند توارث دسترسی‌ها از دایرکتوری والد و ذخیره‌سازی ویژگی‌های DOS است.

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

این گزینه یک نوع شمارشی (enumerated) است که استفاده از یک نام دایرکتوری موقت را کنترل می‌کند. هنگامی که این گزینه روی yes تنظیم شود، پیشوند '.::TMPNAME:D:$SERVERID:' به ابتدای نام دایرکتوری افزوده می‌شود (که در آن $SERVERID یک شناسه یکتا برای فرایند جاری است).

هنگامی که این گزینه روی Auto (پیش‌فرض) تنظیم شده باشد، در صورتی که حداقل یکی از گزینه‌های زیر در عمل روی no تنظیم نشده باشد، سرور از یک نام دایرکتوری موقت استفاده می‌کند: inherit acls، inherit owner، inherit permissions، nt acl support یا store dos attributes. توجه داشته باشید که در OpenBSD مقدار Auto (پیش‌فرض) به no نگاشت می‌شود، ببینید: https://bugzilla.samba.org/show_bug.cgi?id=15801.

اشتراک‌گذاری مجدد (re-export) یک نقطه اتصال SMB/CIFS ممکن است یکی از موارد نادری باشد که در آن vfs mkdir use tmp name = no می‌تواند مفید واقع شود.

در بیشتر موارد باید مقدار vfs mkdir use tmp name = Auto حفظ شود.

Default: vfs mkdir use tmp name = Auto

vfs object

این پارامتر مترادفی برای vfs objects است.

vfs objects (S)

این پارامتر نام‌های بک‌اندی (backend) را مشخص می‌کند که برای عملیات ورودی/خروجی (I/O) VFS در سامبا استفاده می‌شوند. به‌طور پیش‌فرض، عملیات عادی ورودی/خروجی دیسک استفاده می‌شود اما می‌توان آن‌ها را با یک یا چند شیء VFS (یا VFS objects) جایگزین یا بازتعریف کرد. توجه داشته باشید که تعریف این پارامتر، هرگونه تعریف قبلی احتمالی پارامتر vfs objects را رونویسی (overwrite) خواهد کرد.

Default: vfs objects =

Example: vfs objects = extd_audit recycle

volume (S)

این پارامتر به شما امکان می‌دهد برچسب حجم (volume label) بازگردانده شده برای یک اشتراک را بازنویسی کنید. این مورد برای CDROMهایی با برنامه‌های نصبی که روی یک برچسب حجم خاص اصرار دارند مفید است.

Default: volume = # the name of the share

volume serial number (S)

این پارامتر امکان بازنویسی شماره سریال حجم (volume serial number ‏- یک مقدار ۳۲ بیتی) گزارش‌شده برای یک اشتراک را فراهم می‌کند.

مقدار ویژه -1 (پیش‌فرض) نشان‌دهنده یک شماره یکتا است که برای هر اشتراک محاسبه می‌شود.

Default: volume serial number = -1

Example: volume serial number = 0xabcdefgh

wide links (S)

این پارامتر کنترل می‌کند که آیا پیوندها در سیستم‌فایل UNIX می‌توانند توسط سرور دنبال شوند یا خیر. پیوندهایی که به نواحی درون درخت دایرکتوری ارائه‌شده توسط سرور اشاره می‌کنند همیشه مجاز هستند؛ این پارامتر فقط دسترسی به نواحی خارج از درخت دایرکتوری در حال اشتراک را کنترل می‌کند.

نکته: فعال کردن این پارامتر در زمانی که افزونه‌های یونیکس (UNIX extensions) فعال هستند، به کلاینت‌های UNIX امکان می‌دهد پیوندهای نمادین (symbolic links) روی اشتراک ایجاد کنند که می‌توانند به فایل‌ها یا دایرکتوری‌های خارج از مسیر محدود صادرشده توسط تعریف اشتراک اشاره کنند. این امر می‌تواند موجب دسترسی به نواحی خارج از اشتراک شود. به دلیل این مشکل، در صورتی که گزینه unix extensions روشن باشد، این پارامتر به‌طور خودکار (همراه با پیامی در فایل لاگ) غیرفعال خواهد شد.

اگر مایلید این وابستگی میان دو پارامتر را تغییر دهید، پارامتر allow insecure wide links را ببینید.

Default: wide links = no

winbind cache time (G)

این پارامتر تعداد ثانیه‌هایی را مشخص می‌کند که دیمن winbindd(8) اطلاعات کاربر و گروه را پیش از پرس‌وجوی مجدد از یک سرور Windows NT در حافظه نهان (کَش) نگه می‌دارد.

این موضوع برای درخواست‌های احراز هویت اعمال نمی‌شود؛ این درخواست‌ها همیشه به‌صورت بلادرنگ (real time) ارزیابی می‌شوند مگر اینکه گزینه winbind offline logon فعال شده باشد.

Default: winbind cache time = 300

winbindd socket directory (G)

این تنظیم مکان سوکت دیمن winbind را کنترل می‌کند.

به جز در اسکریپت‌های آزمون خودکار، این مقدار نباید تغییر یابد، زیرا ابزارهای کلاینت (مانند nss_winbind و غیره) این پارامتر را رعایت نمی‌کنند. در صورت تغییر، ابزارهای کلاینت باید با استفاده از متغیر محیطی WINBINDD_SOCKET_DIR از مسیر تغییریافته مطلع شوند.

Default: winbindd socket directory = /run/samba/winbindd

winbind enum groups (G)

در پیاده‌سازی‌های بزرگ که از winbindd(8) استفاده می‌کنند، ممکن است لازم باشد شمارش (enumeration) گروه‌ها از طریق مجموعه فراخوان‌های سیستمی setgrent()، getgrent() و endgrent() متوقف شود. اگر پارامتر winbind enum groups بر روی no باشد، فراخوانی فراخوان سیستمی getgrent() هیچ داده‌ای بازنخواهد گرداند.

هشدار (Warning)
غیرفعال کردن شمارش گروه‌ها ممکن است باعث شود برخی برنامه‌ها رفتاری غیرعادی نشان دهند.
Default: winbind enum groups = no

winbind enum users (G)

در پیاده‌سازی‌های بزرگ که از winbindd(8) استفاده می‌کنند، ممکن است لازم باشد شمارش (enumeration) کاربران از طریق مجموعه فراخوان‌های سیستمی setpwent()، getpwent() و endpwent() متوقف شود. اگر پارامتر winbind enum users بر روی no باشد، فراخوانی فراخوان سیستمی getpwent هیچ داده‌ای بازنخواهد گرداند.

هشدار (Warning)
غیرفعال کردن شمارش کاربران ممکن است باعث شود برخی برنامه‌ها رفتاری غیرعادی نشان دهند. به عنوان مثال، برنامه finger هنگام جستجوی نام‌های کاربری منطبق، به داشتن دسترسی به کل فهرست کاربران متکی است.
Default: winbind enum users = no

winbind expand groups (G)

این گزینه حداکثر عمقی را که winbindd هنگام باز کردن و مسطح‌سازی (flattening) عضویت گروه‌های تو در تو در گروه‌های دامنه ویندوز پیمایش می‌کند، کنترل می‌نماید. این پارامتر با گزینه winbind nested groups که مدل گروه‌های محلی تو در توی Windows NT4 را پیاده‌سازی می‌کند متفاوت است. پارامتر «winbind expand groups» به‌طور خاص بر عضویت در گروه‌های دامنه اعمال می‌شود.

این گزینه همچنین بر بازگرداندن عضویت در گروه‌های غیر تو در توی کاربران دامنه ویندوز تأثیر می‌گذارد. با مقدار پیش‌فرض جدید «winbind expand groups = 0»، دیمن winbind عضویت در گروه‌ها را اصلاً پرس‌وجو نمی‌کند.

توجه داشته باشید که یک مقدار بالا برای این پارامتر می‌تواند منجر به کُند شدن سیستم شود، زیرا دیمن والد اصلی winbindd باید عملیات باز کردن گروه (group unrolling) را انجام دهد و در طول این مدت قادر به پاسخگویی به درخواست‌های ورودی NSS یا احراز هویت نخواهد بود.

مقدار پیش‌فرض در Samba 4.2 از ۱ به ۰ تغییر یافت. برخی از برنامه‌های معیوب (شامل برخی پیاده‌سازی‌های newgrp و sg) عضویت کاربران در گروه‌ها را با پیمایش گروه‌ها محاسبه می‌کنند؛ چنین برنامه‌هایی به «winbind expand groups = 1» نیاز خواهند داشت. اما مقدار پیش‌فرض جدید باعث پایداری و قابلیت اطمینان بیشتر winbindd می‌شود، زیرا نیازی به دسترسی SAMR به کنترل‌کننده‌های دامنه (Domain Controllers) در دامنه‌های مورد اعتماد ندارد.

Default: winbind expand groups = 0

winbind:ignore domains (G)

امکان وارد کردن فهرستی از دامنه‌های مورد اعتماد را فراهم می‌کند که winbind باید آن‌ها را نادیده بگیرد (نامعتبر بشمارد). این کار می‌تواند از سربار منابع ناشی از تلاش برای ورود به کنترل‌کننده‌های دامنه‌ای (DCs) که نباید با آن‌ها ارتباط برقرار شود، جلوگیری کند.

Default: winbind:ignore domains =

Example: winbind:ignore domains = DOMAIN1, DOMAIN2

winbind max clients (G)

این پارامتر حداکثر تعداد کلاینت‌هایی را مشخص می‌کند که دیمن winbindd(8) می‌تواند با آن‌ها ارتباط برقرار کند. این پارامتر یک محدودیت سخت (hard limit) نیست. دیمن winbindd(8) خود را طوری پیکربندی می‌کند که بتواند دست‌کم این تعداد اتصال را بپذیرد، و در صورت رسیدن به این حد، تلاش می‌شود کلاینت‌های بیکار (idle) قطع اتصال شوند.

Default: winbind max clients = 200

winbind max domain connections (G)

این پارامتر حداکثر تعداد اتصالات هم‌زمانی را که دیمن winbindd(8) باید به کنترل‌کننده دامنه (domain controller) یک دامنه باز کند مشخص می‌کند. تنظیم این پارامتر روی مقداری بزرگ‌تر از ۱ می‌تواند مقیاس‌پذیری را در مواجهه با درخواست‌های هم‌زمان متعدد winbind، که ممکن است برخی از آن‌ها کند باشند، بهبود بخشد. تغییر این مقدار نیازمند راه‌اندازی مجدد winbindd است.

توجه داشته باشید که اگر winbind offline logon روی Yes تنظیم شده باشد، صرف‌نظر از این تنظیم تنها یک اتصال DC به ازای هر دامنه مجاز خواهد بود.

Default: winbind max domain connections = 1

Example: winbind max domain connections = 10

winbind nested groups (G)

در صورت تنظیم روی yes، این پارامتر پشتیبانی از گروه‌های تو در تو (nested groups) را فعال می‌کند. گروه‌های تو در تو همچنین گروه‌های محلی (local groups) یا نام‌های مستعار (aliases) نیز نامیده می‌شوند. آن‌ها مانند همتایان خود در Windows عمل می‌کنند: گروه‌های تو در تو به‌طور محلی روی هر ماشین تعریف می‌شوند (از طریق SAM آن‌ها میان DCها به اشتراک گذاشته می‌شوند) و می‌توانند شامل کاربران و گروه‌های سراسری (global groups) از هر SAM مورد اعتمادی باشند. برای اینکه بتوانید از گروه‌های تو در تو استفاده کنید، نیاز است nss_winbind را اجرا نمایید.

Default: winbind nested groups = yes

winbind normalize names (G)

این پارامتر مشخص می‌کند که آیا winbindd نویسه‌های فاصله خالی (whitespace) در نام‌های کاربری و گروه را با یک نویسه زیرخط (_) جایگزین کند یا خیر. برای نمونه، اینکه آیا نام "Space Kadet" باید با رشته "space_kadet" جایگزین شود یا خیر. اسکریپت‌های شل Unix مکرراً به دلیل جداکننده فیلد پیش‌فرض در شل، با نام‌های کاربری حاوی فاصله دچار مشکل می‌شوند. اگر دامنه شما شامل نام‌هایی دارای نویسه زیرخط باشد، این گزینه ممکن است مشکلاتی ایجاد کند، مگر اینکه ویژگی نام مستعار (name aliasing) توسط افزونه nss_info شما پشتیبانی شود.

این ویژگی همچنین API نام مستعار را فعال می‌کند که می‌تواند برای تبدیل نام‌های کاربر و گروه دامنه به یک نسخه غیرصلاحیت‌دار (non-qualified) استفاده شود. لطفاً برای جزئیات نحوه پیکربندی نام مستعار برای یک پیکربندی خاص، به صفحه راهنمای افزونه‌های idmap و nss_info پیکربندی‌شده مراجعه کنید. نام مستعار بر مکانیزم جایگزینی فاصله که پیش‌تر شرح داده شد تقدم دارد (و با آن مانعة‌الجمع است).

Default: winbind normalize names = no

Example: winbind normalize names = yes

winbind nss info (G)

این پارامتر برای کنترل نحوه بازیابی اطلاعات سرویس نام (Name Service Information) توسط Winbind جهت ساخت دایرکتوری خانگی و شل ورود (login shell) کاربر طراحی شده است. در حال حاضر تنظیمات زیر موجود است:
•template - حالت پیش‌فرض، با استفاده از پارامترهای template shell و template homedir)
•<sfu | sfu20 | rfc2307 > - هنگامی که Samba با security = ads اجرا می‌شود و Domain Controller اکتیو دایرکتوری شما از اسکیمای LDAP مربوط به "Services for Unix" (SFU) مایکروسافت پشتیبانی می‌کند، winbind می‌تواند مشخصه‌های شل ورود و دایرکتوری خانگی را مستقیماً از سرور دایرکتوری شما بازیابی کند. برای SFU 3.0 یا 3.5 به سادگی "sfu" را انتخاب کنید، اگر از SFU 2.0 استفاده می‌کنید لطفاً "sfu20" را برگزینید.

توجه داشته باشید که برای بک‌اند idmap از نوع idmap_ad لازم است این تنظیمات را در بخش پیکربندی idmap مشخص کنید. حتماً به مستندات بک‌اند idmap مورد استفاده خود مراجعه فرمایید.

Default: winbind nss info = template

Example: winbind nss info = sfu

winbind offline logon (G)

این پارامتر برای کنترل این موضوع طراحی شده است که آیا Winbind باید اجازه ورود از طریق ماژول pam_winbind با استفاده از گواهی‌های اعتبارسنجی ذخیره‌شده در حافظه نهان (Cached Credentials) را بدهد یا خیر. در صورت فعال بودن، winbindd اعتبارهای کاربر حاصل از ورودهای موفقیت‌آمیز را به‌صورت رمزگذاری‌شده در یک حافظه نهان محلی ذخیره می‌کند.

Default: winbind offline logon = no

Example: winbind offline logon = yes

winbind reconnect delay (G)

این پارامتر تعداد ثانیه‌هایی را مشخص می‌کند که دیمن winbindd(8) بین تلاش‌ها برای برقراری ارتباط با یک Domain Controller برای دامنه‌ای که تشخیص داده شده از کار افتاده یا غیرقابل تماس است، منتظر خواهد ماند.

Default: winbind reconnect delay = 30

winbind refresh tickets (G)

این پارامتر برای کنترل این موضوع طراحی شده است که آیا Winbind باید بلیت‌های Kerberos بازیابی‌شده با استفاده از ماژول pam_winbind را نوسازی (refresh) کند یا خیر.

Default: winbind refresh tickets = no

Example: winbind refresh tickets = yes

winbind request timeout (G)

این پارامتر تعداد ثانیه‌هایی را مشخص می‌کند که دیمن winbindd(8) پیش از قطع اتصال یک کلاینت بدون درخواست‌های معلق (idle) یا اتصال کلاینتی که درخواستی از آن بیشتر از این تعداد ثانیه معلق مانده است (hung)، منتظر خواهد ماند.

Default: winbind request timeout = 60

winbind rpc only (G)

تنظیم این پارامتر روی yes دیمن winbindd را وادار می‌کند تا برای بازیابی اطلاعات از Domain Controllerها به جای LDAP از RPC استفاده کند.

Default: winbind rpc only = no

winbind scan trusted domains (G)

این گزینه تنها زمانی اثرگذار است که گزینه security روی domain یا ads تنظیم شده باشد. اگر روی yes تنظیم شود، winbindd به‌طور دوره‌ای تلاش می‌کند دامنه‌های مورد اعتماد (trusted domains) جدید را پویش کند و آن‌ها را به یک فهرست سراسری درون winbindd اضافه نماید. این فهرست می‌تواند با wbinfo --trusted-domains --verbose استخراج شود. تنظیم آن روی yes منطبق بر رفتار Samba 4.7 و نسخه‌های قدیمی‌تر است.

ساخت آن فهرست سراسری قابل اعتماد نبوده و اغلب در پیکربندی‌های اعتمادسازی پیچیده ناقص است. در بیشتر شرایط، این فهرست دیگر برای عملکرد صحیح winbindd مورد نیاز نیست؛ برای نمونه برای سرویس‌دهی ساده فایل از طریق SMB با استفاده از یک پیکربندی ساده idmap با autorid، tdb یا ad. با این حال برخی از پیکربندی‌های پیچیده‌تر به این فهرست نیاز دارند، مثلاً اگر بک‌اند‌های idmap را برای دامنه‌های خاصی مشخص کنید. برخی پیکربندی‌های pam_winbind نیز ممکن است به فهرست سراسری نیاز داشته باشند.

اگر پیکربندی‌ای دارید که نیازی به فهرست سراسری ندارد، باید winbind scan trusted domains = no را تنظیم کنید.

Default: winbind scan trusted domains = no

winbind sealed pipes (G)

این گزینه کنترل می‌کند که آیا هرگونه درخواست از winbindd به لوله‌های (pipes) مربوط به Domain Controllerها باید ممهور (sealed) شود یا خیر. غیرفعال کردن ممهورسازی می‌تواند برای اهداف عیب‌یابی مفید باشد.

این رفتار می‌تواند به‌ازای هر دامنه NetBIOS با استفاده از گزینه 'winbind sealed pipes:NETBIOSDOMAIN = no' کنترل شود.

Default: winbind sealed pipes = yes

winbind separator (G)

این پارامتر به مدیر سیستم اجازه می‌دهد نویسه مورد استفاده هنگام فهرست کردن نام کاربری در قالب DOMAIN \user را تعیین کند. این پارامتر تنها هنگام استفاده از ماژول‌های pam_winbind.so و nss_winbind.so برای سرویس‌های UNIX قابل اعمال است.

لطفاً توجه داشته باشید که تنظیم این پارامتر روی + حداقل در سیستم‌های مبتنی بر glibc باعث بروز مشکلاتی در عضویت گروه می‌شود، زیرا نویسه + به عنوان یک نویسه ویژه برای NIS در /etc/group استفاده می‌شود.

Default: winbind separator = \

Example: winbind separator = +

winbind use default domain (G)

این پارامتر مشخص می‌کند که آیا دیمن winbindd(8) باید روی کاربرانی که فاقد بخش دامنه در نام کاربری خود هستند عمل کند یا خیر. کاربران بدون بخش دامنه طوری در نظر گرفته می‌شوند که گویی بخشی از دامنه اختصاصی خود سرور winbindd هستند. گرچه این امر مزیتی برای کاربران Windows ندارد، اما عملکرد SSH، FTP و ایمیل را به نحوه کارکرد آن‌ها در یک سیستم بومی Unix بسیار نزدیک‌تر می‌کند.

در صورت امکان باید از این گزینه اجتناب شود. این گزینه می‌تواند باعث سردرگمی در مورد مسئولیت‌ها برای یک کاربر یا گروه شود. در بسیاری از وضعیت‌ها مشخص نیست که آیا winbind یا /etc/passwd باید به عنوان مرجع معتبر برای یک کاربر در نظر گرفته شود؛ وضعیت برای گروه‌ها نیز به همین صورت است.

Default: winbind use default domain = no

Example: winbind use default domain = yes

winbind use krb5 enterprise principals (G)

دیمن winbindd قادر است بلیت‌های Kerberos را برای pam_winbind با krb5_auth یا wbinfo -K/--krb5auth= دریافت کند.

دیمن winbindd (حداقل در یک عضو دامنه یا domain member) هرگز قادر نیست تصویر کاملی از توپولوژی اعتماد (trust topology، که توسط DCها مدیریت می‌شود) داشته باشد. ممکن است مقادیر uPNSuffixes و msDS-SPNSuffixes وجود داشته باشند که اصلاً به هیچ دامنه AD تعلق ندارند.

با winbind scan trusted domains = no دیمن winbindd حتی تصویر کاملی از توپولوژی دریافت نمی‌کند.

واقعاً نیازی به دانستن درباره توپولوژی اعتماد نیست. ما می‌توانیم فقط به [K]DCهای دامنه اصلی خود (مثلاً PRIMARY.A.EXAMPLE.COM) اتکا کرده و از enterprise principalها مانند upnfromB@B.EXAMPLE.COM@PRIMARY.A.EXAMPLE.COM استفاده کنیم و ارجاعات WRONG_REALM را برای یافتن DC مناسب دنبال نماییم. پرینسیپال نهایی ممکن است userfromB@INTERNALB.EXAMPLE.PRIVATE باشد.

با winbind use krb5 enterprise principals = yes پرینسیپال‌های سازمانی (enterprise principals) winbindd استفاده خواهند شد.

Default: winbind use krb5 enterprise principals = yes

Example: winbind use krb5 enterprise principals = no

winbind varlink service (G)

این تنظیم کنترل می‌کند که آیا winbind(8) برای جستجوی رکورد کاربر/گروه از nss-systemd(8) از طریق Varlink گوش فرا دهد یا خیر، که جایگزینی برای nss_winbind ارائه می‌دهد.

برای اطلاعات بیشتر پیرامون جستجوی رکورد کاربر/گروه از طریق Varlink به https://systemd.io/USER_GROUP_API و صفحه راهنمای nss-systemd (8) مراجعه کنید.


هشدار (Warning)
نسخه‌های Systemd(1) پیش از ۲۵۳، مقدار پیش‌فرض winbind separator یعنی '\' را در پاسخ GetMemberhips یک نویسه ناامن در نظر می‌گیرند. برای دور زدن این مشکل توصیه می‌شود که برای نمونه آن را روی '+' تنظیم کنید.

هشدار (Warning)
این تنظیم در پلتفرم‌ها یا توزیع‌های فاقد systemd(1) هیچ تاثیری ندارد.

Default: winbind varlink service = no

winsdb:local_owner (G)

این پارامتر نشانی‌ای را مشخص می‌کند که در ویژگی winsOwner مربوط به اشیاء winsRecord که به‌صورت محلی ثبت شده‌اند، ذخیره می‌شود. حالت پیش‌فرض، استفاده از نشانی IP نخستین رابط شبکه است.

بدون پیش‌فرض

winsdb:dbnosync (G)

این پارامتر فراخوانی ()fsync را پس از اعمال تغییرات در پایگاه‌دادهٔ WINS غیرفعال می‌کند.

Default: winsdb:dbnosync = no

wins hook (G)

هنگامی که سامبا به‌عنوان یک سرور WINS در حال اجرا است، این پارامتر امکان فراخوانی یک برنامهٔ خارجی را برای تمامی تغییرات پایگاه‌دادهٔ WINS فراهم می‌کند. کاربرد اصلی این گزینه، امکان به‌روزرسانی پویای پایگاه‌های دادهٔ تفکیک نام خارجی، مانند DNS پویا (dynamic DNS) است.

پارامتر wins hook نام یک اسکریپت یا فایل اجرایی را مشخص می‌کند که به شیوهٔ زیر فراخوانی خواهد شد:

wins_hook operation name nametype ttl IP_list

•آرگومان نخست، عملیات است و یکی از مقادیر «add»، «delete» یا «refresh» می‌باشد. در بیشتر موارد می‌توان این عملیات را نادیده گرفت چرا که بقیهٔ پارامترها اطلاعات کافی فراهم می‌کنند. توجه داشته باشید که گاهی ممکن است «refresh» زمانی فراخوانی شود که نام پیش‌تر اضافه نشده است؛ در چنین حالتی باید با آن مانند یک add برخورد شود.
•آرگومان دوم، نام NetBIOS است. اگر نام یک نام مجاز نباشد، wins hook فراخوانی نمی‌شود. نام‌های مجاز تنها شامل حروف، ارقام، خط پیوند (hyphen)، زیرخط (underscore) و نقطه هستند.
•آرگومان سوم، نوع نام NetBIOS به‌صورت یک عدد هگزادسیمال ۲ رقمی است.
•آرگومان چهارم، مقدار TTL (طول عمر) برای نام بر حسب ثانیه است.
•آرگومان پنجم و آرگومان‌های بعدی، نشانی‌های IP هستند که در حال حاضر برای آن نام ثبت شده‌اند. اگر این فهرست خالی باشد، نام باید حذف گردد.
یک اسکریپت نمونه که برنامهٔ به‌روزرسانی پویای DNS متعلق به BIND با نام nsupdate را فراخوانی می‌کند، در دایرکتوری examples کد منبع سامبا ارائه شده است.

بدون پیش‌فرض

wins proxy (G)

این یک متغیر بولی است که کنترل می‌کند آیا nmbd(8) از طرف سایر میزبان‌ها به پرس‌وجوهای همگانی (broadcast) نام پاسخ دهد یا خیر. شاید لازم باشد برای برخی از کلاینت‌های قدیمی‌تر این گزینه را روی yes تنظیم کنید.

Default: wins proxy = no

wins server (G)

این پارامتر نشانی IP (یا نام DNS: نشانی IP ارجح است) سرور WINS را مشخص می‌کند که nmbd(8) باید نزد آن ثبت شود. اگر در شبکهٔ خود یک سرور WINS دارید، باید این مقدار را روی نشانی IP سرور WINS تنظیم کنید.

اگر شبکه‌ای با چند زیرشبکه (multi-subnet) دارید، باید این پارامتر را به سرور WINS خود ارجاع دهید.

اگر می‌خواهید در چندین فضای نام کار کنید، می‌توانید به هر سرور wins یک برچسب («tag») اختصاص دهید. برای هر برچسب، تنها از یک سرور (فعال) برای یک نام پرس‌وجو خواهد شد. برچسب باید با دو‌نقطه از نشانی ip جدا شود.


نکته
اگر چندین زیرشبکه دارید و مایلید مرور بین‌زیرشبکه‌ای (cross-subnet browsing) به‌درستی کار کند، باید سامبا را به گونه‌ای تنظیم کنید که به یک سرور WINS اشاره کند.
فصل مربوط به مرور شبکه (Network Browsing) را در Samba3-HOWTO ببینید.

Default: wins server =

Example: wins server = mary:192.9.200.1 fred:192.168.3.199 mary:192.168.2.61 # در این مثال هنگام پرس‌وجو برای یک نام معین، ابتدا 192.19.200.1 پرسیده می‌شود و اگر پاسخ نداد 192.168.2.61. اگر هیچ‌کدام نام را ندانند، از 192.168.3.199 پرس‌وجو خواهد شد.

Example: wins server = 192.9.200.1 192.168.2.61

wins support (G)

این متغیر بولی کنترل می‌کند که آیا فرایند nmbd(8) در سامبا به‌عنوان یک سرور WINS عمل کند یا خیر. نباید این مقدار را روی yes تنظیم کنید مگر اینکه شبکه‌ای با چند زیرشبکه داشته باشید و بخواهید یک nmbd خاص، سرور WINS شما باشد. توجه داشته باشید که هرگز نباید این مقدار را روی بیش از یک ماشین در شبکهٔ خود روی yes قرار دهید.

Default: wins support = no

workgroup (G)

این پارامتر کنترل می‌کند هنگامی که کلاینت‌ها پرس‌وجو می‌کنند، سرور شما در چه گروه کاری (workgroup) به نظر برسد. توجه داشته باشید که این پارامتر همچنین نام دامنهٔ (Domain name) مورداستفاده در تنظیم security = domain را کنترل می‌کند.

Default: workgroup = WORKGROUP

Example: workgroup = MYGROUP

wreplsrv:periodic_interval (G)

این پارامتر حداکثر بازهٔ زمانی بر حسب ثانیه را بین ۲ اجرای دوره‌ای زمان‌بندی‌شده مشخص می‌کند که طی آن تغییرات wins.ldb بررسی شده و اعلان‌های push به شرکای push ارسال می‌گردد. همچنین تغییرات wins_config.ldb نیز در این بازه بررسی شده و بارگذاری مجدد پیکربندی شرکا انجام می‌شود.

Default: wreplsrv:periodic_interval = 15

wreplsrv:propagate name releases (G)

اگر این پارامتر فعال باشد، آزادسازی‌های صریح (از سوی کلاینت) و ضمنی (از طریق پاک‌سازی/scavenging) نام، حتی در صورتی که هنوز نشانی‌های فعال دیگری وجود داشته باشد، مستقیماً به سایر سرورها منتشر می‌شوند؛ این موضوع برای مدخل‌های SPECIAL GROUP (2) و MULTIHOMED (3) اعمال می‌گردد. همچنین الگوریتم ادغام تداخل تکثیر برای مدخل‌های SPECIAL GROUP (2)، نشانی‌های همتاسازی‌شده‌ای (replica) که مالک نشانی سرور محلی است را در صورتی که پیش‌تر به‌صورت محلی ذخیره نشده باشند، کنار می‌گذارد. در صورتی که نشانی‌ای کنار گذاشته شود، نتیجهٔ ادغام مستقیماً منتشر خواهد شد. سرورهای ویندوز آزادسازی نام مدخل‌های SPECIAL GROUP (2) و MULTIHOMED (3) را مستقیماً منتشر نمی‌کنند، که بدین معناست سرورهای ویندوز ممکن است برای پرس‌وجوی نام‌های SPECIAL GROUP (2) و MULTIHOMED (3) نتایج متفاوتی بازگردانند. در صورت وجود سرورهای ویندوز، این گزینه تأثیر منفی چندانی ندارد، اما آگاه باشید که ممکن است نتایج غیرمنتظره‌ای بازگردانند.

Default: wreplsrv:propagate name releases = no

wreplsrv:scavenging_interval (G)

این بازهٔ زمانی بر حسب ثانیه بین ۲ اجرای پاک‌سازی (scavenging) است که پایگاه‌دادهٔ WINS را پاک‌سازی کرده و وضعیت رکوردهای نام منقضی‌شده را تغییر می‌دهد. مقدار پیش‌فرض آن نیمی از مقدار wreplsrv:renew_interval است.

بدون پیش‌فرض

wreplsrv:tombstone_extra_timeout (G)

این مدت‌زمان بر حسب ثانیه است که سرور باید فعال باشد تا رکوردهای tombstone (نشانه‌گذاری‌شده برای حذف) را از پایگاه‌دادهٔ خود حذف کنیم. مقدار پیش‌فرض آن ۳ روز است.

Default: wreplsrv:tombstone_extra_timeout = 259200

wreplsrv:tombstone_interval (G)

این بازهٔ زمانی بر حسب ثانیه است تا رکوردهای آزادشدهٔ سرور WINS به وضعیت tombstone درآیند. مقدار پیش‌فرض آن ۶ روز است.

Default: wreplsrv:tombstone_interval = 518400

wreplsrv:tombstone_timeout (G)

این بازهٔ زمانی بر حسب ثانیه است تا رکوردهای tombstone از پایگاه‌دادهٔ WINS حذف شوند. مقدار پیش‌فرض آن ۱ روز است.

Default: wreplsrv:tombstone_timeout = 86400

wreplsrv:verify_interval (G)

این بازهٔ زمانی بر حسب ثانیه است تا رکوردهای replica فعال را با سرور WINS مالک اعتبارسنجی کنیم. متأسفانه هنوز پیاده‌سازی نشده است. مقدار پیش‌فرض آن ۲۴ روز است.

Default: wreplsrv:verify_interval = 2073600

writable

این پارامتر مترادفی برای writeable است.

write ok

این پارامتر مترادفی برای writeable است.

writeable (S)

مترادف معکوس برای read only.

Default: writeable = no

write list (S)

این فهرستی از کاربرانی است که دسترسی خواندن-نوشتن به یک سرویس به آن‌ها داده می‌شود. اگر کاربر متصل‌شونده در این فهرست باشد، صرف‌نظر از مقدار گزینهٔ read only، دسترسی نوشتن به او داده خواهد شد. این فهرست می‌تواند شامل نام‌های گروه با استفاده از نحو @group باشد.

توجه داشته باشید که اگر کاربری هم در فهرست خواندن و هم در فهرست نوشتن باشد، دسترسی نوشتن به او داده خواهد شد.

Default: write list =

Example: write list = admin, root, @staff

write raw (G)

اگر async smb echo handler تنظیم شده باشد، این پارامتر نادیده گرفته می‌شود؛ زیرا این قابلیت با درخواست‌های SMB نوشتن خام (raw write) ناسازگار است.

در صورت فعال بودن، نوشتن‌های خام اجازهٔ نوشتن ۶۵۵۳۵ بایت را در یک بسته می‌دهند. این قابلیت معمولاً برای برخی از کلاینت‌های بسیار بسیار قدیمی بهبود کارایی چشمگیری به همراه دارد.

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

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

Default: write raw = yes

wsp property file (G)

پارامتر wsp property file. این پارامتر فایلی را مشخص می‌کند که ویژگی‌های اضافی پروتکل WSP (پروتکل جستجوی ویندوز - Windows Search Protocol) در آن ذخیره می‌شوند. قالب فایل به صورت یک فایل csv شامل ۱۰ ستون جداشده با کاما است. ۳ ستون اول الزامی هستند، ستون‌های دیگر مطلوبند اما ضروری نیستند.

Property Name

نام یک ویژگی، به عنوان مثال System.ItemUrl.

GUID

یک guid که propertyset متعلق به آن ویژگی را مشخص می‌کند.

prop ID

عددی که به همراه GUID ویژگی را به طور یکتا مشخص می‌کند.

inInverted Index

اگر ویژگی نمایه‌سازی (ایندکس) شده باشد، روی TRUE تنظیم می‌شود.

isColumn

اگر ویژگی از مواردی باشد که بتواند در ردیف‌های بازگردانده شده از پرس‌وجوی WSP بازگردانده شود، روی TRUE تنظیم می‌شود.

type

یکی از مقادیر Boolean،Buffer،Byte،DateTime،Double،Int32،String،UInt16،UInt32،UInt64

MaxSize

حداکثر اندازه هنگام ذخیره‌سازی.

Vector Property

اگر این یک ویژگی چندمقداری باشد، TRUE است.

Description

توضیح دربارهٔ اینکه این ویژگی برای چه منظوری استفاده می‌شود.

Default: wsp property file =

wtmp directory (G)

این پارامتر تنها زمانی در دسترس است که سامبا با گزینهٔ --with-utmp پیکربندی و کامپایل شده باشد. این پارامتر مسیر دایرکتوری‌ای را مشخص می‌کند که برای ذخیرهٔ فایل‌های wtmp یا wtmpx (بسته به سیستم UNIX) استفاده می‌شود که اتصالات کاربران به سرور سامبا را ثبت می‌کنند. تفاوت آن با دایرکتوری utmp در این واقعیت است که اطلاعات کاربر پس از خروج او از سیستم (logout) نیز نگهداری می‌شود.

به طور پیش‌فرض این مقدار تنظیم نشده است، به این معنی که سیستم از همان فایل utmpای استفاده خواهد کرد که سیستم بومی برای استفاده تنظیم شده است (معمولاً /var/run/wtmp در لینوکس).

Default: wtmp directory =

Example: wtmp directory = /var/log/wtmp

اگرچه فایل پیکربندی اجازه می‌دهد نام‌های سرویس حاوی فاصله‌ باشند، اما نرم‌افزار کلاینت شما ممکن است این اجازه را ندهد. فاصله‌ها در هر صورت در مقایسه‌ها نادیده گرفته می‌شوند، بنابراین نباید مشکلی ایجاد کند - اما از این احتمال آگاه باشید.

به همین ترتیب، بسیاری از کلاینت‌ها - به‌ویژه کلاینت‌های DOS - نام‌های سرویس را به هشت نویسه محدود می‌کنند. smbd(8) چنین محدودیتی ندارد، اما در صورتی که این کلاینت‌ها نام سرویس را کوتاه کنند، تلاش برای اتصال از سوی آن‌ها با شکست مواجه خواهد شد. به همین دلیل احتمالاً بهتر است طول نام‌های سرویس خود را حداکثر تا هشت نویسه نگه دارید.

استفاده از بخش‌های ویژه [homes] و [printers] کار را برای مدیر سیستم آسان می‌کند، اما ترکیب‌های گوناگونِ ویژگی‌های پیش‌فرض می‌تواند پیچیده و گمراه‌کننده باشد. هنگام طراحی این بخش‌ها نهایت دقت را به خرج دهید. به‌ویژه، اطمینان حاصل کنید که مجوزهای دسترسی روی دایرکتوری‌های spool صحیح باشند.

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

samba(7), smbpasswd(8), smbd(8), nmbd(8), winbindd(8), samba(8), samba-tool(8), smbclient(1), nmblookup(1), testparm(1).

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

08/16/2026 Samba 4.24.6