2007年2月2日 星期五

Windows與Fedora的檔案共享

Samba簡介
為了使Windows主機間的資源能共享,IBM於1980年代發展
SMB(Server Message Block)通訊協定。而微軟籍由SMB通訊
協定使得網路芳鄰間的檔案、印表機能夠彼此分享。
後來熱心人士開始在Linux主機上實現SMB通訊協定,實做出來,
即為Samba。


安裝Samba
Samba共有四個套件,可執行以下指令確定是否有安裝
[root@localhost ~]# rpm -qa | grep samba
system-config-samba-1.2.35-1.1
→Samba的圖形介面管理程式
samba-client-3.0.23c-2 →Samba用戶端程式
samba-3.0.23c-2 →Samba必備程式
samba-common-3.0.23c-2 →Samba伺服端程式

若未安裝可用Fedora Core 6 DVD光碟依照以下步驟安裝
[root@localhost tmp]#mount /dev/cdrom /media →掛載光碟
[root@localhost tmp]#cd /media/Fedora/RPMS/
→切換到放置rpm檔的目錄
[root@localhost RPMS]#rpm -ivh samba*.rpm
→安裝samba相關程式套件
[root@localhost RPMS]#cd →切換家目錄
[root@localhost ~]#eject →退片

或是在視窗模式下
應用程式→新增/移除軟體→伺服器→選取Windows檔案伺服器
→套用(需確定系統有連上網路,因為系統會自行下載套件)

安裝好就可以啟動,但Samba預設無法讓所有使用者登入
所以啟動之前要先修改Samba的設定檔
以下示範分享 /tmp,讓所有使用者皆可存取,如下:
[root@localhost ~]vi /etc/samba/smb.conf
...
workgroup = workgroup
→指定Samba所在的工作群組,預設為MYGROUP,可自行修改
...
security = share
→Samba安全等級,預設為User,改成share,如此將不用密碼驗證即可登入samba
...
;local master = no
→若上述workgroup設定的群組,並非已存在的群組
需刪除此行前的註解符號「;」,並將設定值由no更改為yes
如此,新的工作群組,才能在windows下正常顯示
...
→以下這幾行都有加註解符號「;」,需移除,即可分享 /tmp目錄
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
...


設定完成後,可用testparm檢查smb.conf的正確性,如下
[root@localhost ~]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[tmp]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
→按Enter會列出smb.conf的所有設定值


若出現以下錯誤
params.c:Parameter() - Ignoring badly formed line in configuration file:M
→表示在修改/etc/samba/smb.conf 此檔時,誤鍵入1個M字母


設定完成後,即可啟動samba伺服器,以下提供兩種啟動的方法
[root@localhost tmp]# /etc/rc.d/init.d/smb start
正在啟動 SMB 服務: [ 確定 ]
正在啟動 NMB 服務: [ 確定 ]

[root@localhost tmp]# service smb start
正在啟動 SMB 服務: [ 確定 ]
正在啟動 NMB 服務: [ 確定 ]



如何確定我們的 Samba 設定與服務有順利的在運作, 可在本機上透過
smbclient 這支程式來處理,他的基本語法是這樣:
smbclient -L //127.0.0.1 ,以下為實際畫面(按圖可放大)

現在,可在Windows的網路芳鄰看到 tmp資料夾了,如下:(按圖可放大)











附註:/etc/rc.d/init.d/smb 的其它參數
/etc/rc.d/init.d/smb restart →重新啟動Samba
/etc/rc.d/init.d/smb reload →重新載入Samba設定檔
/etc/rc.d/init.d/smb stop →停止執行Samba
/etc/rc.d/init.d/smb →檢視Samba目前執行狀態

沒有留言: