啟動(dòng)Linux Samba服務(wù)器安裝配置實(shí)現(xiàn)構(gòu)建
在我們使用 Windows 作為客戶機(jī)的時(shí)候,通常有文件、打印共享的需求。作為Windows 網(wǎng)絡(luò)功能之一,通常可以在 Windows 客戶機(jī)之間通過 Windows Network 固有的功能實(shí)現(xiàn)這些要求。然而,通過 Linux Samba 我們也可以讓一臺(tái) Fedora 主機(jī)來兼容 Windows 網(wǎng)絡(luò),實(shí)現(xiàn)同樣的功能,進(jìn)而充分發(fā)揮 Fedora 主機(jī)的可用性。
本文主要介紹怎樣通過Linux Samba服務(wù)器的構(gòu)建實(shí)現(xiàn) Windows 網(wǎng)絡(luò)中的文件共享。
SMB協(xié)議是建立在NetBIOS協(xié)議之上的應(yīng)用協(xié)議,是基于TCP138、139兩個(gè)端口的服務(wù),NetBIOS出現(xiàn)之后,Microsoft就使用NetBIOS實(shí)現(xiàn)了一個(gè)網(wǎng)絡(luò)文件/打印服務(wù)系統(tǒng)。這個(gè)系統(tǒng)基于NetBIOS設(shè)定了一套文件共享協(xié)議,Microsoft稱之為SMB(Server Message Block) 協(xié)議,這個(gè)協(xié)議被用于Lan Manager和Windows服務(wù)器系統(tǒng)中,實(shí)現(xiàn)不同計(jì)算機(jī)之間共享打印機(jī)和文件等。
因此,為了讓W(xué)indows和Unix/Linux計(jì)算機(jī)相集成,***的辦法就是在 Unix/Linux計(jì)算機(jī)中安裝支持SMB協(xié)議的軟件。這樣使用Windows的客戶端不需要更改設(shè)置, 就能像使用Windows NT或Windows 2000服務(wù)器一樣,使用Unix/Linux計(jì)算機(jī)上的共享資源了。
Linux Samba使SMB協(xié)議運(yùn)行在NetBIOS協(xié)議上,并且使用Windows的NetBEUI協(xié)議讓Unix/Linux服務(wù)器可以在Windows的網(wǎng)絡(luò)鄰居上被訪問到。
安裝 Linux Samba
首先,通過 yum 來在線安裝 Linux Samba 。yum -y install samba
配置 Linux Samba
然后,通過編輯 /etc/samba/smb.conf ,根據(jù)需求配置 Linux Samba。在這里,本文的原則是只將文件共享應(yīng)用于內(nèi)網(wǎng),并讓將要被共享的目錄擁有充分的讀寫權(quán)限屬性。
- [root@sample ~]# vi /etc/samba/smb.conf ← 編輯 Samba 的配置文件
- workgroup = WORKGROUP //設(shè)置工作組
- server string = %U's samba %v //描述信息%U代表當(dāng)前登陸用戶
- netbios name = fedora //netbios名字,fedora9 默認(rèn)沒有啟用
- log file = /var/log/samba/log.%m //日志文件保存路徑%m你的windows主機(jī)名
- max log size = 50 //日志***容量
- security = user //安全級(jí)別,user需要用戶名和密碼,share級(jí)別則不要
- [samba] //建立一個(gè)共享名為samba的共享
- comment = samba //描述信息
- path = /home/suyang/samba //共享路徑
- public = no //是否允許guest用戶訪問(相當(dāng)于guest ok = yes/no)
- writable = yes //是否可寫
- write list = suyang //可以寫入的用戶列表(@代表用戶組)
接下來,創(chuàng)建將要通過 Linux Samba共享給 Windows 網(wǎng)絡(luò)的專用目錄。
- [root@sample ~]# mkdir /home/suyang/samba ← 建立共享文件專用目錄
- [root@sample ~]# chown -R nobody. /home/suyang/samba ← 設(shè)置專用目錄歸屬為 nobody
- [root@sample ~]# chmod 777 /home/suyang/samba ← 將專用目錄屬性設(shè)置為 777
在進(jìn)行到服務(wù)端的連接之前,需要預(yù)先對(duì)用于登錄 Linux Samba的用戶進(jìn)行設(shè)置。這里我們以 Fedora 中 Samba 標(biāo)準(zhǔn)的 Linux Samba 用戶數(shù)據(jù)庫管理工具“smbpasswd”為例,創(chuàng)建用于登錄Linux Samba的用戶數(shù)據(jù)。這里需要注意的一點(diǎn):用 smbpasswd 創(chuàng)建用戶的前提是,系統(tǒng)用戶中存在該用戶 -- 在基于系統(tǒng)用戶之上,才可以創(chuàng)建該用戶在 Linux Samba 用戶數(shù)據(jù)庫中的信息。
- [root@sample ~]# smbpasswd -a suyang ← 將系統(tǒng)用戶 suyang(例)加入到 Samba 用戶數(shù)據(jù)庫
- New SMB password: ← 輸入該用戶用于登錄 Samba 的密碼
- Retype new SMB password: ← 再次確認(rèn)輸入該密碼
啟動(dòng) Linux Samba服務(wù)
在啟動(dòng)Linux Samba 服務(wù)之前,首先將防火墻設(shè)置中 Samba 所用到的端口進(jìn)行開放。
- [root@sample ~]# 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
- [root@sample ~]# /etc/rc.d/init.d/iptables restart ← 重新啟動(dòng) iptables ,使新的規(guī)則生效
- Flushing firewall rules: [ OK ]
- Setting chains to policy ACCEPT: filter [ OK ]
- Unloading iptables modules: [ OK ]
- Applying iptables firewall rules: [ OK ]
***,啟動(dòng)Linux Samba 服務(wù)(含兩個(gè)守護(hù)進(jìn)程:smb,nmb)。
- [root@sample ~]# chkconfig smb on ← 設(shè)置 Samba 自啟動(dòng)
- [root@sample ~]# chkconfig --list smb ← 確認(rèn) Samba 啟動(dòng)標(biāo)簽,確認(rèn) 2-5 為 on 的狀態(tài)
- smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- [root@sample ~]# chkconfig nmb on ← 設(shè)置 nmb 自啟動(dòng)
- [root@sample ~]# chkconfig --list nmb ← 確認(rèn) nmb 啟動(dòng)標(biāo)簽,確認(rèn) 2-5 為 on 的狀態(tài)
- nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- [root@sample ~]# /etc/rc.d/init.d/smb start ← 啟動(dòng) Samba 服務(wù)
- Starting SMB services: [ OK ]
- [root@sample ~]# /etc/rc.d/init.d/nmb start ← 啟動(dòng) nmb 服務(wù)
- Starting NMB services: [ OK ]
[注意:]
1. smbd 監(jiān)聽139 TCP端口 設(shè)置共享目錄、打印等
2. nmbd 137. 138 UDP端口 管理群組、NetBIOS 等解析工作
這里要注意的是fedora9基于安全考慮,把smb和nmb兩個(gè)服務(wù)給分離了,平時(shí)我們?cè)谑褂肔inux Samba服務(wù)的時(shí)候,在啟動(dòng)smb服務(wù)的同時(shí)nmb這個(gè)服務(wù)也會(huì)跟著啟動(dòng),fedora9中則不然,這就造成了我們?cè)O(shè)置好fedora9中共享的時(shí)候,只能使用[url=file://ip/]""ip[/url] 來訪問,而不能使用[url=file://計(jì)算機(jī)名/]""計(jì)算機(jī)名[/url] 來訪問,解決的辦法就是同時(shí)啟動(dòng)smb和nmb服務(wù)。
從 Windows 客戶端連接到 Linux Samba 服務(wù)器
在服務(wù)端啟動(dòng)Linux Samba服務(wù)后,我們就可以從 Windows 客戶端通過 Windows 網(wǎng)絡(luò)連接到 Samba。這里以 Windows XP 為例,說明如下連接過程:
1、從桌面打開“網(wǎng)上鄰居”,并點(diǎn)擊“查看工作組計(jì)算機(jī)”選項(xiàng);
2、確認(rèn)出現(xiàn) Linux Samba 服務(wù)端的連接,并雙擊該連接;(本站文檔的主機(jī)名以 Sample 為例)
3、輸入在服務(wù)端預(yù)先設(shè)置好的 Linux Samba 用戶的用戶名及密碼;(用戶名同系統(tǒng)用戶名,密碼需要輸入在通過 smbpasswd 為該系統(tǒng)用戶設(shè)置的 Samba 專用的密碼。)
4、然后確認(rèn)能夠連接到 Linux Samba 服務(wù)器,并出現(xiàn)根目錄及 Samba 專用共享目錄。***,在相應(yīng)目錄進(jìn)行新建、修改以及刪除文件的操作,測試相應(yīng)權(quán)限的可操作性。
[注意:]
在其它版本的linux中(AS5,AS4,Centos)中做如上設(shè)置后就可以正常訪問共享了,但是在fedora9中卻不行,我們只能看到共享,但是訪問的時(shí)候會(huì)出現(xiàn)拒絕訪問的情況,這是為什么呢?因?yàn)閟elinux對(duì)samba共享做了限制,我們只用把selinux中對(duì)samba的限制給解決了就行了,我們做如下設(shè)置就OK了,這也是我做此教程的目的:
- #setsebool –P samba_enable_home_dir on
- #setsebool –P samba_export_all_ro on
- #setsebool –P samba_export_all_rw on
我們可以用命令getsebool –a | grep samba查看上面三項(xiàng)是否打開,打開的話你的共享應(yīng)該就正常了。
【編輯推薦】