پیکربندی سامبا برای اشتراک گذاری بین لینوکس و ویندوز

خرید بک لینک

همانطور که می دانید برای به اشتراک گذاری و انتقال اطلاعات بین سیستم عامل لینوکس و دیگر سیستم عاملها نظیر ویندوز می توان از سرویس سامبا استفاده کرد به عبارتی دیگر، سامبا پروتکل به اشتراک گذاری فایل ها و منابع موجود در شبکه می باشد. پیکربندی سرویس سامبا به دو روش Secure و Anonymous قابل انجام است که در این مقاله به تشریح مراحل پیکربندی این سرویس به هر دو این روشها در محیط اوراکل لینوکس 7.6 می پردازیم.

مرحله اول: به عنوان گام اول، بسته سامبا را نصب می کنیم:

[root@OLinux7 ~]# yum install samba

—> Package samba.x86_64 0:4.8.3-4.el7 will be installed

–> Processing Dependency: samba-libs = 4.8.3-4.el7 for package: samba-4.8.3-4.el7.x86_64

–> Processing Dependency: samba-common-tools = 4.8.3-4.el7 for package: samba-4.8.3-4.el7.x86_64

–> Processing Dependency: libxattr-tdb-samba4.so(SAMBA_4.8.3)(64bit) for package: samba-4.8.3-4.el7.x86_64

–> Processing Dependency: libxattr-tdb-samba4.so()(64bit) for package: samba-4.8.3-4.el7.x86_64

—> Package samba-common-tools.x86_64 0:4.8.3-4.el7 will be installed

—> Package samba-libs.x86_64 0:4.8.3-4.el7 will be installed

–> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.1.9)(64bit) for package: samba-libs-4.8.3-4.el7.x86_64

–> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.1.6)(64bit) for package: samba-libs-4.8.3-4.el7.x86_64

–> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.0.6)(64bit) for package: samba-libs-4.8.3-4.el7.x86_64

–> Processing Dependency: libpytalloc-util.so.2()(64bit) for package: samba-libs-4.8.3-4.el7.x86_64

—> Package pytalloc.x86_64 0:2.1.13-1.el7 will be installed

Installed size: 3.7 M

Is this ok [y/d/N]: y

Installing : pytalloc-2.1.13-1.el7.x86_64 1/4

Installing : samba-libs-4.8.3-4.el7.x86_64 2/4

Installing : samba-common-tools-4.8.3-4.el7.x86_64 3/4

Installing : samba-4.8.3-4.el7.x86_64 4/4

Installed: samba.x86_64 0:4.8.3-4.el7

Complete!

مرحله دوم: فایل پیکربندی سرویس سامبا، در مسیر etc/samba/ قرار دارد:

[root@OLinux7 ~]# cd /etc/samba

[root@OLinux7 samba]# ls -l

-rw-r–r–. 1 root root 20 Oct 30 2018 lmhosts

-rw-r–r–. 1 root root 706 Oct 30 2018 smb.conf

-rw-r–r–. 1 root root 11327 Oct 30 2018 smb.conf.example

این فایل در oracle linux 7u6، به صورت پیش فرض شامل قسمتهای [global]، [homes]، [printers] ، [print$] می باشد که از این بین، پارامترهای تعیین شده در قسمت global که شامل پیکربندی کلی هم می باشند، از اهمیت بیشتری برخوردارند همچنین پارامترهای تعریف شده در قسمت homes، امکان دسترسی به home directory را برای کاربران هموار می سازند.

با این اوصاف، تنظیم هیچ کدام از این چهار قسمت الزامی نمی باشد و در صورت اطلاع از تنظیمات پیش فرض سرویس سامبا، می توان از هر کدام از این چهار قسمت صرف نظر کرد:

[root@OLinux7 samba]# cat smb.conf

[global]

workgroup = WORKGROUP

security = user

passdb backend = tdbsam

printing = cups

printcap name = cups

load printers = yes

cups options = raw

[homes]

comment = Home Directories

valid users = %S, %D%w%S

browseable = No

read only = No

inherit acls = Yes

[printers]

comment = All Printers

path = /var/tmp

printable = Yes

create mask = 0600

browseable = No

[print$]

comment = Printer Drivers

path = /var/lib/samba/drivers

write list = @printadmin root

force group = @printadmin

create mask = 0664

directory mask = 0775

نکته: برای دسترسی به object به اشتراک گذاشته شده در یک کلاینت ویندوزی، باید workgroup تعیین شده در این سرویس(در قسمت GLOBAOL)، با workgroup تعیین شده برای کلاینت ویندوز یکسان باشد. با اجرای دستور net config workstation در محیط ویندوز می توان workgroup آن را تعیین کرد:

>net config workstation

Computer name \USEF-PC

Full Computer name USEF-PC

Workstation domain WORKGROUP

COM Open Timeout (sec) 0

COM Send Count (byte) 16

COM Send Timeout (msec) 250

The command completed successfully.

در ادامه قصد داریم دایرکتوری bkp/ را به روش Secured با محیط ویندوز به اشتراک بگذاریم برای این کار، قسمت جدیدی را با عنوان [bkp] به این فایل اضافه می کنیم:

[root@OLinux7 ~]# mkdir /bkp

[root@OLinux7 samba]# vi smb.conf

[global]

workgroup = WORKGROUP

security = user

passdb backend = tdbsam

printing = cups

printcap name = cups

load printers = yes

cups options = raw

[bkp]

comment = backup server

browseable = yes

path = /bkp

writable = yes

create mask = 0755

توضیحی در مورد پارامترهای استفاده شده در قسمت [bkp]:

[bkp]: نام دایرکتوری و یا منبعی که به اشتراک گذاشته شده.

Path: تعیین مسیر دایرکتوری که قرار است به اشتراک گذاشته شود.

browsable: دایرکتوری bkp قابل رویت باشد؟

Writable: با تنظیم این پارامتر به مقدار yes، امکان انجام تغییرات در محتویات دایرکتوری bkp/ بوجود خواهد آمد به عبارت دیگر، با تنظیم این پارامتر، کاربر می تواند کارهایی نظیر ایجاد فایل و یا دایرکتوری را انجام دهد.

comment: توضیحی در مورد شی به اشتراک گذاشته شده.

create mask: تنظیم permission پیش فرض برای فایلهایی که در مسیر اشتراکی ایجاد می شوند، با کمک این پارامتر قابل انجام است.

valid users: با کمک پارامتر valid users می توان اسامی کاربران و گروه های کاربری معتبر را مشخص کرد. برای مثال با تنظیم پارامتر زیر، می توان از یکی از دو کاربر user1 و user2 به منبع اشتراک گذاری شده دسترسی پیدا کرد یا اینکه کاربر مورد نظر عضو یکی از دو گروه oinstall و dba باشد:

[root@OLinux7 ~]# useradd -g oinstall user1

[root@OLinux7 ~]# useradd -g dba user2

valid users = user1 user2 @oinstall @dba

بعد از تنظیم پارامترهای مورد نظر در فایل smb.conf، می توانیم از طریق دستور testparm درستی پارامترهای وارد شده را چک کنیم.

[root@OLinux7 samba]# testparm

Load smb config files from /etc/samba/smb.conf

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

Processing section “[homes]”

Processing section “[printers]”

Processing section “[print$]”

Processing section “[bkp]”

Loaded services file OK.

Server role: ROLE_STANDALONE

برای مثال، با وارد کردن عبارت بی معنی در انتهای فایل smb.conf، دستور فوق خطایی را برمی گرداند:

[root@OLinux7 ~]# echo “pat=/u01”>> /etc/samba/smb.conf

[root@OLinux7 ~]# testparm

Load smb config files from /etc/samba/smb.conf

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

Processing section “[homes]”

Processing section “[printers]”

Processing section “[print$]”

Processing section “[bkp]”

Unknown parameter encountered: “pat”

Ignoring unknown parameter “pat”

Loaded services file OK.

Server role: ROLE_STANDALONE

مرحله سوم: برای پیکربندی سرویس سامبا به روش Secured، باید کاربری را در محیط لینوکس ایجاد می کنیم:

[root@OLinux7 ~]# useradd usef

[root@OLinux7 ~]# passwd usef

Changing password for user usef.

New password:

BAD PASSWORD: The password is a palindrome

Retype new password:

passwd: all authentication tokens updated successfully.

پسورد سامبا را برای کاربر usef تنظیم می کنیم:

[root@OLinux7 samba]# smbpasswd -a usef

New SMB password:

Retype new SMB password:

Added user usef.

سوییچ a در دستور فوق سبب می شود تا نام این کاربر به فایل account_policy.tdb اضافه شود:

[root@OLinux7 samba]# ls -lh /var/lib/samba/

total 1.7M

-rw——- 1 root root 412K Jan 25 12:05 account_policy.tdb

drwxrwxr-x 2 root printadmin 6 Oct 30 2018 drivers

-rw-r–r– 1 root root 1.3M Jan 25 12:05 gencache.tdb

-rw——- 1 root root 696 Jan 25 12:05 group_mapping.tdb

drwxr-xr-x. 3 root root 84 Jan 25 12:05 lock

drwx——. 3 root root 59 Jan 25 12:05 private

مالکیت دایرکتوری bkp/ را به کاربر usef تغییر می دهیم:

[root@OLinux7 samba]# chown ali /bkp

نکته: دستور pdbedit نام کاربرانی که برای انها پسورد smb تنظیم شده است را نمایش می دهد:

[root@OLinux7 samba]# pdbedit -Lv

—————

Unix useame: usef

NT useame:

Account Flags: [U ]

User SID: S-1-5-21-1761771055-2017651478-3314902110-1000

Primary Group SID: S-1-5-21-1761771055-2017651478-3314902110-513

Full Name:

Home Directory: \OLinux7usef

HomeDir Drive:

Logon Script:

Profile Path: \OLinux7usefprofile

Domain: OLINUX7

Account desc:

Workstations:

Munged dial:

Logon time: 0

Logoff time: Wed, 06 Feb 2036 10:06:39 EST

Kickoff time: Wed, 06 Feb 2036 10:06:39 EST

Password last set: Sat, 25 Jan 2020 12:05:09 EST

Password can change: Sat, 25 Jan 2020 12:05:09 EST

Password must change: never

Last bad password : 0

Bad password count : 0

Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

مرحله چهارم: در این مرحله سرویس سامبا را استارت می کنیم:

[root@OLinux7 samba]# systemctl status smb

â smb.service – Samba SMB Daemon

Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)

Active: active (running) since Sat 2020-01-25 12:10:59 EST; 4s ago

Docs: man:smbd(8)

man:samba(7)

man:smb.conf(5)

Main PID: 40570 (smbd)

Status: “smbd: ready to serve connections…”

CGroup: /system.slice/smb.service

ââ40570 /usr/sbin/smbd –foreground –no-process-group

ââ40572 /usr/sbin/smbd –foreground –no-process-group

ââ40573 /usr/sbin/smbd –foreground –no-process-group

ââ40574 /usr/sbin/smbd –foreground –no-process-group

Jan 25 12:10:59 OLinux7 systemd[1]: Starting Samba SMB Daemon…

Jan 25 12:10:59 OLinux7 smbd[40570]: [2020/01/25 12:10:59.966198, 0] ../lib/util/become_daemon.c:138(daemon_ready)

Jan 25 12:10:59 OLinux7 smbd[40570]: daemon_ready: STATUS=daemon ‘smbd’ finished starting up and ready to serve connections

Jan 25 12:10:59 OLinux7 systemd[1]: Started Samba SMB Daemon.

برای استارت خودکار سرویس smb بعد از هر بار reboot کردن سرور می توان از دستور زیر استفاده کرد:

[root@OLinux7 ~]# systemctl enable smb

Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.

نکته: با کمک دستور smbstatus می توان لیست همه کلاینتهایی که با کمک سرویس سامبا به سرور متصل شده اند را مشاهده کرد:

[root@OLinux7 ~]# smbstatus

Samba version 4.8.3

PID Useame Group Machine Protocol Version Encryption Signing

—————————————————————————————————————————————-

5182 usef usef 192.168.1.20 (ipv4:192.168.1.20:53375) SMB3_02 – partial(AES-128-CMAC)

Service pid Machine Connected at Encryption Signing

———————————————————————————————

bkp 5182 192.168.1.20 Sun Feb 2 10:02:09 AM 2020 EST – –

Locked files:

Pid Uid DenyMode Access R/W Oplock SharePath Name Time

————————————————————————————————–

5182 54323 DENY_NONE 0x100081 RDONLY NONE /bkp . Sun Feb 2 10:02:08 2020

5182 54323 DENY_NONE 0x100081 RDONLY NONE /bkp . Sun Feb 2 10:02:08 2020

مرحله پنجم: برای مشاهده وضعیت منابع به اشتراک گذاشته شده می توان بسته samba-client را نصب کرده و از دستور smbclient استفاده کنیم:

[root@OLinux7 samba]# yum install samba-client

Loaded plugins: ulninfo

Resolving Dependencies

–> Running transaction check

—> Package samba-client.x86_64 0:4.8.3-4.el7 will be installed

–> Finished Dependency Resolution

Total download size: 617 k

Installed size: 2.0 M

Is this ok [y/d/N]: y

Installing : samba-client-4.8.3-4.el7.x86_64 1/1

Verifying : samba-client-4.8.3-4.el7.x86_64 1/1

Installed:

samba-client.x86_64 0:4.8.3-4.el7

Complete!

جهت بررسی وضعیت منابع اشتراک گذاشته شده میتوانیم از دستور زیر استفاده کنیم:

[root@OLinux7 samba]# smbclient -L //OLinux7 -U usef

Enter SAMBAusef’s password:

Sharename Type Comment

——— —- ——-

print$ Disk Printer Drivers

bkp Disk backup server

IPC$ IPC IPC Service (Samba 4.8.3)

usef Disk Home Directories

Reconnecting with SMB1 for workgroup listing.

Server Comment

——— ——-

Workgroup Master

——— ——-

مرحله ششم: با طی کردن مراحل زیر در محیط ویندوز، به دایرکتوری bkp/ دسترسی پیدا خواهیم کرد:

[root@OLinux7 ~]# cd /bkp/

[root@OLinux7 bkp]# ls -lh

-rwxr–r– 1 usef usef 0 Jan 25 16:18 myfile.txt

برای mount کردن فضای bkp/ در یک ماشین لینوکسی، می توان از دستور زیر استفاده کرد:

[root@myhost ~]#mkdir /mydir

[root@myhost ~]# mount -t cifs -o rw,useame=usef,password=c //192.168.1.20/bkp /mydir

در قسمت فوق، نحوه پیکربندی سامبا به روش Secured مورد بررسی قرار گرفت برای پیکربندی Anonymous Samba sharing می توان فایل کانفیگ smb.conf را به صورت زیر تنظیم کرد:

[root@OLinux7 ~]# chown -R nobody:nobody /bkp

[root@OLinux7 ~]# chmod -R 775 /bkp/

[root@OLinux7 ~]# vi /etc/samba/smb.conf

[global]

workgroup = WORKGROUP

security = user

map to guest = bad user

passdb backend = tdbsam

printing = cups

printcap name = cups

load printers = yes

cups options = raw

[bkp]

path = /bkp

browsable =yes

writable = yes

guest ok = yes

read only = no

[root@ ~]# systemctl restart smb

با کمک پارامتر guest ok می توان بدون انجام هرگونه اعتبارسنجی از منبع به اشتراک گذاری شده استفاده کرد.

ارتباط با نویسنده مطلب:vahidusefzadeh@ کانال تخصصی اوراکل و لینوکس: OracleDB@

سون لرن • آموزش...

ما را در سایت سون لرن • آموزش دنبال می‌کنید

برچسب: نویسنده: استخدام کار بازدید: 351 تاريخ: يکشنبه 18 اسفند 1398 ساعت: 12:50

صفحه بندی

خبرنامه