Samba คือซอฟต์แวร์โอเพ่นซอร์สที่ทำให้ระบบปฏิบัติการแบบ Linux สามารถให้บริการแชร์ไฟล์และเครื่องพิมพ์ด้วยโปรโตคอล SMB/CIFS ซึ่งเป็นมาตรฐานที่ใช้ในระบบ Windows ดังนั้นหากต้องการให้เครื่อง Ubuntu Server ทำหน้าที่เป็น File Server เพื่อให้ผู้ใช้ Windows / Linux / macOS เข้าถึงโฟลเดอร์ร่วม (Shared Folder) ได้ Samba คือคำตอบหลัก
กรณีการใช้งานที่พบบ่อย เช่น
-
File Server ภายในสำนักงาน แยกแชร์โฟลเดอร์ตามแผนก
-
โฟลเดอร์แลกเปลี่ยนไฟล์สำหรับนักศึกษา/บุคลากรในมหาวิทยาลัย
-
โฟลเดอร์ Backup กลาง ให้ client เข้ามาสำรองข้อมูล
ในบทความนี้จะใช้ตัวอย่าง Ubuntu Server 24.04 ติดตั้งและตั้งค่า Samba สำหรับ
-
แชร์โฟลเดอร์แบบ Guest (ไม่ต้องล็อกอิน)
-
แชร์โฟลเดอร์แบบผู้ใช้ต้องล็อกอิน (User-based Share)
1. ตรวจสอบระบบเบื้องต้น
ล็อกอินเข้า Ubuntu Server ผ่าน SSH หรือ Console
จากนั้นตรวจสอบชื่อเครื่อง (hostname) และ IP address ของ server เพื่อใช้เชื่อมต่อจากฝั่ง client
แนะนำให้ตั้ง IP แบบ Static สำหรับเครื่อง File Server เพื่อไม่ให้ IP เปลี่ยนในภายหลัง
2. ติดตั้ง Samba บน Ubuntu Server 24.04
แพ็กเกจหลักที่ใช้คือ samba และ samba-common-bin

เมื่อติดตั้งเสร็จ ตรวจสอบเวอร์ชันและสถานะ service
หาก service ยังไม่เริ่มทำงาน ให้สั่ง
3. สำรองไฟล์คอนฟิก Samba เดิม
ก่อนแก้ไขไฟล์คอนฟิกหลัก ควรสำรองไว้ก่อนเสมอ
4. สร้างโฟลเดอร์สำหรับแชร์ไฟล์
สมมุติว่าเราต้องการโฟลเดอร์แชร์สองประเภท
-
Public– ให้ทุกคนใน LAN เข้าถึงได้ (Guest) -
Share– ให้เฉพาะผู้ใช้ที่มีบัญชี Samba เท่านั้น
4.1 โฟลเดอร์ Public (Guest Share)
คำอธิบาย
-
nobody:nogroupใช้สำหรับ guest user -
0775อนุญาต owner และ group อ่าน/เขียน/รัน และคนอื่นอ่าน/รัน
4.2 โฟลเดอร์ Share (User-based Share)
ในภายหลังเราจะใช้ Samba user เฉพาะกลุ่มเข้าถึงโฟลเดอร์นี้
5. แก้ไขไฟล์คอนฟิก /etc/samba/smb.conf
เปิดไฟล์ด้วย editor ที่ถนัด เช่น nano
ให้เลื่อนลงด้านล่างสุด แล้วเพิ่มคอนฟิกของเราดังนี้ (ไม่ต้องลบของเดิมส่วน global)
5.1 ตัวอย่างส่วน Global (ตรวจสอบ/ปรับแต่ง)
ในไฟล์จะมีส่วน [global] อยู่แล้ว สามารถตรวจสอบให้มีค่าอย่างน้อยประมาณนี้ (อย่าใส่ซ้ำ ถ้ามีแล้วปรับเฉพาะบรรทัดที่ต้องการ)
workgroup = WORKGROUPให้ตรงกับกลุ่ม workgroup ของ Windows (ปกติค่าเริ่มต้นก็คือ WORKGROUP)
5.2 เพิ่มแชร์โฟลเดอร์ Public (Guest Share)
-
ผู้ใช้ในเครือข่ายจะเห็น share ชื่อ Public
-
ไม่ต้องใช้ username/password (guest)
-
สามารถอ่าน/เขียนได้

5.3 เพิ่มแชร์โฟลเดอร์ Share (User-based Share)
-
share ชื่อ Share
-
ไม่อนุญาต guest (
guest ok = no) -
อนุญาตเฉพาะผู้ใช้ที่อยู่ในกลุ่ม
sambashareเท่านั้น

บันทึกไฟล์แล้วออกจาก editor (ใน nano กด Ctrl+O, Enter, แล้ว Ctrl+X)
6. ตรวจสอบความถูกต้องของไฟล์ smb.conf
ก่อน restart service ให้สั่งตรวจสอบ syntax ก่อน
หากไม่มี error ขึ้น แสดงว่าคอนฟิกใช้งานได้
7. สร้าง Linux User และ Samba User
สำหรับโฟลเดอร์ Share เรากำหนดให้ใช้ group sambashare เป็นผู้มีสิทธิ์
7.1 สร้างกลุ่มสำหรับ Samba
(ถ้ามีอยู่แล้วจะมีข้อความแจ้ง แต่ไม่เป็นปัญหา)
7.2 สร้างผู้ใช้ใหม่ (ตัวอย่างชื่อ user: user1)
ตั้งรหัสผ่าน และข้อมูลอื่น ๆ ตามต้องการ
จากนั้นปรับเจ้าของโฟลเดอร์ Share ให้กลุ่ม sambashare มีสิทธิ์
7.3 เพิ่มผู้ใช้ให้เป็น Samba User
ระบบจะถามให้ตั้งรหัสผ่านสำหรับ Samba (ใช้คนละชุดกับ Linux ได้ แต่เพื่อความจำง่ายอาจตั้งให้เหมือนกัน)
เปิดใช้งาน (enable) บัญชี Samba
8. รีสตาร์ต Samba Service
เมื่อคอนฟิกเสร็จและสร้าง user เรียบร้อย ให้ restart service
ตรวจสถานะอีกครั้ง
9. ตั้งค่า Firewall ให้อนุญาต Samba
หากใช้ UFW (Uncomplicated Firewall) ให้เปิดบริการ Samba ดังนี้
บริการ Samba จะใช้พอร์ตประมาณ 137–139 (NetBIOS) และ 445 (SMB) แต่คำสั่ง allow 'Samba' จะครอบคลุมให้เรียบร้อย
10. ทดสอบการเชื่อมต่อจาก Windows Client
สมมุติว่า Ubuntu Server มี IP เป็น 192.168.56.108
10.1 เข้าถึงโฟลเดอร์ Public
บนเครื่อง Windows:
-
เปิด File Explorer
-
ที่แถบ Address พิมพ์
-
หากตั้งค่า guest ถูกต้อง จะเข้าได้เลยโดยไม่ถามรหัสผ่าน
-
ทดลองสร้างโฟลเดอร์ / คัดลอกไฟล์เข้าไปทดสอบสิทธิ์
10.2 เข้าถึงโฟลเดอร์ Share (ต้องล็อกอิน)
-
ใน File Explorer พิมพ์
-
ระบบจะถาม Username / Password
-
ใส่ Username:
user1 -
Password: ตามที่ตั้งในคำสั่ง
smbpasswd
-
-
หากล็อกอินสำเร็จ สามารถคัดลอกไฟล์เข้าไปเก็บในโฟลเดอร์
Shareได้
สามารถ Map Network Drive ให้เป็นไดรฟ์ถาวร (เช่น S:) เพื่อให้ผู้ใช้เข้าถึงสะดวกขึ้น
11. การจัดการสิทธิ์เพิ่มเติม
เพื่อความปลอดภัยในระบบจริง ควรออกแบบสิทธิ์และกลุ่มผู้ใช้ให้ชัดเจน เช่น
-
สร้างกลุ่ม
hrshare,accshare,itshare -
สร้างโฟลเดอร์
/srv/samba/hr,/srv/samba/acc -
กำหนด
valid users = @hrshareหรือ@accshareแยกตามแผนก
ตัวอย่าง share แยกแผนก
สรุป
การติดตั้ง File Server ด้วย Samba บน Ubuntu Server 24.04 เป็นวิธีที่มีประสิทธิภาพและยืดหยุ่นในการแชร์ไฟล์ระหว่างเครื่อง Linux กับ Windows ภายในเครือข่ายองค์กร ขั้นตอนสำคัญประกอบด้วย
-
ติดตั้งแพ็กเกจ
sambaและสำรองไฟล์คอนฟิก -
สร้างโฟลเดอร์สำหรับแชร์ และกำหนดสิทธิ์บนระบบไฟล์
-
แก้ไขไฟล์
/etc/samba/smb.confเพื่อกำหนด share แบบ Guest และแบบ User-based -
สร้าง Linux user และ Samba user รวมถึงจัดการกลุ่มผู้ใช้
-
เปิด Firewall ให้บริการ Samba
-
ทดสอบเข้าถึง share จากฝั่ง Windows / client อื่น
เมื่อเข้าใจโครงสร้างการทำงานของ Samba แล้ว ผู้ดูแลระบบสามารถต่อยอดไปสู่การจัดการสิทธิ์แบบซับซ้อนขึ้น เช่น แยกโฟลเดอร์ตามแผนก การกำหนดสิทธิ์อ่าน/เขียนแบบละเอียด รวมถึงการเชื่อมต่อกับระบบ Directory Service (เช่น Active Directory) เพื่อให้บริหารบัญชีผู้ใช้ได้จากศูนย์กลาง
—
เขียนและรวบรวมโดย
Dr.Arnut Ruttanatirakul
Technology Lecturer, KMITL
15 November 2025



