Samba 實現 Linux/Windows 跨平台檔案共享。本文以 Fedora 9 (歷史版本,流程具參考性) 為例,示範從光碟 RPM 安裝、依賴解決、smb.conf 配置、使用者建立、服務啟動到防火牆/SELinux 設定的完整流程。
lsb_release -a
# Fedora release 9 (Sulphur)
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom/Packages
# 查看 Samba 相關套件
ls | grep samba
# samba-3.2.0-1.pre3.9.fc9.i386.rpm
# samba-client-3.2.0-1.pre3.9.fc9.i386.rpm
# samba-common-3.2.0-1.pre3.9.fc9.i386.rpm
# samba-winbind-3.2.0-1.pre3.9.fc9.i386.rpm
# system-config-samba-1.2.63-1.fc9.noarch.rpm
# 依序安裝 (處理依賴)
rpm -ivh perl-Convert-ASN1-0.21-3.fc9.noarch.rpm # 先裝依賴
rpm -ivh samba-*.rpm system-config-samba-*.rpm
vim /etc/samba/smb.conf
[global] 區塊關鍵設定:
workgroup = WORKGROUP
server string = Fedora Samba Server
security = user
passdb backend = tdbsam
hosts allow = 192.168.1. 127.0.0.1
[Share Definitions] 新增共享:
[samba_server]
comment = Fedora Shared Directory
path = /mnt/nfs
guest ok = yes
writable = yes
create mask = 0664
directory mask = 0775
# 系統使用者
useradd smbuser
passwd smbuser
# Samba 密碼 (獨立於系統密碼)
smbpasswd -a smbuser
# 或完整路徑
/usr/bin/smbpasswd -a smbuser
service network restart
service smb restart
service nmb restart
chkconfig smb on
chkconfig nmb on
# systemd 系統:
systemctl enable smb nmb
systemctl start smb nmb
# iptables (Fedora 9)
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
service iptables save
# firewalld (現代 Fedora)
firewall-cmd --permanent --add-service=samba
firewall-cmd --permanent --add-service=samba-client
firewall-cmd --reload
# 允許 Samba 共享家目錄
setsebool -P samba_enable_home_dirs on
# 允許共享任意目錄 (需配合標籤)
semanage fcontext -a -t samba_share_t "/mnt/nfs(/.*)?"
restorecon -Rv /mnt/nfs
setsebool -P samba_export_all_rw on
\\192.168.1.106samba_server 共享資料夾
dnf install samba samba-client/etc/samba/smb.confsmb.service, nmb.serviceserver max protocol = SMB3semanage fcontext 仍為核心Samba 核心配置邏輯跨版本一致:「定義共享 → 設定權限 → 建立使用者 → 開放防火牆 → SELinux 標籤」,掌握此流程可快速部署任何 Linux 發行版的檔案共享服務。