سامبا منبع باز و مجدد پروتکل به اشتراک گذاری پرونده شبکه 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.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo 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/josh
sudo 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.service
sudo 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 و دستگاه های ویندوز استفاده کنید.
اولین نفر باشید که نظر ارسال میکنید