معرفی سامبا (Samba) نصب و کاربرد آن
در گذشته این امکان وجود نداشت که کاربران توسط سیستم عاملهای ویندوز و لینوکس بصورت همزمان تبادل اطلاعاتی داشته باشند . در واقع فایلها , اطلاعات و پرینترهای سیستمعامل لینوکس در سیستمعامل ویندوز شناخته شده نبود . برای برطرف کردن این نقیصه پروتکل سمبا به وجود آمد که در واقع پل ارتباطی بین سیستمعاملهای ویندوز و لینوکس است .
٢- تاریحچه
مایکروسافت سرویسی به نام (SMB(System Message Block را برای ویندوزهای 2003, 200, NT,9x طراحی نموده که با نام دیگر (CIFS(Common Interface file System نیز شناخته میشود .
SMB یک پروتکل سطح بالا بوده که بر روی پروتکل NetBIOS متعلق به مایکروسافت بنا نهاده شده که میتواند برروی شبکه TCP/IP اجرا گردد . این سرویس اجازه میدهد که سیستمها بتوانند تحت شرایطی منابع خود را به اشتراک گذاشته و بسیاری از کسانی که با ویندوز سر و کار دارند با مقولهای به نام network neighborhood را که در همین زمینه فعالیت مینماید را بخوبی میشناسند .
آقای Andrew Tridgell با بررسی SMB و از طریق مهندسی معکوس به خواص SMB پی برده و samba در عرصه لینوکس و یونیکس شروع به خود نمائی نمود .
انتخاب نام SAMBA بر چه اساسی است ؟
برای انتخاب نام محصولی که بتواند با استفاده از پروتکل smb با ویندوز ارتباط برقرار نماید ، فرمان زیر اجرا گردید :
grep -I '^s.*m.*b' /usr/dict/words
b داشته باشد m داشته باشد با s شروع شود
Salmob erry samba sawtimber scrmb
و samba که نوعی رقص مکزیکی می باشد انتخاب گردید .
3-معرفی سمبا
سرویس سمبا از جمله سرویسهایی است که امکان استفاده از فایلها ، چاپگرها، شاخهها و پارتیشنهای لینوکس را در ویندوز از طریق امکانات network neighborhood فراهم میکند . کاربرانی که نیاز به ویرایش مستمر فایلهای خاص از سرور را دارند و آشنایی چندانی با ویراستارهای لینوکس ندارند ، می توانند از طریق ویندوز ، با سرور لینوکس ارتباط برقرار کنند و اطلاعات خود را ویرایش کنند .
در واقع SAMBA از پروتکل SMB برای share کردن فایلها و پرینترها در شبکه استفاده میکند .
سیستمعاملهایی که این پروتکل را پشتیبانی میکنند عبارتند از ویندوز از طریق Network Neighborhood, OS/2 و لینوکس .
4- SAMBA چه کارهایی انجام می دهد :
File server : می تواند به عنوان خادم فایل عمل نماید .
Print server : می تواند به عنوان خادم چاپگر عمل نماید .
Domain controller : می تواند به عنوان کنترولر قلمرو عمل نماید .
Wins server : می تواند به عنوان خادم wins عمل نماید .
5- چه روش هایی برای نصب سمبا وجود دارد :
از طریق خط فرمان
Vi /etc/samba/smb.conf
از طریق مرورگر اینترنت
http://sambaserver:901
با استفاده از بسته نرم افزاری webmin
5-1 : راه اندازی سمبا :
به طور کلی راه اندازی ، توقف و راه اندازی مجدد سرویس دهنده سمبا با اسکریپت /etc/rc.d/init.d/smb انجام میشود . در خط فرمان دستور service به صورت زیر به کار می رود .
service smb start#
service smb stop#
service smb restart#
6 – سرویسهای سمبا :
سمبا چهار سرویس: 1- فایل و چاپگر 2- احراز هویت و کنترل مجوزها 3- نگاشت نام 4- اعلان سرویس را فراهم مینماید .
7- اجزای سمبا :
سمبا شامل سه دایمون است. هر دایمون در لینوکس یک برنامه کاربردی است که در پسزمینه اجرا میشود و خدماتی را فراهم میکند . این خدمات میتواند خدمات وب باشد که کارساز آن در لینوکس Apache است و در آنصورت دایمون آن httpd خواهد بود . کارساز سمبا نیز شامل سه دایمون است که وجود دو تای آنها برای یک کارساز سمبا الزامی است:
1- nmbd : این دایمون تمام درخواستهای در مورد name registration ،name resolution و اعلانهای سرویس به کلاینتها را مدیریت میکند و با وجود آن ، کار خواهها میتوانند به کارسازها و منابع مشترک آنها دسترسی پیدا کنند . این دایمون به عنوان نگاشتنام نیز میتواند عمل میکند و نگاشت NetBIOSName به آدرس IP را انجام میدهد . علاوه بر این nmbd تمام پروتکلهای مبتنی بر UDP را اداره کرده و باید در ابتدای کار ، سمبا اجرا شود.
اعلان سرویس که browsing هم نامیده می شود روشی است که از طریق آن سرویس های شبکه برای سیستم های ویندوز و سیستم های لینوکس متصل با سمبا مشخص میشود .
2 - smbd : این دایمون نیز تمام خدمات مبتنی بر TCP/IP را مدیریت میکند . همچنین کلیه کارهای مربوط به احرازهویت client ها و مجوز دسترسی به منابع اشتراک گذاشته شده مانند فایل و چاپگر را به عهده دارد . برای امنیت بیشتر نیز سرویسهای احراز هویت و کنترل مجوزها را تامین مینماید .
smbd باید بلافاصله بعد از nmbd اجرا شود .
3 - winbindd : وقتی سمبا عضوی در ویندوز NT4 و یا دامنه ADS است , این دایمون باید اجرا شود . هچنین هنگامی که سمبا یک ارتباط قابل اعتماد با دامنه دیگری دارد ، باید این دایمون در حال اجرا باشد .
این سرویس دهنده سمبا را قادر میسازد تا از سرویس احراز هویت ارائه شده توسط یک دامنه ویندوز استفاده نماید .
winbindd پرونده smb.conf را برای وجود دو پارامتر idmap uid و idmap gid جستجو می کند . اگر این دو پارامتر در پرونده پیدا نشود ، winbind اصلا اجرا نمیشود .
و بدین ترتیب کاربران شبکه میتوانند فایل ها و چاپگرها را به اشتراک بگذارند.
برای کنترل دسترسی به این سرویسها می توانید از کاربران این سرویسها رمز عبوری را درخواست نمایید . بدین ترتیب وقتی کاربران سعی میکنند تا به یک دایرکتوری اشتراکی رجوع کنند از آنها رمز عبور پرسیده میشود.
کنترل لازم نیز به صورت مداشتراکی و مدکاربری میتواند انجام شود . در مداشتراکی برای منبع اشتراکی یک رمز عبور تعیین میشود و هر کاربری که آن رمز عبور را داشته باشد میتواند به منبع موردنظر دسترسی داشته باشد ولی در مدکاربری برای یک منبع خاص باید هر کاربر رمز عبور جداگانهای را داشته باشد .
به همین منظور سمبا رمزهای عبور خود را در فایل /etc/samba/smbpasswd نگهداری میکند .
تعداد زیاد فرایند smbd :
همانطور که گفته شد , nmbd دایمون مربوط به Name Server است . اگر سمبا به عنوان WINS Server عمل نکند ، فقط یک فرآیند nmbd روی سامانه شما در حال اجراست ، در غیر اینصورت ، یعنی اگر سمبا بخواهد WINS Server هم باشد باید دو فرآیند nmbd در حال اجرا داشته باشید که یکی برای مدیریت درخواستهای WINS اختصاص یابد . اما از طرف دیگر smbd باید تمام درخواستهای اتصال به دایمون را اداره کند . برای این کار ، smbd به ازای هر اتصال کار خواه یک فرآیند جدید ایجاد میکند .در واقع برای هر اتصال کارخواه باید یک برنامه smbd مخصوص به آن فعال باشد و به آن پاسخ دهد . بنابراین ممکن است در یک زمان تعداد زیادی فرآیند smbd دیده شود .
8-تنظیمات سمبا :
برای تنظیمات و پیکربندی سمبا از فایل /etc/samba/smb.conf استفاده می شود . در این فایل گزینههای سراسری و سپس پیکربندی منابع اشتراکی قرار میگیرند و با تغییر این فایل می توانید پیکربندی مورد نظر را به وجود آورید. این فایل از گروههای متعددی تشکیل میشود و هر منبع نیز گروه مخصوص به خود دارد که نام سرویس و مشخصههای آن را نگه می دارد . حتی گزینههای سراسری نیز در گروه مخصوصی بنام global قرار میگیرند . به طور مثال یک گروه برای فضای فایل اشتراکی : از یک دایرکتوری و مجوزهای دسترسی کاربران برای آن دایرکتوری تشکیل می شود .درفایل smb.conf یک گروه با برچسب گروه شروع می شود . برچسب گروه نیز در حقیقت نام منبع اشتراکی می باشد که در داخل براکت ها قرار داده شده است . البته به جز گروه های خاص برچسب گروه هر نام دلخواهی میتواند باشد . بعد از برچسب گروه نیز در خطهای جداگانه پارامترهای سرویس ذکر میشود . پارامترها حقوق دسترسی کاربر سرویس را تعریف میکنند . در ادامه یک مثال ساده از یک گروه فایل پیکربندی سمبا آمده است :
[mysection]
path=/home/chris
writeable=true
فایل پیکر بندی smb.conf شامل دو دایرکتوری است :
1- Global Directives : به منظور پیکربندی خادم و برای گزینههای سراسری استفاده میگردد .
2- Service Directives : به منظور پیکربندی سرویسهای اشتراکی مانند سرویسهای قابل چاپ و یا فضای فایل استفاده میگردد . سرویس فضای فایل ، یک دایرکتوری است که امکان دسترسی کاربران به آن فراهم میشود و کاربران آن را همانند فایل سیستم محلی استفاده میکنند . یک سرویس قابل چاپ نیز امکان دسترسی کاربران به سرویسهای چاپی همانند چاپگرهای مدیریت شده توسط سمبا را فراهم میسازد .
مجموعهی کاملی از نمونه های فایل پیکربندی smb.conf نیز در مسیر زیر وجود دارد :
/usr/share/doc/samba*/examples
بعد از اعمال هر گونه تغییرات در این فایل smb.conf ، سرویس smb را با دستور زیر مجددا فعال میکنیم :
/sbin/service smb restart
صحت و درستی این فایل با دستور testparm قابل بررسی میباشد . به طور پیش فرض این برنامه فایل پیکربندی اصلی سمبا را بررسی میکند ولی می توانید فایل دیگری را نیز برای بررسی تعیین کنید .
به کمک سرویس سمبا کاربران ویندوز می توانند با وارد کردن شناسه و کلمه رمز خود که بر روی سرور تعریف شده است به ویندوز Log In کنند و به اطلاعات موجود در homedirectory خود دسترسی پیدا کنند و یا به پرینتر تعریف شده در سرور دسترسی یابند . همچنین در صورتی که بخواهیم به یکی از شاخههای لینوکس دسترسی پیدا کنیم بعد از وارد کردن تعاریف مربوط به مسیر مورد نظر ، می توانیم نام سرور را در محیط ویندوز جستجو کنیم و به اطلاعات شاخه مورد نظر دسترسی پیدا کنیم .
برای تعیین گروهکاری و یک جمله توضیحی خطوط زیر را در فایل smb.conf ویرایش میکنیم .
Workgroup = workgroupname
Server string = Brief comment about server
8-1:مثال هایی از تنظیم سمبا :
مثالهایی از تنظیم سمبا برای کارهای مختلف به منظور روشن تر شدن مطلب ذکر میکنیم :
8-1-1- به اشتراک گذاشتن یک شاخه در شبکه :
برای تعریف یک شاخه به منظور share کردن در شبکه ، بخش زیر را اضافه میکنیم
[sharename]
Comment = Insert a comment here
/Path = /home/share
Valid users = user1 user2
Public = no
Writable = yes
Printable = no
Create mask = 0765
در این مثال کاربران user 1 , user2 اجازه خواندن و نوشتن در شاخه /home/share را دارند. پارامتر path دایرکتوری را مشخص می کند که اجازه دسترسی به آن داده شده است . پارامتر writeable نیز مجوز نوشتن کاربران در این دایرکتوری را تعیین میکند .
تعریف Create mask = 0765 باعث میشود در زمان کپی کردن فایل توسط کاربر در شاخه گفته شده , فایل ها با مد 0765 روی سرور کپی شوند .
8-1-2- به اشتراک گذاشتن یک چاپگر در شبکه :
یک سرویس چاپگر نیز ساختار مشابهی را دارد ولی پارامترهای مشخص دیگری را نیاز دارد . پارامتر path محل دایرکتوری spool چاپگر را مشخص میسازد . پارامترهای read-only و printable نیز مقدار true میگیرند تا نشان دهند که سرویس فقط خواندنی و قابل چاپ می باشد . پارامتر public هم نشان دهنده دسترسی عمومی به این سرویس است .
[myprinter]
path = /var/spool/samba
read only = true
printable = true
public = true
8-1-3 : راه اندازی یک کارساز سند:
Ducument server
میخواهیم یک پرونده کارساز سمبا داشته باشیم که تمام کاربران بتوانند به آن دسترسی داشته باشند . شرایط این محیط به اشتراک گذاشته شده به صورت زیر است :
نام منبع مشترک /export را انتخاب کردهایم.
صاحب پرونده securitynet است که نام کاربری آن securitynet_Std و کلمه عبورش 123 است .
برای ایجاد این کارساز باید مراحل زیر را انجام دهید :
شاخه /export را ایجاد نمایید به طوری که در شاخه home ایجاد گردد ومجوزهای آن را تنظیم کنید ،همچنین صاحب آن را باید مشخص کنید :
make /export#
chmod u+rwx , g+rx , o+rx /export#
chown securitynet_std.users /export#
کلیه پروندههایی که می خواهید به اشتراک بگذارید به شاخه /export کپی کنید .
حال پرونده smb.conf را به صورت زیر تغییر دهید :
#Global parameters
[global]
Workgroup = MIDEARTH
Netbios name= HOBBIT
Security = share
[data]
Comment = Data
Path = /export
Read only = yes
Guest ok = yes
با دستورات مناسب کارساز سمبا را راهاندازی کنید .
کارخواه تحت ویندوز خود را به گروهکاری مشخص شده ( در اینجا MIDEARTH ) متصل کنید و نام آن را به ROBBINS تنظیم کنید . آن را مجددا راهاندازی کنید و کمی منتظر بمانید . سپس مرورگر ویندوز خود را باز کنید و به قسمت Network Neighborhood بروید . در آنجا باید ماشین HOBBIT را مشاهده نمایید . با کلیک روی آیکن آن ، می توانید داده های به اشتراک گذاشته روی آن را مشاهده کنید . در آنجا شاخه /export قابل مشاهده خواهد بود .
9- دسترسی به SMB :
کاربران لینوکس به منظور دسترسی به امکانات SMB می توانند یکی از دو فرمان زیر را مورد استفاده قرار دهند :
1- smbclient : برنامه ای شبیه به ftp برای دسترسی به فایلهای اشتراکی و چاپگرها ، به شکل زیر :
Smbclient //server/share
server: نام سروری که می خواهید از منابع اشتراکی آن استفاده کنید.
share : منبع به اشتراک گذاشته شده .
2- smbmount : فرمانی برای mount کردن فایل سیستمهای به اشتراک گذاشته شده در کامپیوترهای دیگر و برای دسترسی به چاپگرها نیز می توان با ابزار printtool چاپگرها را پیکربندی نمود .
Smbmount //server/share /mountpoint
server : نام سروری که می خواهید از منابع اشتراکی آن استفاده کنید
share : منبع به اشتراک گذاشته شده
mountpoint : سوار شده بر روی دایرکتوری محلی
محصول Samba مرتبا به روز شده به دلیل توسعه و رفع اشکال و بهتر است که برای تهیه آخرین گونه این محصول مستقیما به سایت www.samba.org مراجعه کنید .