نصب و تنظیم Samba در لینوکس

نصب و تنظیم Samba

سامبا برنامه ای برای اشتراک گذاری فایل ها بین سیستم های لینوکسی با سیستم های ویندوزی یا لینوکسی است. با این کار فایل های سیستم لینوکسی از ویندوز قابل دسترسی می باشد. حتی میتوانید فایل سرور لینوکسی در شبکه ایجاد نمایید. در اینجا آموزش راه نصب و تنظیم 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

پیمایش به بالا