X
Change of support channel during COVID-19

ในบทความนี้เราจะมาแนะนำและอธิบายถึงขั้นตอนการติดตั้ง Samba สำหรับการแชร์ไฟล์จากระบบฏิบัติการ Linux Server กับระบบปฏิบัติการ Microsoft Windows

Samba เป็นซอฟต์แวร์ที่นิยมใช้กันมากที่สุด นอกจากจะเป็น Free Software แล้วยังมีความปลอดภัยและมีความเสถียร เหมาะสำหรับท่านที่ต้องการความสะดวกรวดเร็วในการแชร์หรือถ่ายโอนไฟล์ข้ามระบบปฏิบัติผ่านเครือข่าย

เราจะสร้างการแชร์และผู้ใช้ Samba ดังต่อไปนี้

ผู้ใช้ (User)
admin : ผู้ใช้ที่เป็นผู้ดูแลระบบ มีสิทธิ์อ่านและเขียนในการแชร์ทั้งหมด
example : ผู้ใช้ทั่วไปที่มีการแชร์ไฟล์ส่วนตัว
การแชร์ (Share)
anonymous : การแชร์นี้จะสามารถเข้าถึงได้ด้วยสิทธิ์การอ่านและเขียน โดยผู้ใช้ทั้งหมด
example : การแชร์นี้จะสามารถเข้าถึงได้ด้วยสิทธิ์การอ่านและเขียน โดยผู้ใช้ example และ admin เท่านั้น

ตรวจสอบให้แน่ใจก่อนว่าท่านลงชื่อเข้าใช้ระบบโดยทำการ Login อยู่ในฐานะผู้ใช้งาน root เรียบร้อยแล้ว จากนั้นทำการอัพเดตระบบต่างๆ ให้เป็นปัจจุบัน

#ssh IP-Address
#yum update -y

ขั้นตอนที่ 1 ติดตั้ง Samba

#yum install samba samba-client

เมื่อติดตั้งเสร็จสมบูรณ์แล้ว ทำการ Start และ Enable Samba ด้วยคำสั่ง

#systemctl start smb.service
#systemctl start nmb.service
#systemctl enable smb.service
#systemctl enable nmb.service

หลังจากติดตั้งแพคเกจ Samba แล้วให้ทำการเปิดใช้งาน Samba ผ่านไฟร์วอลล์ด้วยคำสั่ง

#firewall-cmd --permanent --zone=public --add-service=samba
#firewall-cmd --zone=public --add-service=samba

ขั้นตอนที่ 2 สร้างผู้ใช้และไดเรกทอรี (Directory) ของ Samba

สำหรับการสร้างไดเรกทอรีเพื่อให้ยืดหยุ่นและง่ายต่อการใช้งาน เราจะทำการสร้างไดเรกทอรีขึ้นมาใหม่ โดยให้ผู้ใช้และข้อมูลทั้งหมดอยู่ในไดเรกทอรี /Samba
– เริ่มต้นสร้างไดเรกทอรี /Samba ด้วยคำสั่ง

#mkdir /samba

จากนั้นสร้างกลุ่ม (group) โดยใช้ชื่อ sambashare หลังจากสร้างเรียบร้อยแล้วเราจะเพิ่มผู้ใช้ทั้งหมดไปยังกลุ่มนี้

#groupadd sambashare

ทำการกำหนด Owner ให้กับไดเรกทอรี /Samba โดยใช้ชื่อกลุ่มเป็น sambashare

#chgrp sambashare /samba

จากที่ได้กล่าวมาข้างต้นเราจะทำการสร้างผู้ใช้ทั่วไปและผู้ใช้ที่เป็นผู้ดูแล มีสิทธิ์การเข้าถึงแบบอ่านและเขียนสำหรับการแชร์ทั้งหมดบนเซิร์ฟเวอร์
– เริ่มต้นสร้างผู้ใช้ โดยใช้ชื่อ example

#useradd -M -d /samba/example -s /usr/sbin/nologin -G sambashare example

การใช้งานคำสั่ง useradd มีความหมาย ดังนี้

  • M คือ ไม่ต้องการสร้างโฮม (home) ไดเรกทอรีของผู้ใช้ ซึ่งเราจะสร้างไดเรกทอรีนี้ด้วยตนเอง
  • -d /samba/example คือ ตั้งค่าโฮมไดเรกทอรีของผู้ใช้เป็น /samba/example
  • -s /usr/sbin/nologin คือ ปิดใช้งานการเข้าถึง ssh สำหรับผู้ใช้นี้
  • -G sambashare คือ เพิ่มผู้ใช้ไปยังกลุ่ม sambashare

จากนั้นสร้างโฮมไดเรกทอรีให้กับผู้ใช้ โดยกำหนด Owner และเพิ่มผู้ใช้ example ไปยังกลุ่ม sambashare

#mkdir /samba/example
#chown example:sambashare /samba/example

คำสั่งต่อไปจะเพิ่ม setgid bit ไปยัง /samba/example ดังนั้นไฟล์ที่ถูกสร้างขึ้นใหม่ในไดเรกทอรีนี้จะอยู่ในกลุ่มของไดเรกทอรีหลัก โดยวิธีนี้ไม่ว่าผู้ใช้รายใดสร้างไฟล์ขึ้นมา ไฟล์ทุกๆ ไฟล์จะอยู่ในกลุ่มของ sambashare ตัวอย่างเช่น ถ้าท่านไม่ได้กำหนดสิทธิ์ให้ไดเรกทอรีเป็น 2770 หากผู้ใช้ admin สร้างไฟล์ใหม่ ผู้ใช้ example จะไม่สามารถอ่านและเขียนไฟล์นั้นๆ ได้

#chmod 2770 /samba/example

เพิ่มผู้ใช้ example ไปยังฐานข้อมูลของ Samba โดยทำการตั้งรหัสผ่านผู้ใช้ ด้วยคำสั่ง

#smbpasswd -a example

ท่านจะได้รับแจ้งให้กรอกรหัสผ่านผู้ใช้ ดังรูปภาพ

เมื่อตั้งรหัสผ่านผู้ใช้งานเรียบร้อยแล้ว ให้ทำการ Enable บัญชีผู้ใช้ของ Samba ด้วยคำสั่ง

#smbpasswd -e example

ผลลัพธ์จะแสดงดังรูปภาพ ท่านได้ทำการเปิดใช้งานบัญชีผู้ใช้เสร็จสมบูรณ์แล้ว

หากท่านต้องการสร้างผู้ใช้รายใหม่เพิ่มเติม ท่านสามารถทำตามขั้นตอนเดียวกันกับผู้ใช้ example ได้เลย

จากนั้นสร้างผู้ใช้และกลุ่ม admin โดยสมาชิกทั้งหมดของกลุ่มนี้จะมีสิทธิ์ระดับผู้ดูแล หากภายหลังท่านต้องการให้สิทธิ์การเข้าถึงกับผู้ใช้รายใดเป็นผู้ดูแลระบบ ท่านสามารถเพิ่มผู้ใช้รายนั้นๆ ไปยังกลุ่ม admin ได้เช่นเดียวกัน
– เริ่มต้นสร้างผู้ใช้ที่เป็นผู้ดูแลระบบ ด้วยคำสั่ง

#useradd -M -d /samba/anonymous -s /usr/sbin/nologin -G sambashare admin

ด้านบนจะเป็นคำสั่งสร้างกลุ่ม admin และเพิ่มผู้ใช้ไปยังกลุ่ม admin และ sambashare

ทำการตั้งรหัสผ่านและเปิดใช้งานผู้ใช้ ด้วยคำสั่ง

#smbpasswd -a admin
#smbpasswd -e admin

ต่อไปจะเป็นการสร้างไดเรกทอรี anonymous เพื่อใช้ในการแชร์

#mkdir /samba/anonymous

เมื่อสร้างเรียบร้อยแล้ว ทำการกำหนด Owner ให้ไดเรกทอรี โดยกำหนดสิทธ์การเข้าถึงกับผู้ใช้ admin และกลุ่ม sambashare

#chown admin:sambashare /samba/anonymous

ไดเรกทอรีนี้จะสามารถเข้าถึงได้ก็ต่อเมื่อผู้ใช้ได้รับการรับรองความถูกต้องทั้งหมด โดยคำสั่งต่อไปนี้จะเป็นการกำหนดสิทธิ์การเข้าถึงให้สามารถอ่านและเขียนไฟล์กับสมาชิกของกลุ่ม sambashare ในไดเรกทอรี /samba/anonymous

#chmod 2770 /samba/anonymous


ขั้นตอนที่ 3 การกำหนดค่า (Config) ในการแชร์ของ Samba

เปิดไฟล์ smb.conf ด้วยคำสั่ง

#vi /etc/samba/smb.conf
เมื่อเปิดไฟล์เรียบร้อยแล้ว ทำการกด Esc และกด i โดยเลื่อนลงมาบรรทัดล่างสุด ก่อนจะเพิ่มค่าดังต่อไปนี้
[anonymous]
path = /samba/anonymous
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = @sambashare @admin
[example]
path = /samba/example
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = example @admin

เมื่อนำข้อมูลด้านบนใส่ไปยังไฟล์ smb.conf เรียบร้อยแล้ว ทำการกด Esc และกด :wq! เพื่อ Save ไฟล์

Option ที่ใช้งานมีความหมาย ดังนี้

  • [anonymous] และ [example] คือ ชื่อของการแชร์ที่ท่านต้องใช้เมื่อเข้าสู่ระบบ
  • path คือ เส้นทางของการแชร์
  • browseable คือ ตรวจสอบว่าการแชร์มีอยู่ในรายชื่อหรือไม่ หากท่านใส่ no ผู้ใช้รายอื่นๆ จะไม่สามารถมองเห็นการแชร์นี้
  • read only คือ ผู้ใช้ที่ระบุรายชื่ออย่างถูกต้องสามารถเขียนถึงการแชร์นี้ได้
  • force create mode คือ การกำหนดสิทธิ์ให้ไฟล์ที่สร้างใหม่
  • force directory mode คือ กำหนดสิทธิ์ให้ไดเรกทอรีที่สร้างใหม่
  • valid users คือ รายชื่อผู้ใช้และกลุ่มที่ได้รับอนุญาตให้เข้าถึงการแชร์ กลุ่มจะนำหน้าด้วยสัญลักษณ์ @

สำหรับ Option เพิ่มเติมที่เกี่ยวกับการกำหนดค่าต่างๆ ของ Samba ท่านสามารถดูข้อมูลเพิ่มเติมได้จาก Samba configuration file

เมื่อท่านดำเนินการทุกขั้นตอนเรียบร้อยแล้ว ให้ทำการ Restart Service ของ Samba ด้วยคำสั่ง

#systemctl restart smb.service
#systemctl restart nmb.service

ในขั้นตอนต่อไปนี้ เราจะทำการเชื่อมต่อ Samba ในการแชร์จาก Linux Server กับระบบปฏิบัติการ Microsoft Windows

ขั้นตอนที่ 4 การเชื่อมต่อกับ Samba การแชร์จาก Windows

ผู้ใช้งาน Windows สามารถเลือกการเชื่อมต่อ Samba ได้หลายวิธี โดยขั้นตอนต่อไปนี้เราจะมาแนะนำการเข้าถึงการแชร์ผ่านทาง Windows File Explorer

– เปิดไฟล์ File Explorer เลือก This PC ในหน้าต่างด้านซ้ายมือ
– ทำการคลิกขวาที่ This PC และเลือก Add Network Location
– กรอกที่อยู่ของการแชร์ Samba ดังรูปภาพ \IP-Address\example และกด Next

– กรอกชื่อผู้ใช้และรหัสผ่าน ดังรูปภาพ จากนั้นกด OK

– ในหน้าต่างถัดไป ท่านสามารถกรอกชื่อและตำแหน่งที่ต้องการเชื่อมต่อบน Server หรือใช้ค่าเริ่มต้น ดังรูปภาพ

– คลิก Next เพื่อไปยังหน้าต่างสุดท้ายของการตั้งค่าการเชื่อมต่อ
– คลิก Finish ไฟล์ที่อยู่บน Server จะปรากฎ ดังรูปภาพ

HostPacific หวังเป็นอย่างยิ่งว่าในบทความนี้จะช่วยให้ท่านสามารถติดตั้ง Samba และใช้งานการแชร์นี้ เพื่อช่วยให้ท่านประหยัดเวลาและสะดวกที่สุด หากท่านสนใจสามารถเปิดบริการ Cloudnode-M และทำการติดตั้งได้ทันที