การ set Samba server ให้แชร์ทรัพยากรบน linux
Samba server คือการแชร์ทรัพยากร บนเครื่อง Linux ให้ Windows Networking
ใช้งาน ถ้าท่านเลือก package samba ตอนติดตั้งด้วย slackware 3.5
ก็จะทำให้เสร็จ ให้ใช้ webmin ในการเซ็ตว่าจะแชร์ directory ใดให้ windows
ใช้งานได้บ้าง (เพราะมันง่ายดี ไม่เช่นนั้นก็ต้องนั่ง edit ไฟล์
/etc/smb.conf ด้วยตัวเอง) โดยท่านต้องเซ็ตให้เป็น workgroup เดียวกับที่
windows 95 ใช้งานอยู่ หรือถ้ายังไม่มีก็ให้กำหนดใหม่ และเซ็ต windows 95
ให้เป็น workgroup เดียวกันด้วย directory ที่แชร์เป็น default คือ home
directory ของแต่ละ user ที่ทำการล็อกเข้าไป ต่อไปเป็นตัวอย่างไฟล์
/etc/smb.conf ซึ่งทำการแชร์ home directory และ cdrom (สามารถลง
Microsoft Office แบบเน็ตเวอร์ค บนเครื่อง Linux ได้)
#============ Global Settings======+============
[global]
#============ Share Definitions =================
workgroup = SRGROUP
log file = /usr/local/samba/var/log.%m
max log size = 50
printer = printers
socket options = TCP_NODELAY
dns proxy = no
load printers = yes
security = user
# use password server option only with security = server
path = /usr/spool/samba
wins support = false
server string = Samba Server
[homes]
comment = Home Directories
browseable = no
writable = yes
[cdrom]
guest account = guest
path = /cdrom
public = yes
จากการทดลองใช้งาน จะพบว่าถ้าเป็น IP จริง เมื่อทำการ double click
ที่ Network Neighborhood ก็จะมองเห็นลินุกซ์ และสิ่งที่แชร์ไว้
แต่ถ้าเป็น Private IP จะมองไม่เห็น ต้องใช้วิธี find computer โดยหาชื่อ
host ของ Linux ก็จะมองเห็นและสามารถใช้งานได้ (ควรล็อกเข้าเครื่อง
windows 95 ด้วย user ที่มีบน Linux ด้วย)
ในกรณี ที่เราใช้ Windows 98 เป็น Client Win98 จะเข้ารหัส UserName
และ Password ก่อนที่จะส่งให้ Linux ไม่เหมือนกับ Win95 แต่ Linux
ไม่ต้องเข้ารหัส logon ดังนั้นต้องแก้ Registry ก่อนครับ ดังนี้
HKEY_LOCAL_MACHINE --> System --> Current --> ControlSet
--> Services --> VxD --> VNETSUP จากนั้นเพิ่มค่าใหม่เป็น dward
ที่เมนู Edit --> New --> Dword Value จากนั้น rename และตั้งชื่อ
EnablePlainTextPassword จากนั้น กำหนดค่า Value Data = 1 จากนั้น Boot
เครื่องใหม่ หากต้องการLogin ที่ Win9x ทีเดียว เข้าถึง Linux ก็ควรตั้ง
UserName และ Password เหมือน Linux Server ด้วย
ไม่ต้องไปแก้ ถึงขนาดนั้นก็ได้ครับที่ผมใช้อยู่ก็ได้ ตอน adduser
ก็แค่ใส่ -n มันจะไม่เช็ค pass word ทีนี้ พอเข้า win98 ก็เข้าถึง linux
ได้เลย
ใน win XP น่าจะที่
HKEY_LOCAL_MACHINE>Sytem>CurrentControlSet>Services>VxD>VNETSUP
เพิ่มค่าใหม่เป็น dward เมนู Edit>New>Dword Value และ Raname เป็น
EnablePlainTextPassword กำหนดค่า
ValueData=1
หรือไม่ find หา EnablePlainTextPassword
ส่วนที่สำคัญของไฟล์คอนฟิก /etc/samba/smb.conf ถ้าไม่นับส่วนของเครื่องพิมพ์แล้วมีเท่านี้จริงๆครับ
===== Global Settings =====
[global]
workgroup = ICAFE
server string = Noah's Computer
#=======
security = user
#=======
password level = 16
username level = 16
#=======
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
#=======
workgroup กับคำอธิบายก็ตั้งชื่อเอาตามสะดวก ผมแยกบรรทัดออกมาเป็นส่วนๆเพราะกล่าวถึงต่อไป
ส่วนที่เกี่ยวกับการตั้งค่าสำหรับแชร์ไฟล์ มีตัวอย่างดังนี้
พื้นที่เก็บข้อมูลของผู้ใช้ ก็ที่เรา telnet หรือ ssh เข้านั่นแหละ
[homes]
comment = Home Directories
browseable = no
writable = yes
พื้นที่สาธารณะ สามารถเขียนได้เฉพาะผู้ใช้ที่อยู่ในกลุ่ม admin
(ต้องสร้างไดเรกทอรี่ /home/samba ไว้ด้วย)
[public]
comment = Public Stuff
path = /home/samba
public = yes
writable = no
write list = @admin
เครื่องนี้มีไฟล์เพลงที่ rip เอง เก็บไว้แชร์ให้คนอื่นเอาไปเปิดฟังด้วย
[musics]
comment = My Music
path = /data/musics
public = yes
writable = no
รูปภาพสวยๆ อิอิ เก็บไว้ดูคนเดียว
[picz]
comment = My Pictures
path = /data/private/picz
valid users = noah
public = no
write list = noah
การให้ Samba อ่านข้อมูลผู้ใช้จากระบบ หากผู้ใช้ตั้งรหัสผ่านมากกว่า 8
ตัวอักษร อาจทำให้ผู้ดูแลระบบมึนตึ๊บเข้าอีกครั้งก็ได้
เพราะผู้ใช้จะไม่สามารถเข้าใช้งาน Samba ได้เลย เนื่องจากค่าปกติของคอนฟิก
หากไม่แก้ไขจะระบุไว้ว่า
password level = 8
username level = 8
ทีนี้ก็แก้ไขจากเลข 8 ให้เป็นเลขอื่นครับ ซัก 16 ตัวอักษรก็กำลังดี
ถ้า เครื่องที่ใช้เป็น linux เหมือนกันให้
smbclient -L <ip/name samba server> add interface
เพื่อดูว่ามีไฟล์ไหนเปิดแชร์บ้างใน linux ที่เป็น samba server
แล้วใช้การ mount ด้วย ตัวอย่างนะครับ
สมุมติว่า ถ้าเรามี document ที่แชร์อยู่
เราก็ สร้าง directory สำหรับ documnet ของ server ว่า doc_server เราก็ทำการสร้างโดยเข้าไปที่
cd /mnt
แล้ว ก็ mkdir doc_server
แล้ว ก็
mount -t smbfs //<ip/samba server name>/document /mnt/doc_server
ลองทำกันดูนะครับ