การติดตั้ง File Server ใช้งานในองค์กรด้วย samba บน ubuntu server 24.04

การติดตั้ง File Server ใช้งานในองค์กรด้วย samba บน ubuntu server 24.04

Samba คือซอฟต์แวร์โอเพ่นซอร์สที่ทำให้ระบบปฏิบัติการแบบ Linux สามารถให้บริการแชร์ไฟล์และเครื่องพิมพ์ด้วยโปรโตคอล SMB/CIFS ซึ่งเป็นมาตรฐานที่ใช้ในระบบ Windows ดังนั้นหากต้องการให้เครื่อง Ubuntu Server ทำหน้าที่เป็น File Server เพื่อให้ผู้ใช้ Windows / Linux / macOS เข้าถึงโฟลเดอร์ร่วม (Shared Folder) ได้ Samba คือคำตอบหลัก

กรณีการใช้งานที่พบบ่อย เช่น

  • File Server ภายในสำนักงาน แยกแชร์โฟลเดอร์ตามแผนก

  • โฟลเดอร์แลกเปลี่ยนไฟล์สำหรับนักศึกษา/บุคลากรในมหาวิทยาลัย

  • โฟลเดอร์ Backup กลาง ให้ client เข้ามาสำรองข้อมูล

ในบทความนี้จะใช้ตัวอย่าง Ubuntu Server 24.04 ติดตั้งและตั้งค่า Samba สำหรับ

  1. แชร์โฟลเดอร์แบบ Guest (ไม่ต้องล็อกอิน)

  2. แชร์โฟลเดอร์แบบผู้ใช้ต้องล็อกอิน (User-based Share)


1. ตรวจสอบระบบเบื้องต้น

ล็อกอินเข้า Ubuntu Server ผ่าน SSH หรือ Console

sudo apt update
sudo apt upgrade -y

จากนั้นตรวจสอบชื่อเครื่อง (hostname) และ IP address ของ server เพื่อใช้เชื่อมต่อจากฝั่ง client

hostname
ip a

แนะนำให้ตั้ง IP แบบ Static สำหรับเครื่อง File Server เพื่อไม่ให้ IP เปลี่ยนในภายหลัง


2. ติดตั้ง Samba บน Ubuntu Server 24.04

แพ็กเกจหลักที่ใช้คือ samba และ samba-common-bin

sudo apt install samba samba-common-bin -y

เมื่อติดตั้งเสร็จ ตรวจสอบเวอร์ชันและสถานะ service

smbd –version

sudo systemctl status smbd
sudo systemctl status nmbd

หาก service ยังไม่เริ่มทำงาน ให้สั่ง

sudo systemctl enable --now smbd nmbd

3. สำรองไฟล์คอนฟิก Samba เดิม

ก่อนแก้ไขไฟล์คอนฟิกหลัก ควรสำรองไว้ก่อนเสมอ

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

4. สร้างโฟลเดอร์สำหรับแชร์ไฟล์

สมมุติว่าเราต้องการโฟลเดอร์แชร์สองประเภท

  1. Public – ให้ทุกคนใน LAN เข้าถึงได้ (Guest)

  2. Share – ให้เฉพาะผู้ใช้ที่มีบัญชี Samba เท่านั้น

4.1 โฟลเดอร์ Public (Guest Share)

sudo mkdir -p /srv/samba/public

sudo chown -R nobody:nogroup /srv/samba/public
sudo chmod -R 0775 /srv/samba/public

คำอธิบาย

  • nobody:nogroup ใช้สำหรับ guest user

  • 0775 อนุญาต owner และ group อ่าน/เขียน/รัน และคนอื่นอ่าน/รัน

4.2 โฟลเดอร์ Share (User-based Share)

sudo mkdir -p /srv/samba/share
sudo chown -R root:root /srv/samba/share
sudo chmod -R 0770 /srv/samba/share

ในภายหลังเราจะใช้ Samba user เฉพาะกลุ่มเข้าถึงโฟลเดอร์นี้


5. แก้ไขไฟล์คอนฟิก /etc/samba/smb.conf

เปิดไฟล์ด้วย editor ที่ถนัด เช่น nano

sudo nano /etc/samba/smb.conf

ให้เลื่อนลงด้านล่างสุด แล้วเพิ่มคอนฟิกของเราดังนี้ (ไม่ต้องลบของเดิมส่วน global)

5.1 ตัวอย่างส่วน Global (ตรวจสอบ/ปรับแต่ง)

ในไฟล์จะมีส่วน [global] อยู่แล้ว สามารถตรวจสอบให้มีค่าอย่างน้อยประมาณนี้ (อย่าใส่ซ้ำ ถ้ามีแล้วปรับเฉพาะบรรทัดที่ต้องการ)

[global]

workgroup = WORKGROUP

server string = Ubuntu File Server

netbios name = UBUNTU-FS

map to guest = Bad User

dns proxy = no

security = user

workgroup = WORKGROUP ให้ตรงกับกลุ่ม workgroup ของ Windows (ปกติค่าเริ่มต้นก็คือ WORKGROUP)

5.2 เพิ่มแชร์โฟลเดอร์ Public (Guest Share)

[Public]
path = /srv/samba/public

browseable = yes

writable = yes

guest ok = yes

read only = no

create mask = 0664

directory mask = 0775
  • ผู้ใช้ในเครือข่ายจะเห็น share ชื่อ Public

  • ไม่ต้องใช้ username/password (guest)

  • สามารถอ่าน/เขียนได้

5.3 เพิ่มแชร์โฟลเดอร์ Share (User-based Share)

 
[Share]
path = /srv/samba/share
browseable = yes
writable = yes
guest ok = no
read only = no
create mask = 0660
directory mask = 0770
valid users = @sambashare
  • share ชื่อ Share

  • ไม่อนุญาต guest (guest ok = no)

  • อนุญาตเฉพาะผู้ใช้ที่อยู่ในกลุ่ม sambashare เท่านั้น

บันทึกไฟล์แล้วออกจาก editor (ใน nano กด Ctrl+O, Enter, แล้ว Ctrl+X)


6. ตรวจสอบความถูกต้องของไฟล์ smb.conf

ก่อน restart service ให้สั่งตรวจสอบ syntax ก่อน

testparm

หากไม่มี error ขึ้น แสดงว่าคอนฟิกใช้งานได้


7. สร้าง Linux User และ Samba User

สำหรับโฟลเดอร์ Share เรากำหนดให้ใช้ group sambashare เป็นผู้มีสิทธิ์

7.1 สร้างกลุ่มสำหรับ Samba

sudo groupadd sambashare

(ถ้ามีอยู่แล้วจะมีข้อความแจ้ง แต่ไม่เป็นปัญหา)

7.2 สร้างผู้ใช้ใหม่ (ตัวอย่างชื่อ user: user1)

sudo adduser --home /home/user1 --shell /bin/bash --ingroup sambashare user1

ตั้งรหัสผ่าน และข้อมูลอื่น ๆ ตามต้องการ

จากนั้นปรับเจ้าของโฟลเดอร์ Share ให้กลุ่ม sambashare มีสิทธิ์

sudo chown -R root:sambashare /srv/samba/share

sudo chmod -R 0770 /srv/samba/share

7.3 เพิ่มผู้ใช้ให้เป็น Samba User

sudo smbpasswd -a user1

ระบบจะถามให้ตั้งรหัสผ่านสำหรับ Samba (ใช้คนละชุดกับ Linux ได้ แต่เพื่อความจำง่ายอาจตั้งให้เหมือนกัน)

เปิดใช้งาน (enable) บัญชี Samba

sudo smbpasswd -e user1

8. รีสตาร์ต Samba Service

เมื่อคอนฟิกเสร็จและสร้าง user เรียบร้อย ให้ restart service

sudo systemctl restart smbd nmbd

ตรวจสถานะอีกครั้ง

sudo systemctl status smbd nmbd

9. ตั้งค่า Firewall ให้อนุญาต Samba

หากใช้ UFW (Uncomplicated Firewall) ให้เปิดบริการ Samba ดังนี้

sudo ufw allow 'Samba'

sudo ufw reload

sudo ufw status

บริการ Samba จะใช้พอร์ตประมาณ 137–139 (NetBIOS) และ 445 (SMB) แต่คำสั่ง allow 'Samba' จะครอบคลุมให้เรียบร้อย


10. ทดสอบการเชื่อมต่อจาก Windows Client

สมมุติว่า Ubuntu Server มี IP เป็น 192.168.56.108

10.1 เข้าถึงโฟลเดอร์ Public

บนเครื่อง Windows:

  1. เปิด File Explorer

  2. ที่แถบ Address พิมพ์

     
    \\192.168.56.108\Public
  3. หากตั้งค่า guest ถูกต้อง จะเข้าได้เลยโดยไม่ถามรหัสผ่าน

  4. ทดลองสร้างโฟลเดอร์ / คัดลอกไฟล์เข้าไปทดสอบสิทธิ์

10.2 เข้าถึงโฟลเดอร์ Share (ต้องล็อกอิน)

  1. ใน File Explorer พิมพ์

     
    \\192.168.56.108\Share
  2. ระบบจะถาม Username / Password

    • ใส่ Username: user1

    • Password: ตามที่ตั้งในคำสั่ง smbpasswd

  3. หากล็อกอินสำเร็จ สามารถคัดลอกไฟล์เข้าไปเก็บในโฟลเดอร์ Share ได้

สามารถ Map Network Drive ให้เป็นไดรฟ์ถาวร (เช่น S:) เพื่อให้ผู้ใช้เข้าถึงสะดวกขึ้น


11. การจัดการสิทธิ์เพิ่มเติม

เพื่อความปลอดภัยในระบบจริง ควรออกแบบสิทธิ์และกลุ่มผู้ใช้ให้ชัดเจน เช่น

  • สร้างกลุ่ม hrshare, accshare, itshare

  • สร้างโฟลเดอร์ /srv/samba/hr, /srv/samba/acc

  • กำหนด valid users = @hrshare หรือ @accshare แยกตามแผนก

ตัวอย่าง share แยกแผนก

[HR]
path = /srv/samba/hr
browseable = no
writable = yes
guest ok = no
read only = no
valid users = @hrshare

[ACC]
path = /srv/samba/acc
browseable = no
writable = yes
guest ok = no
read only = no
valid users = @accshare


สรุป

การติดตั้ง File Server ด้วย Samba บน Ubuntu Server 24.04 เป็นวิธีที่มีประสิทธิภาพและยืดหยุ่นในการแชร์ไฟล์ระหว่างเครื่อง Linux กับ Windows ภายในเครือข่ายองค์กร ขั้นตอนสำคัญประกอบด้วย

  1. ติดตั้งแพ็กเกจ samba และสำรองไฟล์คอนฟิก

  2. สร้างโฟลเดอร์สำหรับแชร์ และกำหนดสิทธิ์บนระบบไฟล์

  3. แก้ไขไฟล์ /etc/samba/smb.conf เพื่อกำหนด share แบบ Guest และแบบ User-based

  4. สร้าง Linux user และ Samba user รวมถึงจัดการกลุ่มผู้ใช้

  5. เปิด Firewall ให้บริการ Samba

  6. ทดสอบเข้าถึง share จากฝั่ง Windows / client อื่น

เมื่อเข้าใจโครงสร้างการทำงานของ Samba แล้ว ผู้ดูแลระบบสามารถต่อยอดไปสู่การจัดการสิทธิ์แบบซับซ้อนขึ้น เช่น แยกโฟลเดอร์ตามแผนก การกำหนดสิทธิ์อ่าน/เขียนแบบละเอียด รวมถึงการเชื่อมต่อกับระบบ Directory Service (เช่น Active Directory) เพื่อให้บริหารบัญชีผู้ใช้ได้จากศูนย์กลาง



เขียนและรวบรวมโดย
Dr.Arnut Ruttanatirakul
Technology Lecturer, KMITL
15 November 2025