หน้าแรก > คุย...FreeBSD > Samba บน FreeBSD 7

Samba บน FreeBSD 7

สวัสดีครับ เพื่อนเคยใช้ samba หรือเปล่า ผมทดลองใช้ใน FreeBSD 7 ซึ่งจริงๆ แล้วผมไม่เคยคอนฟิก Samba บน FreeBSD มาก่อน เคยทำแต่บน Linux แต่ก็พอรู้หลักการทำงานของมันก็เลยนั่งค้นๆ แต่คิดว่าคงเป็นประโยชน์กับบางท่านที่ต้องนำ Samba มาใช้กับหน่วยงานนะครับ เลยเอามาเขียนไว้ให้ได้อ่านกัน  เริ่มกันเลย

มาเข้าใจ File Server กันก่อน

File Server  เป็นเครื่องแม่ข่ายที่มีหน้าที่จัดเก็บไฟล์ โดยการจัดเก็บไฟล์จะทำเสมือนเป็นฮาร์ดดิสก์รวมศูนย์ (Centralized disk storage) เสมือนว่าผู้ใช้งานทุกคนมีที่เก็บข้อมูลอยู่ที่เดียว เพราะควบคุม-บริหารง่าย การสำรองข้อมูล การ Restore ง่าย ข้อมูลดังกล่าว Shared ให้กับเครื่องลูกข่าย (Client) ได้ โดยส่วนมากข้อมูลที่อยู่ใน File Server คือ โปรแกรมและข้อมูล (Personal Data File) โดยปกติแล้วเซิร์ฟเวอร์ไม่มีหน้าที่ต้องประมวลข้อมูลเหล่านี้ เป็นเพียงแหล่งเก็บข้อมูล กล่าวง่ายๆ ก็คือ File Server ทำหน้าเสมือน Input/Output สำหรับไฟล์

client server คือ โครงสร้างทางระบบเครือข่ายครับ ไม่ใช่โครงสร้างของระบบจัดการไฟล์
โครงสร้างของ client/server คือการที่มีเครื่องผู้ให้บริการ (server) และเครื่องผู้ใช้บริการ (client) เชื่อมต่อกันอยู่ และเครื่องผู้ใช้บริการได้มีการติดต่อร้องขอบริการจากเครื่องผู้ให้บริการ เครื่องผู้ให้บริการก็จะจัดการตามที่เครื่องผู้ขอใช้บริการร้องขอ แล้วส่งข้อมูลกลับไปให้

ตัวอย่าง ทดลองใช้ ไฟล์เซิร์ฟเวอร์ ที่ให้ใช้ได้ฟรี เช่น

ตัวอย่าง ไฟล์เซิร์ฟเวอร์ ที่มีการชำระเงิน (จำกัดการดาวน์โหลดสำหรับผู้ที่ไม่ได้เป็นสมาชิกหรือผู้ที่ไม่ได้ชำระเงิน)

การติดตั้ง Samba3 บน FreeBSD 7 เพื่อใช้เป็นแชร์ไฟล์เซิร์ฟเวอร์
1.) cd /usr/ports/net/samba3

2.) make install clean
เลือก Option เพิ่มเติมดังนี้


3.) หากติดตั้งไปแล้วพบข้อความ error

===>  Applying FreeBSD patches for cups-base-1.3.5_2
Ignoring previously applied (or reversed) patch.
10 out of 10 hunks ignored–saving rejects to cups/ipp.c.rej
=> Patch patch-CVE-2007-4351 failed to apply cleanly.
*** Error code 1

Stop in /usr/ports/print/cups-base.
*** Error code 1

Stop in /usr/ports/net/samba3.
*** Error code 1

Stop in /usr/ports/net/samba3.

4.) ให้แก้ปัญหานี้โดยติดตั้ง cups-base ด้วยคำสั่ง pkg_add -r cups-base แทนจากนั้นค่อยสั่ง make install clean อีกครั้ง

samba# pkg_add -r cups-base

5.) เมื่อติดตั้ง cups-base ด้วยคำสั่ง pkg_add -r cubs-base แล้วสั่ง make install clean อีกครั้ง

samba# make install clean

ติดตั้ง samba เสร็จแล้วให้สั่ง rehash เพื่อปรับปรุงฐานข้อมูล hash ของ path ต่างๆ

samba# rehash

6.) ติดตั้ง nano editor (หากใครถนัดใช้ vi ข้ามขั้นตอนนี้ไปก็ได้ครับ) 

samba# pkg_add -r nano
sanba# rehash

7.) เข้าไปยังไดเร็กทอรี่ที่เก็บไฟล์คอนฟิกของระบบ /usr/local/etc

samba# cd /usr/local/etc

8.) สำรองไฟล์คอนฟิกของ samba

samba# cp smb.conf smb.conf.original

9.) แก้ไขไฟล์คอนฟิกของ samba

samba# nano smb.conf

โดยกำหนดค่าดังนี้

9.1) ไอเทม workgroup เปลี่ยนจาก MYGROUP เป็นชื่อเวิร์คกรุ๊ปของเรา
       ตัวอย่าง
       workgroup = WORKGROUP

9.2) ไอเทม server string เปลียนเป็นชื่อที่ต้องการ
        ตัวอย่าง
       server string = Samba Share

9.3) ไอเทม security กำหนดให้เป็น user
       ตัวอย่าง
       security = user

9.4) กำหนดให้ทุก user มี share ไดเร็กทอรีโดย

[homes]
   comment = Home directory for %u on %h
   browseable = no
   writable = yes
   path = /usr/home/%u/share
   valid users = %S

# ตรงส่วนนี้หมายถึงหาก user สร้างไดเร็กทอรีที่ชื่อว่า share ไว้ใน /home/username ของตัวเองจะทำให้เราสามารถ อ่าน-เขียน ข้อมูลในไดเร็กทอรีนี้ผ่านวินโดวส์ได้ เช่น ผมมี user : mrgill

สร้างไดเร็กทอรี share ให้ user

samba# mkdir /home/mrgill/share
samba# chown mrgill /home/mrgill/share

9.10) กำหนด public share เพื่อใช้เป็นไดเร็กทอรีกลาง ทุกคนมีสิทธิ์เรียกใช้งานได้ (อ่าน-เขียนได้)

[public]
   comment = %h Shared Public Directory
   path = /usr/home/samba/public
   force directory mode = 0777
   force create mode = 0777
   force group = nobody
   force user = nobody
   public = yes
   writeable = yes
   read only = no

#บันทึกไฟล์ smb.conf โดยการกด Ctrl + O แล้วก็กด enter หนึ่งครั้ง
#ออกจาก nano โดยการกด Ctrl + X

10.) สร้างไดเร็กทอรี่ /home/samba/public

samba# mkdir -p /home/samba/public
samba# chmod 777 /home/samba/public

11.) กำหนดให้ samba ทำงานเมื่อเริ่มต้นระบบ

samba# cp /etc/rc.conf /etc/rc.conf.original
samba# nano /etc/rc.conf

จากนั้นเพิ่มบรรทัดต่อไปนี้เข้าไป

samba_enable=”YES”

#บันทึกไฟล์ smb.conf โดยการกด Ctrl + O แล้วก็กด enter หนึ่งครั้ง
#ออกจาก nano โดยการกด Ctrl + X

12.) สร้าง user ที่ต้องการ ตัวอย่างผมสร้าง user : amp

samba# adduser
Username: amp
Full name: Pennapa Treechot
Uid (Leave empty for default):
Login group [amp]:
Login group is amp. Invite amp into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/amp]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:                                  #ตอนกรอกรหัสผ่านจะไม่เห็นตัวอักขระใดๆ
Enter password again:        #ตอนกรอกรหัสผ่านจะไม่เห็นตัวอักขระใดๆ
Lock out the account after creation? [no]:
Username   : amp
Password   : *****
Full Name  : Pennapa Treechot
Uid        : 1003
Class      :
Groups     : amp
Home       : /home/amp
Shell      : /bin/sh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (amp) to the user database.
Add another user? (yes/no): no
Goodbye!

13.) สร้างไดเร็กทอรี share ให้ user amp

samba# mkdir /home/amp/share
samba# chown amp:amp /home/amp/share

14. ) รีสตาร์ท Server

samba# reboot

15.) หลังจากที่เปิดเครื่องมาแล้ว login เข้าระบบ จากนั้นทำการ map user ของระบบให้เป็น user ของ samba โดยใช้คำสั่ง

samba# smbpasswd -a amp
New SMB password:        #ตอนกรอกรหัสผ่านจะไม่เห็นตัวอักขระใดๆ
Retype new SMB password:        #ตอนกรอกรหัสผ่านจะไม่เห็นตัวอักขระใดๆ
Added user amp.

ซึ่งรหัสผ่านของ smbpasswd อาจเป็นคนละตัวกับตอนที่เรา add amp เข้าระบบก็ได้

16.) ทดลองเรียกเครื่อง samba จากเครื่องวินโดวส์โดย คลิกที่ start > run > ในช่อง run พิมพ์ \\w.x.y.z (w.x.y.z หมายถึง ip ของเครื่อง samba)
เช่น \\192.168.1.20

แหล่งข้อมูล : http://www.learners.in.th/blog/mrgill/160351 วันที่ 8 กันยายน 2554

หมวดหมู่:คุย...FreeBSD
  1. ยังไม่มีความเห็น
  1. No trackbacks yet.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: