แปลง smbpasswd เป็น tdbsam

วันนี้มีคนมาถามเรื่อง SAMBA ทั้งเรื่อง Migration และการใช้งาน ผมตกยุคเรื่อง SAMBA มานานมาก ไม่ได้แตะเลยก็ว่าได้ เดี๋ยวนี้เขามี tdbsam ก็เลยงงๆ เอาเป็นว่าตามไม่ทันก็แล้วกัน ปัญหาคือจะ migrate จาก smbpasswd มาเป็น tdbsam ได้ยังไง วิธีการง่ายๆ ให้เลือกก่อนว่าจะใช้อะไร อยากใช้แบบเดิมๆ ก็ config ในไฟล์ smb.conf ให้เรียกใช้ smbpasswd ถ้าอยากได้ของใหม่แบบ tdbsam ก็ต้องแปลงร่างกันสักหน่อย อ้อลืมไป tdbsam เหมาะสำหรับ user ไม่เกิน 200 คนนะครับ วิธีการแปลงใช้ pbedit แปลงจาก smbpasswd ไปเป็น passdb.tdb ดังนี้

pdbedit -i smbpasswd:/etc/samba/smbpasswd -e tdbsam:/etc/samba/passdb.tdb

อ้อ อย่าลืมแก้ smb.conf ให้เรียกใช้ tdbsam ด้วยนะครับ สำหรับองค์กรที่มี user มากกว่า 30 คน แนะนำใช้ LDAP ไปเลยจะสะดวกมากกว่าสามารถเอาไปผูกกับบริการอื่นๆ ได้ด้วยครับ 🙂

สร้าง Virtual SAMBA Server ในองค์กร

ผมคิดว่าหลายองค์กรที่ใช้ SAMBA เป็น File Server ซึ่งใช้งานง่าย สะดวก และ สบาย แต่ทว่าความรู้สึกของคนในแต่ละแผนกอาจรู้สึกว่าทำไมไฟล์จะต้องไปอยู่ที่เครื่องเซิร์ฟเวอร์เดียวกันด้วย รู้สึกไม่ปลอดภัยและเป็นกังวล ซึ่งวิธีง่ายๆ ในการแก้ปัญหานี้ก็คือ “ตามใจ” ครับ โดยแยก File Server ออกเป็นแต่ละฝ่ายหรือแผนก แต่หากคุณไม่มีเครื่องเซิร์ฟเวอร์และสื่อเก็บข้อมูลที่เพียงพอ การแยก File Server ออกเป็นเครื่องย่อยๆ อาจสร้างปัญหาให้กับคุณมากขึ้น ผมมีวิธีง่ายๆ ที่ใช้ในการแก้ปัญหานี้ครับ เราเรียกว่าวิธีนี้ว่า Virtual SAMBA Server 🙂
Virtual SAMBA Server เป็นวิธีการจำลอง (และหลอกลวง) ว่ามีเครื่อง File Server หลายเครื่อง แต่จริงๆ แล้วมีเพียงเครื่องเดียวเท่านั้น 😛 ซึ่งสามารถหลอกคนในองค์กรได้ว่ามีการแยกเครื่อง File Server ออกเป็นแต่ละแผนกหรือฝ่ายจริงๆ ไม่ได้เก็บข้อมูลที่เครื่องเดียวกัน โดยแต่ละฝ่ายจะเชื่อมต่อไปยัง File Server ของแต่ละฝ่ายเอง ซึ่งให้ความรู้สึกดีมากกว่าที่จะเห็นไฟล์หรือใช้เครื่องเซิร์ฟเวอร์เดียวกัน มาดูวิธีกันครับ
ให้คุณกำหนดค่า netbios aliases ส่วน [global] ในไฟล์ /etc/samba/smb.conf โดยแยกเป็นแผนกหรือฝ่าย ของผมเป็นกลุ่มงาน research และ testing ดังนี้

smb ports = 139
netbios aliases = research testing
include = /etc/samba/smb.conf.%L

ในบรรทัดที่ 2 จะเป็นการกำหนดไฟล์ config เพิ่มเติมโดยให้โหลดจากไฟล์ ที่ชื่อ smb.conf.<ชื่อ netbios> ของเครื่องนั่นคือ smb.conf.research และ smb.conf.testing จากนั้นเพิ่ม config ทั้งสองไฟล์ดังนี้
ไฟล์ /etc/samba/smb.conf.research

[global]
workgroup = RESEARCH
[research-share]
comment = share for research
path = /home/share/research
browseable = yes

ไฟล์ /etc/samba/smb.conf.testing

[global]
workgroup = TESTING
[testing-share]
comment = share for testing team
path = /home/share/testing
browseable = yes

จากนั้น restart service ชื่อ smbd และ nmbd ดังนี้

/etc/init.d/nmbd restart
/etc/init.d/smbd restart

ทีนี้ลองใช้คำสั่ง smbclient ดูครับ เราจะพบว่าเรามีเครื่อง Samba Server เพิ่มขึ้นมาแล้ว

ดูใน Nautilus จะเห็นเป็นเครื่องเซิร์ฟเวอร์ดังนี้

เพียงเท่านี้คุณสามารถแยกเครื่อง File Sever แบบหลอกตาได้แล้ว 😛