سامبا برنامه ای برای اشتراک گذاری فایل ها بین سیستم های لینوکسی با سیستم های ویندوزی یا لینوکسی است. با این کار فایل های سیستم لینوکسی از ویندوز قابل دسترسی می باشد. حتی میتوانید فایل سرور لینوکسی در شبکه ایجاد نمایید. در اینجا آموزش راه نصب و تنظیم Samba را با هم میبینیم.
راه اندازی و پیکر بندی Samba در Ubuntu
نصب Samba
برای نصب سامبا از دستورات زیر استفاده میکنیم.
sudo apt update
sudo apt install samba
تست نصب شدن برنامه
whereis samba
خروجی شبیه زیر باید باشد
samba: /usr/sbin/samba /usr/lib/samba /etc/samba /usr/share/samba /usr/share/man/man7/samba.7.gz /usr/share/man/man8/samba.8.gz
سرویس سامبا را راه اندازی میکنیم. دستورات زیر برای راه اندازی سرویس، قطع و ری استارت استفاده میشود.
sudo service smbd start
sudo service smbd stop
sudo service smbd restart
OR
sudo systemctl start smbd
sudo systemctl stop smbd
sudo systemctl restart smbd
برای disable کردن سرویس سامبا
sudo update-rc.d -f smbd remove
or
sudo systemctl mask smbd
برای enable کردن سرویس سامبا
sudo update-rc.d smbd defaults
or
sudo systemctl unmask smbd
پیکر بندی Samba
نصب به اتمام رسیده و اکنون و تنظیم Samba را انجام میدهیم. ابتدا فولدری را که میخواهیم به اشتراک بگذاریم را میسازیم. فولدری به نام Share میخواهیم در فولدر home ایجاد کنیم.
sudo mkdir -p /home/share
فولدر ها در لینوکس دارای سطوح دسترسی مختلف برای کاربران می باشند. در اینجا دسترسی کامل را برای فولدر Share ایجاد میکنیم که برای همه کاربران قابل خواندن و نوشتن باشد. (توصیه نشده و در ادامه با نام کاربری نیز توضیح داده میشود)
sudo chmod 777 /home/share
تنظیمات سامبا در فایل smb.conf انجام میشود. فایل را باز میکنیم.
nano /etc/samba/smb.conf
خطوط زیر را به انتهای فایل اضافه میکنیم. برای رفتن به انتهای فایل از /+alt استفاده کنید.
# Set share configuration at the end
[Document]
path = /home/share
writable = yes
guest ok = yes
guest only = yes
که در اینجا
[Document]: یک نام دلخواه که فولدر به این نام دیده میشود.
Path: مسیر فولدی که میخواهیم Share کنیم.
Writable: فولدر قابل نوشتن باشد یا خیر
guest ok: در صورت yes تمامی کاربران بدون یوزر و پسورد به این فولدر دسترسی دارند.
guest only: تمامی تنظیمات امنیتی بر اساس Guest است.
create mode و directory mode تنظیمات سطح دسترسی به فولدر است.
سپس با ctrl+o فایل را ذخیره کرده و با ctrl+x خارج میشویم.
سرویس را ری استارت میکنیم.
sudo service smbd restart
تا اینجا سامبا راه اندازی شده است. با وارد کردن آدرس Samba-IP-Address\share\\ در فایل اکسپلورر ویندوز باید بتوانید به فولدر دسترسی داشته باشید.
تنظیم Samba با کنترل دسترسی
بهتر است فولدر های Share شده برای کاربران تعریف شده و با نام کاربری قابل دسترس باشند.
فولدری به نام Share ایجاد کرده و کاربر و گروه به آن اختصاص میدهیم. ابتدا میبایست کاربرانی که قصد باز کردن فولدر share را دارند تعریف کرده و سطح دسترسی به فولدر و فایل ها برای آنها را تنظیم نمایید. آموزش کامل را در اینجا میتوانید ببینید.
گروه group1 را میسازیم. کاربر ario را بدون اجازه لاگین کردن در کامپیوتر، درست میکنیم و آن را عضو گروه group1 میکنیم.
فولدر share را میسازیم و مالک آن را یوزر ario و گروه group1 میکنیم.
دسترسی کامل به ario و خواندن و نوشتن به group1 میدهیم.
کاربر ario را با یک پسورد به سامبا اضافه و با e- آن را enable میکنیم
sudo groupadd group1
sudo useradd -s /usr/sbin/nologin -G group1 ario -p PASSWORD
sudo mkdir /home/share
chown ario:group1 /home/share
chmod 2750 /home/share
sudo smbpasswd -a ario
sudo smbpasswd -e ario
اکنون تنظیمات فایل سامبا را انجام میدهیم.
sudo nano /etc/samba/smb.conf
خطوط زیر را به انتهای فایل اضافه میکنیم. در این مثال ما دو فولدر جدا داریم و برای هر کدام یک یوزر میسازیم.
[user1]
path = /home/share2
read only = no
browseable = no
force create mode = 0660
force directory mode = 2770
valid users = @user1 @group1
[ario]
path = /home/share
read only = no
browseable = yes
force create mode = 0660
force directory mode = 2770
valid users = @ario @group1
پارامتر های مفید به شرح زیر می باشد.
[Name] = Name appeared in network share
path = specifies a directory to which the user of the service is to be given access
read only= if this parameter is yes, then users of a service may not create or modify files in the service's directory.
gueast ok = If this parameter is yes for a service, then no password is required to connect to the service
browseable = This controls whether this share is seen in the list of available shares in a net view and in the browse list
valid users = users and groups accessing this share.
create mask (create mode) = Maximum permissions for files created by Samba.
directory mask (directory mode) = Maximum permissions for directories created by Samba.
force create mode = Forces the specified permissions for files created by Samba.
force directory mode = Forces the specified permissions for directories created by Samba.
force group (group) = Effective group for a user accessing this share.
force user = Effective username for a user accessing this share.
delete readonly = Allows a user to delete a read-only file from a writable directory.
inherit permissions = If yes, permissions on new files and directories are inherited from parent directory.
با دستور testparm تنظیمات سامبا را میتوانید مشاهده نمایید.
در ویندوز زمانی که به فولدرهای شبکه وارد میشوید در صورتی که کاربر و پسورد داشته باشد، از شما نام کاربری درخواست میشود. اگر ذخیره کنید در Control panel > Credential Manager قسمت Windows Credential ذخیره میشود. اگر ذخیره نکنید به صورت موقت در ویندوز کش شده و تا ری استارت سیستم باقی می ماند. اگر میخواهید از کش موقت ویندوز پاک شود در CMD دستورات زیر را به ترتیب وارد کنید.
net stop workstation
net start workstation