سامبا منبع باز و مجدد پروتکل به اشتراک گذاری پرونده شبکه SMB / CIFS است که به کاربران اجازه دسترسی به فایل ها، چاپگرها و سایر منابع اشتراکی را می دهد.
در این آموزش، ما Samba را بر روی CentOS 7 نصب می کنیم و آن را به عنوان یک سرور مستقل برای به اشتراک گذاری فایل در سیستم عامل های مختلف بر روی یک شبکه پیکربندی می کنیم.
Samba و کاربران زیر را ایجاد خواهیم کرد.
کاربران:
- sadmin – یک کاربر اداری با دسترسی به خواندن و نوشتن به تمام سهام.
- josh – یک کاربر معمولی با اشتراک فایل شخصی خود.
Shares :
- users – این سهم توسط مجوزهای خواندن و نوشتن توسط همه کاربران در دسترس خواهد بود.
- josh – این سهم فقط توسط کاربران جاش و sadmin با مجوزهای خواندن و نوشتن در دسترس خواهد بود.
اشتراک فایل از همه دستگاه های موجود در شبکه شما قابل دسترسی خواهد بود. بعدا در آموزش، ما همچنین دستورالعمل های دقیق در مورد چگونگی اتصال به سرور سامبا از مشتریان لینوکس، ویندوز و macOS ارائه خواهیم داد.
پیش نیازها
قبل از شروع، اطمینان حاصل کنید که به سیستم CentOS 7 خود به عنوان یک کاربر با امتیازات sudo وارد شده اید .
نصب Samba در CentOS
سامبا در مخازن CentOS استاندارد موجود است. برای نصب آن در سیستم CentOS خود، دستور زیر را اجرا کنید:
sudo yum install samba samba-client
پس از تکمیل نصب، خدمات سامبا را شروع و فعال کنید تا بطور خودکار بر روی سیستم راه اندازی شوند:
sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service
سرویس smbd سرویس های اشتراک گذاری فایل و چاپ را فراهم می کند و در پورت های 139 و 445 TCP گوش می دهد. سرویس nmbd سرویس NetBIOS را بر روی سرویس های نامگذاری IP فراهم می کند و در پورت 137 UDP گوش می دهد.
پیکربندی فایروال
حالا که Samba نصب شده و بر روی سیستم CentOS شما اجرا می شود، شما باید [فایروال خود را تنظیم کنید] (/ post / how-to-setup-firewall-with-firewalld-on-centos-7 / برای انجام این کار، دستورات زیر را اجرا کنید:
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba
ساخت سامبا کاربران و ساختار دایرکتوری
برای راحتی قابلیت نگهداری و انعطاف پذیری به جای استفاده از دایرکتوری های خانگی استاندارد ( /home/user )، تمام دایرکتوری ها و اطلاعات Samba در دایرکتوری /samba .
با ایجاد دایرکتوری /samba شروع کنید:
sudo mkdir /samba
یک گروه جدید به نام sambashare کنید بعدا همه کاربران Samba را به این گروه اضافه خواهیم کرد.
sudo groupadd sambashare
مالکیت گروه دایرکتوری /samba را به sambashare :
sudo chgrp sambashare /samba
Samba از کاربران لینوکس و سیستم مجوز گروه استفاده می کند اما دارای
مکانیزم احراز هویت خود است که جدا از احراز هویت لینوکس استاندارد است. ما کاربران را با استفاده از ابزار استاندارد useradd لینوکس ایجاد می کنیم و سپس پسورد کاربری را با ابزار smbpasswd می کنیم.
همانطور که در مقدمه ذکر شد، ما یک کاربر معمولی ایجاد می کنیم که دسترسی به اشتراک فایل شخصی و یک حساب مدیریتی با دسترسی و خواندن و نوشتن به تمام اشتراک ها در سرور Samba خواهد داشت.
ایجاد سامبا کاربران
برای ایجاد یک کاربر جدید به نام josh ، از دستور زیر استفاده کنید:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
گزینه های useradd دارای معانی زیر هستند:
- -M- دایرکتوری خانگی کاربر را ایجاد نمی کند. ما این دایرکتوری را به صورت دستی ایجاد می کنیم.
-
-d /samba/josh– دایرکتوری خانگی کاربر را به/samba/joshست کنید. -
-s /usr/sbin/nologin– دسترسی پوسته را برای این کاربر غیرفعال کنید. -
-G sambashare– کاربر را به گروهsambashareاضافه کنید.
ایجاد دایرکتوری خانگی کاربر و تعیین مالکیت دایرکتوری به کاربر josh و گروه sambashare :
sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh
فرمان زیر بیت setgid را به دایرکتوری /samba/josh اضافه میکند، بنابراین فایل های جدید ایجاد شده در این پوشه، گروهی از دایرکتوری والد را به ارث خواهند برد. به این ترتیب، بدون توجه به اینکه کاربر یک فایل جدید ایجاد می کند، فایل صاحب گروه sambashare خواهد بود. به عنوان مثال، اگر مجوزهای دایرکتوری را به 2770 sadmin کاربر sadmin یک فایل جدید ایجاد می کند، کاربر josh قادر به خواندن / نوشتن در این فایل نخواهد بود.
sudo chmod 2770 /samba/josh
با تنظیم گذرواژه کاربر حساب کاربری josh را به پایگاه داده Samba اضافه کنید:
sudo smbpasswd -a josh
از شما خواسته خواهد شد تا رمز عبور کاربر را وارد کنید و تایید کنید.
New SMB password:Retype new SMB password:Added user josh.
پس از تنظیم رمز عبور، حساب سامبا را با تایپ کردن فعال کنید:
sudo smbpasswd -e josh
Enabled user josh.
برای ایجاد یک کاربر دیگر تکرار همان روند را در هنگام ایجاد کاربر josh .
بعد، بگذارید یک کاربر و گروه sadmin . همه اعضای این گروه مجوزهای اداری دارند. بعدا اگر میخواهید مجوزهای اداری را به کاربر دیگری اعطا کنید، این کاربر را به گروه sadmin اضافه کنید .
با استفاده از تایپ کردن کاربر اداری ایجاد کنید:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
دستور بالا همچنین گروه sadmin ایجاد می کند و کاربر را به گروه های sadmin و sadmin اضافه می کند.
رمز عبور را تنظیم کنید و کاربر را فعال کنید:
sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin
بعد، ایجاد دایرکتوری اشتراک Users :
sudo mkdir /samba/users
مالک پوشه را به user sadmin و گروه sambashare :
sudo chown sadmin:sambashare /samba/users
این دایرکتوری توسط تمام کاربران معتبر قابل دسترسی خواهد بود. دستور زیر، دسترسی و خواندن / خواندن را به اعضای گروه sambashare در دایرکتوری /samba/users :
sudo chmod 2770 /samba/users
پیکربندی Samba Shares
فایل پیکربندی سامبا را باز کنید و بخشها را اضافه کنید:
sudo nano /etc/samba/smb.conf
[users]
path = /samba/users
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = @sambashare @sadmin
[josh]
path = /samba/josh
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = josh @sadmin
گزینه ها دارای معانی زیر هستند:
-
[users]and[josh]– نامهای اشتراکی که در هنگام ورود به آن استفاده می کنید. -
path– مسیر به اشتراک گذاری. -
browseable– این که آیا سهم باید در لیست shere موجود ذکر شود. با تنظیم بهnoکاربر دیگر قادر به دیدن سهم نخواهند بود. -
read only– این که آیا کاربران مشخص شده در لیستvalid usersقادر به نوشتن به این سهم هستند. -
force create mode– مجوزهای فایل های جدید ایجاد شده در این اشتراک را تنظیم می کند. -
force directory mode– مجوزهای دایرکتوری تازه ایجاد شده در این اشتراک را تنظیم می کند. -
valid users– فهرستی از کاربران و گروههایی که مجاز به دسترسی به اشتراک هستند. گروه ها با نماد@پیشوند دارند.
برای اطلاعات بیشتر در مورد گزینه های موجود، صفحه مستندات فایل پیکربندی Samba را ببینید.
پس از انجام، سرویس Samba را دوباره راه اندازی کنید:
sudo systemctl restart smb.servicesudo systemctl restart nmb.service
در بخش های زیر ما به شما نحوه اتصال به اشتراک Samba از لینوکس، macOS و ویندوز مشتریان را نشان خواهیم داد.
اتصال به Samba Share از لینوکس
کاربران لینوکس می توانند به اشتراک سامبا از خط فرمان دسترسی پیدا کنند، با استفاده از مدیر فایل یا سوار سامبا به اشتراک بگذارند.
با استفاده از client smbclient
smbclient یک ابزار است که به شما اجازه می دهد از Samba به خط فرمان دسترسی پیدا کنید. بسته smbclient در اغلب توزیع های لینوکس از قبل نصب نشده است، بنابراین شما باید آن را با مدیریت بسته توزیع خود نصب کنید.
برای نصب smbclient در اوبونتو و دبیان اجرا:
sudo apt install smbclient
برای نصب smbclient در CentOS و Fedora اجرا کنید:
sudo yum install samba-client
نحو دسترسی به سهم سامبا به شرح زیر است:
mbclient //samba_hostname_or_server_ip/share_name -U username
برای مثال برای اتصال به یک نام به نام josh در یک سرور سامبا با آدرس IP 192.168.121.118 به عنوان کاربر josh شما می توانید اجرا کنید:
smbclient //192.168.121.118/josh -U josh
از شما خواسته خواهد شد که رمز عبور کاربر را وارد کنید.
Enter WORKGROUP\josh's password:
پس از وارد کردن گذرواژه شما به رابط فرمان Samba وارد می شوید.
Try "help" to get a list of possible commands. smb: \>
نصب Samba share
برای نصب سهم Samba در لینوکس ابتدا باید بسته ی cifs-utils را نصب کنید.
در اوبونتو و دبیان اجرا شود:
sudo apt install cifs-utils
در CentOS و فدورا اجرای:
sudo yum install cifs-utils
بعد، یک نقطه اتصال ایجاد کنید:
sudo mkdir /mnt/smbmount
با استفاده از دستور زیر، به اشتراک گذاشتن سهم
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
برای مثال برای نصب یک اشتراک به نام josh در یک سرور سامبا با آدرس IP 192.168.121.118 به عنوان کاربر josh به نقطه ی نصب /mnt/smbmount شما می توانید اجرا کنید:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
از شما خواسته خواهد شد که رمز عبور کاربر را وارد کنید.
Password for josh@ //192.168.121.118/josh: ********
با استفاده از GUI
فایل ها، مدیر فایل پیش فرض در Gnome دارای یک گزینه داخلی برای دسترسی به سهام سامبا است.
- باز کردن فایل ها و روی “دیگر مکان ها” در نوار کناری کلیک کنید.
- در «اتصال به سرور»، آدرس اشتراکی Samba را در قالب زیر وارد کنید
smb://samba_hostname_or_server_ip/sharename. - روی «اتصال» کلیک کنید و صفحه زیر ظاهر خواهد شد:

انتخاب “کاربر ثبت شده”، نام کاربری و رمز عبور سامبا را وارد کنید و روی “اتصال” کلیک کنید. فایل های سرور Samba نمایش داده خواهند شد.

اتصال به Samba Share از macOS
در MacOS، شما می توانید از سهام سامبا یا از خط فرمان یا با استفاده از پیش فرض مدیر فایل فایل macOS یاب دسترسی پیدا کنید. مراحل زیر نشان می دهد چگونگی دسترسی به اشتراک با استفاده از فایندر.
- “Finder” را باز کنید، “Go” را انتخاب کنید و روی “Connect To” کلیک کنید.
- در «اتصال به»، آدرس اشتراکی Samba را در قالب زیر وارد کنید
smb://samba_hostname_or_server_ip/sharename.

روی «اتصال» کلیک کنید و صفحه زیر ظاهر خواهد شد:

انتخاب “کاربر ثبت شده”، نام کاربری و رمز عبور سامبا را وارد کنید و روی “اتصال” کلیک کنید. فایل های سرور Samba نمایش داده خواهند شد.

اولین نفری باشید که از آموزشها و تخفیفهای ویژه با خبر میشوید 😉
با عضویت در خبرنامه از 80 درصد تخفیف بهره مند شوید
اتصال به Samba Share از ویندوز
کاربران ویندوز نیز گزینه ای برای اتصال به اشتراک Samba از هر دو خط فرمان و رابط کاربری گرافیکی دارند. مراحل زیر نشان می دهد چگونگی دسترسی به اشتراک با استفاده از فایل اکسپلورر ویندوز.
- باز کردن فایل اکسپلورر و در سمت چپ بر روی ” This PC ” راست کلیک کنید.
- ” Choose a custom network location ” را انتخاب کنید و سپس روی ” Next ” کلیک کنید.
- در ” Internet or network address “، آدرس Samba share را در فرمت زیر وارد کنید:
\\samba_hostname_or_server_ip\sharename.

روی «بعدی» کلیک کنید و از شما خواسته می شود تا وارد حساب کاربری شوید که در زیر نشان داده شده است:

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

برای رفتن به setup wizard ، روی «بعدی» کلیک کنید. روی “Finish” کلیک کنید و فایل ها در سرور Samba نمایش داده خواهند شد.

نتیجه
در این آموزش، شما یاد گرفتید که چگونه یک سرور Samba را بر روی CentOS 7 نصب کنید و انواع مختلفی از مشترکین و کاربران ایجاد کنید. ما همچنین به شما نشان داده ایم که چگونه از سرورهای سامبا از لینوکس، macOS و دستگاه های ویندوز استفاده کنید.