วันก่อนพี่ที่ office ให้ผม mount path จาก Linux FC4 มาไว้บน Windows ปัญหาคือ Windows ที่อยู่บน VMware บน Linux เครื่อง ดังกล่าว Mount ได้ปกติ แต่พอผมจะ mount มาใช้ที่เครื่องผม(ทั้งที่เป็น Windows&Ubuntu) กลับทำไม่ได้ ไม่รู้มันติดไร วันนี้ก็เลยต้องเอากลับมาลองที่บ้าน ก็เริ่มกันตั้งแต่ Install FC4 บน VMware หลังจากนั้นก็นั่ง config ต่อ
แต่ก่อนที่เราจะไปนั่ง Config กันผมว่าเราทำความรู้จักการทำงานของ Samba ก่อนดีกว่า Samba จะทำงานอยู่บน Protocol SMB และ CIFS ไอ้ SMB มันจะดีตรงที่จะมีระบบ Lock file & record ไฟล์ต่างๆ เพื่อป้องกันการแก้ไขไฟล์ซ้ำกัน ส่วน CIFS นั้น พัฒนาต่อจาก SMB โดย CIFS จะมีการ Lock file แบบ Op-lock (Opportunistic Lock) ไอ้ Op-lock นี้มันจะดีกว่าตรงที่เวลามีคนใช้ไฟล์เดียวกัน มันจะสั่งให้คนแรกหยุดใช้งานไฟล์ดังกล่าวแล้วให้ส่งไฟล์ดังกล่าวกลับ server แล้วไอ้คนที่สองค่อยใช้แทน
การทำงานของ Samba จะทำงานอยู่บน Port 137,138 และ 139
- 137 Name Service : SMB จะใช้ port นี้ในการถามชื่อเครื่องคอมพิวเตอร์ด้วย การรับส่ง package UDP (User Datagram Protocol) (โดยไม่ต้องใช้ IP เข้ามาช่วย)
- 138 Datagram Service : SMB จะใช้ port นี้ในการ Browse หาชื่อเครื่อง
- 139 Session Service : SMB จะใช้ Port นี้ในการรับส่งข้อมูลระหว่างเครื่อง ด้วย โปรโตคอล TCP ซึ่ีงแน่นอนว่ามีการรับรองการส่ง ข้อมูลว่าไปถึงปลายทางแน่นอน
อ่าหลังจากรู้จักกันคร่าวๆ ก็มาเริ่มการติดตั้งกันเลยดีกว่า
ทำการตรวจสอบ package ด้วย rpm -qi samba
[root@aoddy ~]# rpm -qi samba Name : samba Relocations: (not relocatable) Version : 3.0.14a Vendor: Red Hat, Inc. Release : 2 Build Date: Tue 03 May 2005 02:49:58 AM ICT Install Date: Wed 26 Sep 2007 11:42:53 PM ICT Build Host: decompose.build.redhat.com Group : System Environment/Daemons Source RPM: samba-3.0.14a-2.src.rpm Size : 25453103 License: GNU GPL Version 2 Signature : DSA/SHA1, Sat 21 May 2005 12:43:59 AM ICT, Key ID b44269d04f2a6fd2 Packager : Red Hat, Inc. URL : http://www.samba.org/ Summary : The Samba SMB server. Description : Samba is the protocol by which a lot of PC-related machines share files, printers, and other information (such as lists of available files and printers). The Windows NT, OS/2, and Linux operating systems support this natively, and add-on packages can enable the same thing for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package provides an SMB server that can be used to provide network services to SMB (sometimes called “Lan Manager”) clients. Samba uses NetBIOS over TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw NetBIOS frame) protocol. |
แฮะๆ เผอิญผมเอา package ลงไว้ตั้งแต่ตอน install OS ก็เลยสบาย หลังจากนั้นก็มานั่ง config file กัน โดยไฟล์ที่ผม จะ config จะอยู่ที่ /etc/samba/smb.conf
[root@aoddy samba]# pwd /etc/samba [root@aoddy samba]# cat smb.conf [global] workgroup = MYGROUP server string = Samba Server guest account = nobody log file = /var/log/samba/%m.log max log size = 50 security = share #socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = no #[homes] # comment = Home Directories # browseable = no # writable = yes[Share] comment = Public stuff path = /dsbuauto public = yes writable = yes#[printers] # comment = All Printers # path = /var/spool/samba # browseable = no # guest ok = no # writable = no # printable = yes |
หลังจากนั้นก็ไป create directory ที่ /dsbuauto แล้วก็ chmod 777 ให้ด้วย พอทำเสร็จแล้วก็ลอง test config ด้วยคำสั่ง testparm
[root@aoddy samba]# mkdir /dsbuauto/ [root@aoddy samba]# chmod 777 /dsbuauto/ [root@aoddy samba]# testparm Load smb config files from /etc/samba/smb.conf Processing section “[Share]” Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions# Global parameters [global] workgroup = MYGROUP server string = Samba Server security = SHARE log file = /var/log/samba/%m.log max log size = 50 dns proxy = No[Share] comment = Public stuff path = /dsbuauto read only = No guest ok = Yes |
ถ้ามันถูกต้องก็จะได้อย่างที่เห็นครับ หลังจากนั้น ก็ทำการ start service ของ samba ด้วยคำสั่ง ดังนี้
[root@aoddy samba]# service smb restart Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ] Starting SMB services: [ OK ] Starting NMB services: [ OK ] |
อ่า คราวนี้ผมก็จะ mount ไอ้ path /dsbuauto ซึ่งตอนผม share ผมตั้งชื่อเป็น share เพราะฉะนั้นเวลาผม mount มาใช้งานที่เครื่อง ubuntu ก็จัดการทำดังนี้
# sudo mount -t cifs //192.168.28.132/share /media/samba/ -o user=nobody |
ก็น่าจะใช้งานได้นะครับ ลองเล่นดูครับ จบข่าว….