آموزش اشتراک گذاری فایل ها در شبکه با Samba
iMaaNor
اگر در منزلتون چند سیستم داریم و یا میخواهید بین سیستم و گوشیتون بدون نیاز به کابل فایل جابجا کنید
یکی از راه ها استفاده از Samba و اشتراک گذاری فایل های سیستم هستش که در این پست نحوه استفاده از اون رو آموزش میدم
نصب Samba
اول از همه نیاز هستش که خود samba رو نصب کنید
در آرچ بیس ها این کد را اجرا کنید
sudo pacman -S samba
در دبین بیس ها این کد را اجرا کنید
sudo apt install samba
کانفیگ و تنظیمات مورد نیاز
بعد از نصب ابتدا باید یک فایل کانفیگ برای samba ایجاد کنید که برای نمونه از فایلی که در گیت هاب samba قرار دارد استفاده میکنیم
ابتدا به این لینک برید و محتویات اون رو کپی کنید
سپس یک فایل در فولدر etc/samba/ به نام smb.conf ایجاد کنید و محتویات کپی شده را در اون پیست کنید و ذخیره کنید
همچنین میتونید این کار ها رو بطور اتومات با اجرای دستور زیر انجام بدید
sudo wget https://git.samba.org/samba.git/\?p\=samba.git\;a\=blob_plain\;f\=examples/smb.conf.default -O /etc/samba/smb.conf
حالا باید کانفیگ ایجاد شده رو با توجه به نیازمون ویرایش کنید
ابتدا فایل رو با دستور زیر باز کنید
sudo nano /etc/samba/smb.conf
میتونید به جای nano از gedit یا ادیتور های گرافیکی دیگر جهت راحتی استفاده کنید
بعد از باز کردن ابتدا به خط ۵۵ برید (= log file) و آن خط رو بصورت زیر تغییر دهید
برای رفتن به خط مورد نظر در nano از کلید ترکیبی _ + ctrl استفاده کنید
log file = /var/log/samba/%m.log
همچنین خط های ۱۱۳ تا ۱۱۶ و ۱۳۷ تا ۱۴۴ رو با گذاشتن یک ; در ابتدای آنها غیر فعال کنید
این خط ها برای اشتراک گذاری Home و پرینتر ها بصورت پیشفرض فعال هستن در صورت نیاز میتونید بذارید فعال بمونن
مثل عکس زیر

حالا به انتهای فایل برید (برای اینکار در nano میتونید از کلید های ترکیبی / + alt استفاده کنید)
و در آنجا باید فولدری که میخواید اشتراک بذارید و سایر تنظیمات رو انجام بدید
برای مثال ما در اینجا یک فولدر در Home به نام Share ایجاد کردیم و اون رو برای اشتراک گذاری انتخاب کردیم
[Share] path = /home/your-username/Share writable = yes valid users = usernames-you-want
دقت کنید بچای عبارت your-username باید نام کاربری خودتون رو وارد کنید همچنین اگر میخواید کسانی که به فولدر شما وصل میشن فقط بتونن فایل ها رو ببینن و نتونن تغییری ایجاد کنن یا فایلی اضافه کنن میتونید بجای خط writable = yes عبارت زیر رو بنویسید
read only = yes
و دقت کنید در مقابل عبارت valid users باید نام کاربر یا کاربرانی که در ادامه به samba اضافه میکنید را وارد کنید تا آنها بتوانند به فولدر share دسترسی داشته باشند
حالا همانطور که گفته شد باید یک کاربر رو به samba اضافه کنید تا بتونید به عنوان اون کاربر به فایل ها دسترسی پیدا کنید (میتونه اکانت خودتون باشه یا یک یوزر جدید بسازید )
برای اضافه کردن این دستور را بزنید و سپس یک رمز برای دسترسی به فایل های به اشتراک گذاری شده انتخاب کنید
برای این کار دستور زیر را اجرا کنید
sudo smbpasswd -a username
بجای username نام کاربر مورد نظر را بنویسید
بعد از انجام این مرحله باید سرویس samba رو در سیستم اجرا کنید
برای این کار در آرچ بیس ها دستور زیر را وارد کنید
sudo systemctl start smb.service nmb.service
همچنین میتونید با دستور زیر تنظیم کنید که هر بار با روشن شدن سیستم سرویس samba بطور خودکار اجرا شود
sudo systemctl enable smb.service nmb.service
برای اجرای سرویس samba در دبین بیس ها دستور زیر را اجرا کنید
sudo systemctl start smbd.service nmbd.service
همچنین میتونید با دستور زیر تنظیم کنید که هر بار با روشن شدن سیستم سرویس samba بطور خودکار اجرا شود
sudo systemctl enable smbd.service nmbd.service
در آخر برای دسترسی به فایل های اشتراک گذاری شده باید سرویس samba را در فایروال بهش دسترسی بدید
برای اینکار در آرچ اگر از ufw استفاده میکنید دستور زیر را اجرا کنید
sudo ufw allow CIFS
و برای بستن دسترسیش هم میتونید از این دستور استفاده کنید
sudo ufw deny CIFS
و اگر از دبین بیس ها استفاده میکنید دستور زیر
sudo ufw allow samba
و برای بستن دسترسیش هم میتونید از این دستور استفاده کنید
sudo ufw deny samba
حالا samba درسیستم شما آماده هستش و میتونید از سیستم های دیگه بخش Network فایل منیجرتون و یا در گوشی به پوشه Share که ساختید دسترسی داشته باشید
چند نکته و ترفند در رابطه با Samba
دقت کنید که در تمام این روش ها باید دو دستگاه به یک شبکه (مودم) وصل باشن
اتصال از گوشی :
برای اتصال به سیستم از طریق گوشی (اندروید) میتونید از فایل منیجر Cx File Explorer استفاده کنید
که کافیه وارد بخش Network نرم افزار بشید و گزینه اضافه کردن رو بزنید و از بخش Remot گزینه SMB رو انتخاب کنید و مشخصات سیستم شامل local ip و یوزر و پسورد samba رو وارد کنید

اتصال از سیستم دیگر:
برای اتصال از ویندوز وارد بخش network که بشید اسم کامپیوتری که share کردید وجود داره و میتونید بهش متصل بشید
اگر نبود هم داخل آدرس بار این عبارت رو وارد کنید
\\local-ip
یا
\\local-ip:443
بجای local-ip هم باید لوکال آیپی دستگاهی که در شبکه share کردید رو بنویسید(نحوه فهمیدن لوکال آیپی در پایین تر آمده است)
مثلا
\\192.168.1.7
برای لینوکس هم به همین ترتیب عمل کنید
ابتدا بخش network که برای مثال در فایل منیجر nautilus در بخش Other Locations قرار دارد و اگر نبود از بخش پایینی همان صفحه آدرس را بصورت زیر وارد کنید
smb://local-ip

نحوه فهمیدن Local IP:
برای فهمیدن Local IP سیستم این دستور رو داخل ترمینال اجرا کنید
ip address | grep 192.168
سپس آدرس لوکال آیپی شما بعد از عبارت inet نمایش داده میشود
تنظیم کردن یک Alias برای راه اندازی و متوقف کردن Samba:
شما میتونید برای اینکه Samba دائما تو سیستم فعال نباشه (به دلایل امنیتی) و پورتش توی فایروال باز نباشه این Alias ها رو اضافه کنید به شل تا راحت بتونید Samba رو راه اندازی یا متوقف کنید
برای اینکار اگر از zsh استفاده میکنید با دستور زیر zshrc رو باز کنید
nano ~/.zshrc
و اگر از bash استفاده میکنید با این دستور bashrc رو باز کنید
nano ~/.bashrc
حالا برای آرچ بیس ها آخر این فایل ها این خط ها رو اضافه کنید
alias smb-on="sudo ufw allow CIFS && sudo systemctl start smb.service nmb.service && sudo systemctl status smb.service nmb.service | grep Active: && sudo ufw status | grep CIFS" alias smb-off="sudo ufw deny CIFS && sudo systemctl stop smb.service nmb.service && sudo systemctl status smb.service nmb.service | grep Active: && sudo ufw status | grep CIFS"
و برای دبین بیس ها این خط ها را اضافه کنید
alias smb-on="sudo ufw allow samba && sudo systemctl start smbd.service nmbd.service && sudo systemctl status smbd.service nmbd.service | grep Active: && sudo ufw status | grep samba" alias smb-off="sudo ufw deny samba && sudo systemctl stop smbd.service nmbd.service && sudo systemctl status smbd.service nmbd.service | grep Active: && sudo ufw status | grep samba"
سپس فایل را ذخیره کنید و یک ترمینال جدید باز کنید
حالا با وارد کردن دستور smb-on میتونید سرویس samba رو فعال کنید و با دستور smb-off میتونید samba رو غیرفعال کنید