ในบทความนี้เราจะมาแนะนำและอธิบายถึงขั้นตอนการติดตั้ง 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 และทำการติดตั้งได้ทันที