經過長時間學習Samba,于是和大家分享一下,你可能會遇到Fedora Samba問題,看完本文你肯定有不少收獲,這裡将介紹Fedora Samba問題的解決方法,希望本文能教會你更多東西。在我們使用 Windows 作為客戶機的時候,通常有檔案、列印共享的需求。
作為Windows 網絡功能之一,通常可以在 Windows 客戶機之間通過 Windows Network 固有的功能實作這些要求。然而,通過 Fedora Samba 我們也可以讓一台 Fedora 主機來相容 Windows 網絡,實作同樣的功能,進而充分發揮 Fedora 主機的可用性。
本文主要介紹怎樣通過 Fedora Samba 伺服器的建構實作 Windows 網絡中的檔案共享。SMB協定是建立在NetBIOS協定之上的應用協定,是基于TCP138、139兩個端口的服務,NetBIOS出現之後,Microsoft就使用NetBIOS實作了一個網絡檔案/列印服務系統。這個系統基于NetBIOS設定了一套檔案共享協定,Microsoft 稱之為SMB(Server Message Block) 協定,這個協定被用于Lan Manager和Windows伺服器系統中,實作不同計算機之間共享列印機和檔案等。
是以,為了讓Windows和Unix/Linux計算機相內建,最好的辦法就是在 Unix/Linux計算機中安裝支援SMB協定的軟體。這樣使用Windows的用戶端不需要更改設定, 就能像使用Windows NT或Windows 2000伺服器一樣,使用Unix/Linux計算機上的共享資源了。
Fedora Samba使SMB協定運作在NetBIOS協定上,并且使用Windows的NetBEUI協定讓Unix/Linux伺服器可以在Windows的網絡鄰居上被通路到。
安裝 Fedora Samba
使用rpm –qa|gerp samba來檢查是否安裝了samba 軟體包,如果沒有安裝的話請自行安裝以下的軟體包
# rpm –ivh samba-3.2.0-1.pre3.9.fc9.i386.rpm
# rpm –ivh samba-winbind-3.2.0-1.pre3.9.fc9.i386.rpm
# rpm –ivh samba-common-3.2.0-1.pre3.9.fc9.i386.rpm
# rpm –ivh samba-client-3.2.0-1.pre3.9.fc9.i386.rpm
# rpm –ivh system-config-samba-1.2.63-1.fc9.noarch.rpm
或者你用yum install samba* -y就可以一次搞定了。
配置 Fedora Samba
然後,通過編輯 /etc/Samba/smb.conf ,根據需求配置 Fedora Samba。在這裡,本文的原則是隻将檔案共享應用于内網,并讓将要被共享的目錄擁有充分的讀寫權限屬性。
[[email protected] ~]# vi /etc/Samba/smb.conf ← 編輯 Fedora Samba 的配置檔案
workgroup = WORKGROUP //設定工作組
server string = %U's Samba %v //描述資訊%U代表目前登陸使用者
netbios name = fedora //netbios名字,fedora9 預設沒有啟用
log file = /var/log/Samba/log.%m //日志檔案儲存路徑%m你的windows主機名
max log size = 50 //日志最大容量
security = user //安全級别,user需要使用者名和密碼,share級别則不要
[Fedora Samba] //建立一個共享名為Fedora Samba的共享
comment = Samba//描述資訊
path = /home/suyang/Fedora Samba//共享路徑
public = no //是否允許guest使用者通路(相當于guest ok = yes/no)
writable = yes //是否可寫
write list = suyang //可以寫入的使用者清單(@代表使用者組)
接下來,建立将要通過 Fedora Samba 共享給 Windows 網絡的專用目錄。
[[email protected] ~]# mkdir /home/suyang/Samba ← 建立共享檔案專用目錄
[[email protected] ~]# chown -R nobody. /home/suyang/Samba ← 設定專用目錄歸屬為 nobody
[[email protected] ~]# chmod 777 /home/suyang/Samba ← 将專用目錄屬性設定為 777
在進行到服務端的連接配接之前,需要預先對用于登入 Fedora Samba 的使用者進行設定。這裡我們以 Fedora 中 Fedora Samba 标準的 Fedora Samba 使用者資料庫管理工具“smbpasswd”為例,建立用于登入 Fedora Samba 的使用者資料。這裡需要注意的一點:用 smbpasswd 建立使用者的前提是,系統使用者中存在該使用者 -- 在基于系統使用者之上,才可以建立該使用者在 Fedora Samba 使用者資料庫中的資訊。
[[email protected] ~]# smbpasswd -a suyang ← 将系統使用者 suyang(例)加入到 Fedora Samba 使用者資料庫
New SMB password: ← 輸入該使用者用于登入 Fedora Samba 的密碼
Retype new SMB password: ← 再次确認輸入該密碼
以下為另一參考文獻
啟動 Fedora Samba 服務
在啟動 Fedora Samba 服務之前,首先将防火牆設定中 Fedora Samba 所用到的端口進行開放。 [[email protected] ~]# vi /etc/sysconfig/iptables ← 編輯 iptables 配置檔案
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT ← 找到此行,在下面添加如下行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 138 -j ACCEPT
[[email protected] ~]# /etc/rc.d/init.d/iptables restart ← 重新啟動 iptables ,使新的規則生效
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
最後,啟動 Fedora Samba 服務(含兩個守護程序:smb,nmb)。
[[email protected] ~]# chkconfig smb on ← 設定 Fedora Samba 自啟動
[[email protected] ~]# chkconfig --list smb ← 确認 Fedora Samba 啟動标簽,确認 2-5 為 on 的狀态
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] ~]# chkconfig nmb on ← 設定 nmb 自啟動
[ro[email protected] ~]# chkconfig --list nmb ← 确認 nmb 啟動标簽,确認 2-5 為 on 的狀态
nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] ~]# /etc/rc.d/init.d/smb start ← 啟動 Fedora Samba 服務
Starting SMB services: [ OK ]
[[email protected] ~]# /etc/rc.d/init.d/nmb start ← 啟動 nmb 服務
Starting NMB services: [ OK ]