Samba 實現 SMB/CIFS 協定,讓 Linux 可與 Windows 互相共享檔案。本文以 Fedora 9 為例,示範從光碟安裝 RPM 套件、解決依賴、基本配置 smb.conf 到啟動測試的完整流程。
Fedora release 9 (Sulphur)
Kernel: 2.6.25
架構: i386
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom/Packages
# 查看 samba 相關 rpm
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
直接安裝會報錯:Missing Dependency: perl(Convert::ASN1)
# 先安裝 perl-Convert-ASN1
rpm -ivh perl-Convert-ASN1-0.21-3.fc9.noarch.rpm
# 再依序安裝 samba 套件
rpm -ivh samba-*.rpm samba-client-*.rpm samba-common-*.rpm samba-winbind-*.rpm system-config-samba-*.rpm
[global]
workgroup = WORKGROUP
server string = Fedora Samba Server
security = user
passdb backend = tdbsam
[homes]
comment = Home Directories
browseable = no
writable = yes
[public]
comment = Public Share
path = /home/samba/public
public = yes
writable = yes
printable = no
mkdir -p /home/samba/public
chmod 777 /home/samba/public
# 建立系統用戶並設定 Samba 密碼
useradd smbuser
smbpasswd -a smbuser
# 輸入兩次密碼
service smb start
service nmb start
chkconfig smb on
chkconfig nmb on
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -p udp --dport 137 -j ACCEPT
iptables -I INPUT -p udp --dport 138 -j ACCEPT
service iptables save
\\Fedora_IP → 輸入 smbuser 帳密。smbclient -L //localhost -U smbuser
setsebool -P samba_enable_home_dirs on)或目錄權限。nmb 服務運行(負責 NetBIOS 名稱解析)。smbpasswd 設定。