در این مقاله شما را با سرویس SAMBA که سرویسی برای اشتراک گذاری یا Sharing بین سیستم های لینوکس ویندوز است، آشنا خواهیم کرد.
معرفی:
خب مطمئن هستم که همه ی شما خوانندگان عزیز با مفهوم اشتراک گذاری یا Share کردن یک فایل در شبکه آشنایی دارید.
معمولا در شبکه، برای این کار از یک فایل سرور استفاده می شود تا مدیریت داده ها آسان تر باشد.
همان طور که می دانید، SMB پروتکل معروفی برای اشتراک گذاری می باشد که در سیستم های ویندوزی قابل استفاده است.
اما ممکن است در شبکه، سرور یا کاربرهای دوست دار لینوکس نیز وجود داشته باشند.
برای برقراری ارتباط اشتراک گذاری میان سیستم های لینوکسی و ویندوزی، از سرویس SAMBA استفاده می شود.
سرویس SAMBA یک سرویس رایگان و کاملا متن باز (Open Source) می باشد.
به کمک سرویس SAMBA نه تنها بین سیستم های لینوکسی، بلکه میان سیستم های ویندوزی و لینوکسی نیز می توان File Sharing راه اندازی کرد.
بریم سراغ راه اندازی…
مرحله اول راه اندازی :
سناریو به صورت زیر است که بر روی Ubuntu 18 راه اندازی شده است:

در ابتدا باید پکیج SAMBA را نصب کنید:
# apt-get update
# apt-get install samba
فایل کانفیگ این سرویس به صورت پیش فرض در دایرکتوری زیر قرار دارد:
# /etc/samba/smb.conf
قبل این که شروع به ادیت این فایل کنید، حتما یک کپی از آن را تهیه کنید:
# cp /etc/samba/smb.conf /etc/samba/smb.conf.org
حال فایل را با استفاده از یک ادیتور باز کنید:
# vim /etc/samba/smb.cong
در فایل کانفیگ، شما با یک بلوک Global مواجه می شوید که پالیسی ها و تنظیمات اصلی مربوط به این سرویس، در این بلوک قرار می گیرد.
به صورت پیش فرض، در این بلوک یک سری تنظیمات وجود دارد.
اگر دستورات زیر در این بلوک وجود نداشتند، آن ها را کپی کرده و وارد فایل کنید:
server string = samba_server
server role = standalone server
interfaces = lo your_network_interface
bind interfaces only = yes
disable netbios = yes
smb ports = 445
log file = /var/log/samba/smb.log
server string
صرفا یک نام است که به فایل سرور داده می شود.
server role
نقش فایل سرور را مشخص می کند که در این سناریو نقش سرور، standalone می باشد.
interfaces
مشخص می کند که روی کدام کارت شبکه سرویس دهی شود.
bind interfaces only
برای سرور مشخص می کند که فقط روی کارت شبکه هایی که در interfaces مشخص شده است، سرویس دهی شود.
disable netbios
نیز از جمله موارد امنیتی است که بهتر است فعال باشد.
smb port
پرت سرویس را مشخص می کند که به صورت پیش فرض ۴۴۵ می باشد.
log files
محل ذخیره سازی لاگ ها را مشخص می کند.
تنظیمات بالا را ذخیره کرده و با دستورtestparm
از صحت آن اطمینان حاصل یابید.
حال نوبت به تنظیمات Share File می رسد.
مرحله دوم راه اندازی :
به ازای هر فولدری که می خواهید Share شود، نیاز است که یک بلوک در فایل کانفیگ اضافه کنید.
در این سناریو، قرار است دو فولدر Share شود.
روی فولدر اول فقط یوزر geek1 دسترسی دارد و حتی این فولدر برای هیچکس قابل مشاهده نیست.
روی فولدر دوم یوزرهای geek1 و geek2 دسترسی دارند.
در ابتدا باید این دو یوزر ساخته شود:
# adduser geek1
# adduser geek2
حال دایرکتوری هایی که نیاز است را بسازید:
# mkdir /home/geek1/share
# mkdir /home/geek2/share
حال باید دو بلوک به صورت زیر ایجاد کنید:
[GEEK1]
comment = public anonymous access
path = /home/share_folder
browsable = no
writable = yes
guest ok = no
valid users = geek1
در قسمتpath
مشخص می شود که فایل Share شده شما از کجا خوانده شود.
گزینه
به شما این امکان را می دهد که این فولدر برای هیچکس قابل مشاهده نباشد.browsable
گزینه writable
اجازه ی نوشتن را به کاربر می دهد.
گزینه guest ok
به این معناست که یوزرهای guest اجازه ی دسترسی نداشته باشند.
گزینه valid users
نیز یوزرهایی را مشخص می کند که اجازه دسترسی داشته باشند ( طبق سناریوی ما فقط یوزر geek1 می باشد ).
همین دستورات برای بلوک دوم نیز به کار گرفته می شود اما با تغییرات زیر:
[EveryOne]
path = /home/geek2/share
browsable = yes
valid users = geek1 geek2
تنظیمات بالا را ذخیره کرده و خارج شوید. سپس با استفاده از testparm
درستی دستورات را چک کنید.
SAMBA یک دیتابیس کوچک درونی دارد و یوزرهایی که قرار است از Share File های موجود بر روی سرور استفاده کنند، در این دیتابیس اضافه می شوند:
# smbpasswd -a geek1
# smbpasswd -e geek1
# smbpasswd -a geek2
# smbpasswd -e geek2
در مرحله آخر باید دسترسی های سیستمی لازم بر روی دایرکتوری ها را به یوزرها بدهید:
# chmode -R 777 /home/geek2/share
# chown -R geek1 /home/geek1/
در نهایت یک بار سرویس خود را ریست کنید:
# service smbd restart
حال نوبت به تست سناریو می رسد.
آدرس سرور را در ران ویندوز وارد کنید:

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

همچنین برای دسترسی به فولدر دوم باید آدرس آن را به صورت مستقیم وارد کنید و فقط یوزر geek1 باید دسترسی داشته باشد:

این بود از راه اندازی File Sharing بین سیستم های لینوکسی و ویندوزی.
برای نوشتن دیدگاه باید وارد بشوید.