آموزش اشتراک گذاری فایل بین لینوکس(linux) و ویندوز(windows)

گاهی اوقات در شبکه های خانگی یا حتی در شبکه های سازمانی از دو سیستم عامل محبوب ویندوز و لینوکس (گنو لینوکس) استفاده میشود و نیاز به اشتراک گذاری منابع بین آنها داریم. این دو سیستم در دنیایی کاملا متفاوت از هم قرار دارند و هر کدام برای خود یک پروتکل مخصوص دارند. همین تفاوت هاست که اشتراک منابع بین این دو سیستم را به چالشی برای کاربران تبدیل کرده است. خب اگر برای شما هم این سوال پیش اومده که آیا راهی هست یا خیر، در این مقاله پاسخ این سوال رو بررسی میکنیم.
ویندوز از پروتکل (Server Message Block) SMB و لینوکس از (Network File Sharing) NFS برای اشتراک گذاری منابع استفاده میکند.
در این مقاله سعی داریم تا شما را با ابزارها و روش های اشتراک منابع بین این دو سیستم عامل آشنا کنیم و به نصب و راه اندازی یکی از پراستفاده ترین آنها بپردازیم.
دانلود و راه اندازی سامبا (Samba)
خب اینجا یک ویندوز 10 و یک کالی لینوکس در wmvare workstation بالا اوردیم تا کارمون رو شروع کنیم.
قبل از نصب بهتر است تا با دستور sudo apt upadate ریپازیتوری ها را آپدیت کنیم.
برای دانلود و نصب کردن samba در لینوکس از دستور sudo apt install samba استفاده میکنیم. بعد از مشاهده اطلاعاتی مثال پیشنیاز ها و … با وارد کردن عبارت Y فرایند دانلود و نصب انجام میشود.
دانلود و نصب samba
بعد از فرایند نصب برای اینکه مطمئن شویم samba به درستی نصب شده از دستور sudo systemctl status smbd استفاده میکنیم.
قبل از تغیر دادن فایل کانفیگ, یک دایرکتوری به نام shares با دستور
mkdir /home/kali/shares
برای اشتراک گذاری میسازیم.
کانفیگ کردن samba
در سیستم عامل لینوکس معمولا فایل های کانفیگ در دایرکتوری etc/ قرار دارند. در نتیجه برای مشاهده ی فایل های کانفیگ samba به پوشه /etc/samba میرویم و با دستور ls محتویات این دایرکتوری را مشاهده میکنیم.
زمانی که فایل smb.conf را بازکردید, به انتهای فایل بروید و عبارات زیر را به فایل اضافه کنید.
بیایید هرکدام از عبارت ها را بررسی کنیم.
[shared] : نام اشتراک است که شیرفولدر های ما با این نام نمایش داده میشود.
Comment : برای نوشتن توضیحات است.
Path : برای مشخص کردن دایرکتوری تا به اشتراک گذاشته بشه.
Writable : اگر بخواهیم به کاربران اجازه نوشتن بدهیم مقدارش را yes تنظیم میکنیم.
Guest ok : درصورتی که نخواهیم از احراز هویت استفاده کنم مقدارش را برابر با yes قرار می دهیم
نکته: برای برای افزایش امنیت از عبارت valid users = username استفاده کنید تا فقط کاربران تایید شده وارد شوند.
در انتهای کار تغییرات را ذخیره و با دستور sudo systemctl restart smbd سرویس smbd را ریستارت کنید.
اتصال به از ویندوز به لینوکس
قبل از اتصال از طریق ویندوز میتوانیم با دستور <sudo smblient -L <hostname لیست دایرکتوری های به اشتراک گذاشته شده را ببینیم.
در تصویر بالا میتوان دید که shared دایرکتوری با موفقیت به اشتراک گذاشته شده.
حالا نوبت به اتصال از ویندوز رسیده. برای اینکار باید ای پی ماشین لینوکسیمون رو داشته باشیم که از دستور ifconfig استفاده میکنیم.
همانطور که در تصویر بالا مشخصه لینوکس ما آدرسش 192.168.213.137 هستش. همین ادرس ای پی رو در پنجره ران ویندوز وارد میکنیم و ok را میزنیم.
نکته : قبل از آدرس آی پی دو بک اسلش (\\) را قرار دهید.
و حالا به دایرکتوری شیر شده دسترسی داریم.
اتصال از لینوکس به ویندوز
برای اتصال به پوشه به اشتراک گذاشته شده از ویندوز نیز مراحل زیر را انجام میدهم.
برای اتصال به ویندوز نیز باید آدرس آی پی آن را بدانیم. برای این کار در ویندوز در cmd از دستور ipconfig استفاده میکنیم.
همانطور که در تصویر مشاهده میکنید آی پی ویندوز ما 192.168.213.132 می باشد.
در لینوکس خود برنامه فایل منیجر را باز میکنیم و در آن به دنبال گزینه ی open location یا browse network میگردیم.
در تصویر بالا میتوان دید که در بخش browse network کامپیوتر ویندوزی ما به طور خودکار شناسایی شده است.
در مرحله ی بعد روی آیکون که مشاهده میکنید کلیک میکنیم و از ما میخواهد برای دسترسی به فایل های اشتراک گذاری شده احراز هویت انجام بدهیم.
پس از وارد کردن نام کاربری و رمز عبور به محتویات آن دسترسی داریم.
مشکلات و اشتباهات
اگر به مشکلی خوردید که پالیسی اجازه برقراری ارتباط را نمیداد (همانند شکل زیر) به این دلیل است که ویندوز جلوی دسترسی به شبکه های عمومی ناشناس رو میگیره.
برای رفع این مشکل با وارد کردن gpedit.msc در پنجره run به group policy editor رفته و در مسیر computer configuration > administrative templates > network > lanman workstation با enable کردن enable insecure guest logons مشکل حل میشود.
درصورتی که موفق نبودید باید فایروال لینوکس را برای samba باز بگذارید.
با استفاده از دستور sudo ufw allow sambaاین کار را انجام دهید.
یکی دیگر از اشتباهات این است که دسترسی دایرکتوری شما به درستی تنظیم نشده باشد. برای حل این مشکل باید permission ها را با دستور chmod تغییر دهید.
مثال <sudo chmod 77 <directory . با این کار شما به تمامی کاربران دسترسی کامل میدهید.
سوالات متداول
چرا نمیتوان مستقیم منابع لینوکس و ویندوز را اشتراک گذاری کرد؟
به دلیل اینکه این دوسیستم عامل کاملا متفاوت اند و هرکدام روش مخصوص به خود را برای اشتراک گذار منابع دارد.
از چه روش هایی امکان اشتراک منابع بین این دو سیستم عامل وجود دارد؟
روش متفاوتی مثل کلود,ssh,samba,nfs و … وجود دارد که این امکان را به ما میدهد تا منابع را بین هرکدام اشتراک گذاری کنیم.
Samba چیست و چطور استفاده کنیم ؟
Samba پروتکلی است که برای اشتراک منابع یا دسترسی به انها استفاده میشود و به ما امکان ارتباط بین دو سیستم متفاوت مانند لیونکس و ویندوز را میدهد. برای راه اندازی ,ابتدا آن را روی لینوکس نصب و با تنظیم فایل کانفیگ در مسیر /etc/samba/smb.cong از آن استفاده میکنیم

