Android

วิธีการติดตั้งและกำหนดค่าแซมบ้าบน CentOS 7

Installation et Configuration Samba plus Facile

Installation et Configuration Samba plus Facile

สารบัญ:

Anonim

Samba เป็นการนำโพรโทคอลการแชร์ไฟล์เครือข่าย SMB / CIFS ฟรีและโอเพนซอร์สที่ช่วยให้ผู้ใช้สามารถเข้าถึงไฟล์เครื่องพิมพ์และทรัพยากรอื่น ๆ ที่ใช้ร่วมกัน

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

เราจะสร้างแชร์แซมบ้าและผู้ใช้ต่อไปนี้

ผู้ใช้:

  • sadmin - ผู้ใช้ที่เป็นผู้ดูแลระบบที่มีสิทธิ์อ่านและเขียนในการแชร์ทั้งหมด josh - ผู้ใช้ทั่วไปที่มีการแชร์ไฟล์ส่วนตัว

หุ้น:

  • ผู้ใช้ - การแชร์นี้จะสามารถเข้าถึงได้ด้วยสิทธิ์การอ่าน / เขียนโดยผู้ใช้ทั้งหมด josh - การแชร์นี้จะสามารถเข้าถึงได้ด้วยสิทธิ์อ่าน / เขียนโดยผู้ใช้ josh และ sadmin เท่านั้น

แชร์ไฟล์จะสามารถเข้าถึงได้จากอุปกรณ์ทั้งหมดในเครือข่ายของคุณ ต่อมาในบทช่วยสอนเราจะให้คำแนะนำโดยละเอียดเกี่ยวกับวิธีการเชื่อมต่อกับเซิร์ฟเวอร์ Samba จากไคลเอนต์ Linux, Windows และ macOS

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มตรวจสอบให้แน่ใจว่าคุณได้ลงชื่อเข้าใช้ระบบ CentOS 7 ของคุณในฐานะผู้ใช้ที่มีสิทธิ์ sudo

การติดตั้ง Samba บน CentOS

Samba มีให้บริการจากคลังเก็บ CentOS มาตรฐาน หากต้องการติดตั้งบนระบบ CentOS ของคุณให้เรียกใช้คำสั่งต่อไปนี้:

sudo yum install samba samba-client

เมื่อการติดตั้งเสร็จสมบูรณ์ให้เริ่มบริการ Samba และเปิดใช้งานให้เริ่มโดยอัตโนมัติเมื่อบูตระบบ:

sudo systemctl start smb.service sudo systemctl start nmb.service

sudo systemctl enable smb.service sudo systemctl enable nmb.service

เซอร์วิส smbd จัดเตรียมการแบ่งใช้ไฟล์และเซอร์วิสการพิมพ์และรับฟังบนพอร์ต TCP 139 และ 445 บริการ nmbd จัดเตรียม NetBIOS ผ่านเซอร์วิสการตั้งชื่อ IP ให้กับไคลเอ็นต์และรับฟังพอร์ต UDP 137

การกำหนดค่าไฟร์วอลล์

ตอนนี้แซมบ้าได้รับการติดตั้งและใช้งานบนเครื่อง CentOS ของคุณคุณจะต้องกำหนดค่าไฟร์วอลล์ของคุณและเปิดพอร์ตที่จำเป็น หากต้องการทำเช่นนั้นให้เรียกใช้คำสั่งต่อไปนี้:

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

การสร้างผู้ใช้แซมบ้าและโครงสร้างไดเรกทอรี

เพื่อการบำรุงรักษาและความยืดหยุ่นที่ง่ายขึ้นแทนที่จะใช้โฮมไดเร็กตอรี่มาตรฐาน ( /home/user ) ไดเรกทอรีและข้อมูลของแซมบ้าทั้งหมดจะอยู่ในไดเรกทอรี /samba

เริ่มต้นด้วยการสร้างไดเรกทอรี /samba :

sudo mkdir /samba

สร้างกลุ่มใหม่ชื่อ sambashare หลังจากนั้นเราจะเพิ่มผู้ใช้ Samba ทั้งหมดในกลุ่มนี้

sudo groupadd sambashare

ตั้งค่าความเป็นเจ้าของกลุ่มไดเรกทอรี /samba เป็น sambashare :

sudo chgrp sambashare /samba

Samba ใช้ผู้ใช้ Linux และระบบการอนุญาตกลุ่ม แต่มีกลไกการพิสูจน์ตัวตนแยกต่างหากจากการรับรองความถูกต้อง Linux มาตรฐาน เราจะสร้างผู้ใช้โดยใช้เครื่องมือ Linux useradd มาตรฐานจากนั้นตั้งรหัสผ่านผู้ใช้ด้วยยูทิลิตี้ smbpasswd

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

การสร้างผู้ใช้ Samba

เพื่อสร้างผู้ใช้ใหม่ชื่อ josh ใช้คำสั่งต่อไปนี้:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

ตัวเลือก useradd มีความหมายต่อไปนี้:

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

สร้างโฮมไดเรกทอรีของผู้ใช้และตั้งค่าความเป็นเจ้าของไดเรกทอรีเป็นผู้ใช้ josh และกลุ่ม sambashare :

sudo mkdir /samba/josh sudo chown josh:sambashare /samba/josh

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

sudo chmod 2770 /samba/josh

เพิ่มบัญชีผู้ใช้ josh ไปยังฐานข้อมูล Samba โดยการตั้งรหัสผ่านผู้ใช้:

sudo smbpasswd -a josh

คุณจะได้รับแจ้งให้ป้อนและยืนยันรหัสผ่านของผู้ใช้

New SMB password: Retype new SMB password: Added user josh.

เมื่อตั้งรหัสผ่านแล้วให้เปิดใช้งานบัญชี Samba โดยพิมพ์:

sudo smbpasswd -e josh

Enabled user josh.

หากต้องการสร้างผู้ใช้รายใหม่ให้ทำซ้ำกระบวนการเดียวกันกับเมื่อสร้างผู้ใช้ josh

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

สร้างผู้ใช้ที่เป็นผู้ดูแลระบบโดยพิมพ์:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

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

ตั้งรหัสผ่านและเปิดใช้งานผู้ใช้:

sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin

ถัดไปสร้างไดเรกทอรี Users แชร์:

sudo mkdir /samba/users

ตั้งค่าความเป็นเจ้าของไดเรกทอรีเป็นผู้ใช้ sadmin และกลุ่ม sambashare :

sudo chown sadmin:sambashare /samba/users

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

sudo chmod 2770 /samba/users

การกำหนดค่าการแบ่งปันแซมบ้า

เปิดไฟล์การตั้งค่า Samba และผนวกส่วนต่างๆ:

sudo nano /etc/samba/smb.conf /etc/samba/smb.conf

path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin path = /samba/josh browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = josh @sadmin

ตัวเลือกมีความหมายต่อไปนี้:

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกที่มีให้ดูหน้าเอกสารประกอบของ Samba

เมื่อเสร็จแล้วให้รีสตาร์ทบริการ Samba ด้วย:

sudo systemctl restart smb.service sudo systemctl restart nmb.service

ในส่วนต่อไปนี้เราจะแสดงวิธีการเชื่อมต่อกับ Samba ที่ใช้ร่วมกันจากไคลเอนต์ Linux, MacOS และ Windows

การเชื่อมต่อกับ Samba Share จาก Linux

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

การใช้ไคลเอนต์ smbclient

smbclient เป็นเครื่องมือที่ช่วยให้คุณเข้าถึง Samba จากบรรทัดคำสั่ง แพ็คเกจ smbclient ไม่ได้ติดตั้งไว้ล่วงหน้าใน Linux distros ส่วนใหญ่ดังนั้นคุณจะต้องติดตั้งกับตัวจัดการแพ็คเกจการแจกจ่ายของคุณ

ในการติดตั้ง smbclient บน Ubuntu และเดเบียนทำงาน:

sudo apt install smbclient

ในการติดตั้ง smbclient บน CentOS และ Fedora ให้รัน:

sudo yum install samba-client

ไวยากรณ์ในการเข้าถึงการใช้งานร่วมกันของ Samba มีดังนี้:

mbclient //samba_hostname_or_server_ip/share_name -U username

ตัวอย่างเช่นการเชื่อมต่อกับการแชร์ชื่อ josh บนเซิร์ฟเวอร์ Samba ที่มีที่อยู่ IP 192.168.121.118 ในฐานะผู้ใช้ที่คุณจะเรียกใช้:

smbclient //192.168.121.118/josh -U josh

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้

Enter WORKGROUP\josh's password:

เมื่อคุณป้อนรหัสผ่านคุณจะถูกล็อกอินเข้าสู่อินเตอร์เฟสบรรทัดคำสั่งของ Samba

Try "help" to get a list of possible commands. smb: \>

กำลังเพิ่มส่วนแบ่ง Samba

ในการติดตั้งแบ่งปันแซมบ้าบน Linux ก่อนอื่นคุณต้องติดตั้งแพ็คเกจ cifs-utils

ในการทำงานของ Ubuntu และ Debian:

sudo apt install cifs-utils

ใน CentOS และ Fedora ทำงาน:

sudo yum install cifs-utils

ถัดไปสร้างจุดเมานท์:

sudo mkdir /mnt/smbmount

เมานต์การแบ่งปันโดยใช้คำสั่งต่อไปนี้:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

ตัวอย่างเช่นการเมานต์แชร์ชื่อ josh บนเซิร์ฟเวอร์ Samba ที่มีที่อยู่ IP 192.168.121.118 ในฐานะผู้ใช้ josh ไปยังจุดเมาน /mnt/smbmount คุณจะเรียกใช้:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้

Password for josh@//192.168.121.118/josh: ********

การใช้ GUI

ไฟล์ตัวจัดการไฟล์เริ่มต้นใน Gnome มีตัวเลือกในการเข้าถึงการแชร์แซมบ้า

  1. เปิดไฟล์และคลิกที่ "สถานที่อื่น ๆ " ในแถบด้านข้างใน“ เชื่อมต่อกับเซิร์ฟเวอร์” ป้อนที่อยู่ของการแบ่งปันแซมบ้าในรูปแบบต่อไปนี้ smb://samba_hostname_or_server_ip/sharename คลิก“ เชื่อมต่อ” และหน้าจอต่อไปนี้จะปรากฏขึ้น:

ข้อสรุป

ในบทช่วยสอนนี้คุณได้เรียนรู้วิธีการติดตั้งเซิร์ฟเวอร์ Samba บน CentOS 7 และสร้างการแชร์และผู้ใช้ประเภทต่างๆ เรายังแสดงวิธีการเชื่อมต่อกับเซิร์ฟเวอร์ Samba จากอุปกรณ์ Linux, macOS และ Windows

samba centos