趙大偉+陳剛
摘要:Samba是通過(guò)消息塊協(xié)議使網(wǎng)絡(luò)上的互聯(lián)計(jì)算機(jī)共享文件和共享打印服務(wù)的應(yīng)用程序。通過(guò)Samba服務(wù)器可以容易地實(shí)現(xiàn)異構(gòu)環(huán)境下Windows與Linux之間的資源共享與訪問(wèn)。通過(guò)對(duì)SMB協(xié)議的分析, 在Linux系統(tǒng)下搭建完整的Samba服務(wù)器管理體系, 對(duì)Samba的配置文件進(jìn)行了詳細(xì)的分析,以實(shí)現(xiàn)在不同的要求下完成Samba服務(wù)器的配置和應(yīng)用。
關(guān)鍵詞:Linux;Samba;網(wǎng)絡(luò);協(xié)議
中圖分類(lèi)號(hào):TP301 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)32-0050-03
Enterprise Application of Samba Server under Linux Environment
ZHAO Da-wei,CHEN Gang
(Department of Computer,College of Humanities & Sciences of Northeast Normal University, Changchun 130117, China)
Abstract: Samba is through the server message block (SMB) application file and print services sharing agreement between computers on the network. The Samba server can conveniently realize between Windows and Linux in heterogeneous network environment resource sharing. Through the analysis of SMB protocol, Samba server set up complete management system in the Linux system, the configuration of the Samba file is analyzed in detail, in order to achieve the complete configuration and application of Samba server in different requirements.
Key words: Linux; Samba; network; protocol
1 概述
隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展, 各企業(yè)單位都紛紛進(jìn)行資源共享的網(wǎng)絡(luò)平臺(tái)建設(shè), 但不同軟件之間的兼容性問(wèn)題, 阻礙了網(wǎng)絡(luò)資源共享平臺(tái)的建設(shè), 解決平臺(tái)之間數(shù)據(jù)互訪成為網(wǎng)絡(luò)應(yīng)用研究的一個(gè)基本問(wèn)題,在局域網(wǎng)中,有許多計(jì)算機(jī)使用的是Windows操作系統(tǒng),也有一部分計(jì)算機(jī)使用的是Linux操作系統(tǒng),如何在兩個(gè)不同的系統(tǒng)之間實(shí)現(xiàn)文件的共享是經(jīng)常遇到的問(wèn)題, 利用在Linux系統(tǒng)里的Samba 組件可以方便地實(shí)現(xiàn)文件共享, 使Windows 用戶(hù)可直接訪問(wèn)Linux 系統(tǒng)或服務(wù)器的文件。
2 Samba介紹
2.1 Samba服務(wù)器
Samba是可以使Linux操作系統(tǒng)應(yīng)用微軟的網(wǎng)絡(luò)通訊協(xié)議的軟件。其中,服務(wù)器消息塊 (SMB)原來(lái)是Microsoft的一種網(wǎng)絡(luò)通訊協(xié)議,Samba軟件是指將SMB通信協(xié)議被移植并應(yīng)用到了Linux操作系統(tǒng)中。微軟公司在Samba中添加了很多新的功能,并將 SMB 改名為公共 Internet 文件系統(tǒng)(Common Internet File System),現(xiàn)在的Samba具有了更豐富的功能和應(yīng)用[1]。
Samba突出應(yīng)用是用于實(shí)現(xiàn)Linux系統(tǒng)與windows系統(tǒng)之間的文件共享和打印共享,使用Samba服務(wù)可以實(shí)現(xiàn)windows系統(tǒng)與Linux系統(tǒng)間的文件共享,同樣可以用于它們之間的資源共享,因?yàn)榫W(wǎng)絡(luò)文件系統(tǒng)(NFS)已經(jīng)很好地解決了Linux與Linux之間的數(shù)據(jù)共享,因而 Samba更多的用在實(shí)現(xiàn)Linux系統(tǒng)與windows系統(tǒng)的的資源共享上。
2.2 SMB協(xié)議
SMB(Server Messages Block)中文名為服務(wù)器消息塊,屬于客戶(hù)機(jī)/服務(wù)器協(xié)議,是實(shí)現(xiàn)在局域網(wǎng)上共享文件和共享打印服務(wù)的協(xié)議,客戶(hù)通過(guò)該協(xié)議能夠訪問(wèn)服務(wù)器上的共享文件、打印機(jī)等資源。如果在Linux系統(tǒng)中已經(jīng)架設(shè)好了Samba服務(wù)器,Windows客戶(hù)端能夠使用SMB協(xié)議共享Samba服務(wù)器上的資源,并且,通過(guò)Samba服務(wù)器也可以訪問(wèn)網(wǎng)絡(luò)中的Windows系統(tǒng)或者Linux系統(tǒng)所共享的資源文件。
Samba運(yùn)行需要兩個(gè)服務(wù), SMB服務(wù)和NMB服務(wù)。其中,SMB是Samba 的核心服務(wù),主要任務(wù)是建立Linux系統(tǒng)下Samba服務(wù)器與客戶(hù)機(jī)之間的聯(lián)系, 驗(yàn)證用戶(hù)身份同時(shí)提供對(duì)共享文件和打印服務(wù)的訪問(wèn), SMB服務(wù)啟動(dòng)后,可以實(shí)現(xiàn)文件的共享; NMB服務(wù)與DNS服務(wù)的功能類(lèi)似,用來(lái)實(shí)現(xiàn)解析,NMB服務(wù)的任務(wù)是把Linux系統(tǒng)共享的工作組名稱(chēng)與其IP對(duì)應(yīng)起來(lái),如果沒(méi)有NMB服務(wù),用戶(hù)必須要通過(guò)IP來(lái)訪問(wèn)共享文件,性能很差[2]。
3 安裝Samba服務(wù)
3.1 利用yum工具安裝
如果你的系統(tǒng)已經(jīng)連接到互聯(lián)網(wǎng)可以使用yum工具安裝,如果未聯(lián)網(wǎng),則需要掛載系統(tǒng)光盤(pán)進(jìn)行安裝。使用yum工具來(lái)安裝Samba有效、方便,在提示符下執(zhí)行命令 # yum install samba 。使用yum工具安裝Samba時(shí),有相關(guān)依賴(lài)關(guān)系的包samba-common、samba -clients、samba-winbind-clients將會(huì)自動(dòng)安裝上去。如果是手動(dòng)安裝通常先安裝samba-common軟件包,再按任意順序安裝客戶(hù)端和服務(wù)器軟件包。
3.2 查看安裝狀態(tài)
在Linux系統(tǒng)中,安裝完Samba服務(wù)器后,會(huì)生成samba可執(zhí)行命令工具以及對(duì)應(yīng)配置文件目錄/etc/samba,在這個(gè)目錄下的/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb文件可以實(shí)現(xiàn)samba的啟動(dòng)和關(guān)閉文件??梢酝ㄟ^(guò)rpm —qa|grep samba來(lái)查看本機(jī)的samba服務(wù)是否安裝成功,查看的結(jié)果如下圖2所示,表示samba服務(wù)已經(jīng)安裝成功。
3.3 啟動(dòng)Samba服務(wù)器
Samba服務(wù)器安裝成功后,就可以啟動(dòng)它,完成配置,實(shí)現(xiàn)Windows與Linux系統(tǒng)之間的資源的共享。通常有兩種方法可以啟動(dòng)Samba服務(wù)器,使用命令/etc/init.d/smb start/stop/restart 或者使用service smb start/stop/restart 來(lái)啟動(dòng)、關(guān)閉、重啟Samba服務(wù)
4 配置Samba服務(wù)
4.1 常用的配置文件
Samba服務(wù)的配置文件是目錄/etc/samba下的smb.conf文件,主要分為兩部分,第一部分是全局設(shè)置,包括一個(gè)[global]配置段??梢耘渲肧amba服務(wù)整體運(yùn)行環(huán)境有關(guān)的選項(xiàng),它的設(shè)置項(xiàng)目是針對(duì)所有共享資源的。第二部分是共享定義,包括home、printers、tem等多個(gè)配置段。該部分主要針對(duì)的是共享目錄的設(shè)置[3]。
4.1.1 [global]段中常用的配置項(xiàng)
workgroup = WORKGROUP 含義:指定 Samba Server 要加入的工作組或域。
server string = Samba Server 含義:設(shè)置 Samba Server 的注釋?zhuān)梢圆惶?,值為字符串?lèi)型。
hosts allow = 含義:設(shè)置允許連接到Samba Server的客戶(hù)端,參數(shù)與參數(shù)之間用空格隔開(kāi)??梢允褂肐P表示或者網(wǎng)段表示。
max log size = 100 含義:表示Samba Server日志文件的最大容量,單位為KB。
log file = /var/log/samba/log.%m 含義: Samba Server日志文件的名稱(chēng)及存儲(chǔ)位置。
security = 含義: 用戶(hù)訪問(wèn)Samba Server的驗(yàn)證方式,可以使用以下四個(gè)值。
(1) share:安全性低,用戶(hù)訪問(wèn)Samba Server不需要使用用戶(hù)名和口令。
(2) user:此項(xiàng)為默認(rèn)設(shè)置,表示共享目錄只能被授權(quán)的用戶(hù)訪問(wèn),賬號(hào)和密碼要在Samba Server中設(shè)置。
(3) server:代理驗(yàn)證。這種模式下,系統(tǒng)管理員能夠?qū)⑺械腤indows用戶(hù)和口令集中到一個(gè)NT系統(tǒng)中,利用 NT系統(tǒng)進(jìn)行Samba認(rèn)證,認(rèn)證失敗,Samba將啟動(dòng)用戶(hù)級(jí)安全模式。
(4) domain:使用主域控制器(PDC)來(lái)完成認(rèn)證。
4.1.2 共享段配置項(xiàng)
comment =字符串 含義:對(duì)該共享的描述。
path = 共享目錄 含義:設(shè)置共享目錄的路徑。
writable = 含義:說(shuō)明共享路徑是否可寫(xiě),兩個(gè)值yes或no。
valid users =用戶(hù)名 含義:設(shè)置允許訪問(wèn)該共享資源的用戶(hù)。
write list = 用戶(hù)名 含義:設(shè)置在該共享下寫(xiě)入文件的用戶(hù)。
4.2 Samba的實(shí)際應(yīng)用
在實(shí)際的工作中,Samba服務(wù)根據(jù)不同的需求有很多的不同的應(yīng)用,現(xiàn)在就來(lái)介紹一下在兩種最常用的配置,
4.2.1 允許Linux用戶(hù)通過(guò)Windows客戶(hù)端訪問(wèn)自己的宿主目錄
允許Linux用戶(hù)通過(guò)Windows客戶(hù)端訪問(wèn)自己的宿主目錄,是Samba服務(wù)中最常見(jiàn)的一種應(yīng)用,需要進(jìn)行以下步驟[4]:
1) 安裝Samba后默認(rèn)的功能,如果linux系統(tǒng)中啟用了SELinux,需要執(zhí)行以下命令:setsebool —P samba_enable_home_dirs on
2) 通過(guò)命令設(shè)置用戶(hù)在Samba下的密碼:smbpasswd —a 用戶(hù)名
3) 最后,啟動(dòng)Samba服:/etc/rc.d/init.d/smb start
完成以上操作后,Linux用戶(hù)就可以通過(guò)Windows客戶(hù)端利用Samba服務(wù)器訪問(wèn)Linux系統(tǒng)中的宿主目錄了,方法就是通過(guò)Windows開(kāi)始菜單-運(yùn)行,輸入\\Samba服務(wù)器所在系統(tǒng)的IP地址就可以了。
4.2.2 允許特定的用戶(hù)通過(guò)Windows客戶(hù)端訪問(wèn)Linux系統(tǒng)下特定的目錄
Samba服務(wù)應(yīng)用最廣泛的是允許特定的用戶(hù)訪問(wèn)特定的目錄,在用Linux做服務(wù)器管理時(shí),我們往往需要對(duì)一些特定的用戶(hù),設(shè)置特定的權(quán)限來(lái)對(duì)我們服務(wù)器中的某些文件或目錄進(jìn)行管理,假設(shè)Samba共享目錄/share,允許zhangsan與lisi兩個(gè)用戶(hù)通過(guò)Windows訪問(wèn)該目錄,并對(duì)該目錄有讀寫(xiě)權(quán)限,配置步驟如下[5]。
(1) 在Linux中,建立目錄/share,添加用戶(hù)zhangsan和lisi;
(2) 系統(tǒng)中如果安裝了SELinux,則需要通過(guò)命令設(shè)置用戶(hù)可訪問(wèn)的系統(tǒng)目錄:
chcon —t samba_share_t /software
(3) 編輯Samba的配置文件/etc/samba/smb.con,增加以下信息:
[software]
Path=/share
Valid users= zhangsan lisi
Writable=yes
(4) 設(shè)置用戶(hù)zhangsan和lisi的Samba 密碼,啟動(dòng)samba服務(wù),zhangsan和lisi就可以通過(guò)windows客戶(hù)端訪問(wèn)Linux下的共享目錄/software了。
4.2.3 Samba服務(wù)在企業(yè)管理中的實(shí)際應(yīng)用
假如公司有網(wǎng)絡(luò)、技術(shù)和管理3個(gè)部門(mén), 3個(gè)部門(mén)對(duì)應(yīng)的用戶(hù)組分別為network,technology和manage。三個(gè)部門(mén)里各有2個(gè)用戶(hù),分別為network01,network02,technology01,technology02,manage01,manage02。在Linux系統(tǒng)中公司要利用Samba服務(wù)建立目錄并設(shè)置對(duì)應(yīng)的權(quán)限,要求如下:
(1) 服務(wù)器使用用戶(hù)驗(yàn)證,每個(gè)用戶(hù)只允許訪問(wèn)自己的宿主目錄,同時(shí)對(duì)該目錄具有完全的權(quán)限,而其他用戶(hù)不能夠看到你的宿主目錄。
(2) 建立一個(gè)work的目錄,允許network組和manage組訪問(wèn),technology02也可以訪問(wèn),只給network01對(duì)該目錄寫(xiě)的權(quán)限。
(3) 建立一個(gè)most的目錄,要求只有manage組能夠訪問(wèn)并具有讀寫(xiě)權(quán)限,同時(shí)允許network02訪問(wèn),其他人對(duì)該目錄不可見(jiàn)。
完成以上的企業(yè)管理中的應(yīng)用需要以下的步驟:
(1) 首先利用“smbpasswd -a 用戶(hù)名”的命令將以上6個(gè)用戶(hù)分別添加到samba用戶(hù)中。然后建立管理中所需要的目錄:
#mkdir /home/samba
#mkdir /home/samba/network
#mkdir /home/samba/manage
(2) 設(shè)置Samba服務(wù)的配置文件smb.conf
1) 設(shè)置配置文件smb.conf的[global]段:
workgroup = myhome
server string = Samba File Server
security = user
其他的設(shè)置采用默認(rèn)。
2) smb.conf的配置文件中的[ [homes]的設(shè)置:
comment = Home Directories
browseable = no
writable = yes
valid users = %S
directory mode = 0775
create mode = 0664
3) smb.conf配置文件中增加#network段并做如下設(shè)置滿(mǎn)足要求(2):
[network]
comment =network
path = /home/samba/network
public = no
valid users = @network,@manage,technology02
write list = network01
4) smb.conf配置文件中增加#manage段做如下設(shè)置滿(mǎn)足要求(3):
[manage]
comment = manage
path = /home/samba/manage
public = no
browseable = no
valid users = @mangage,network02
完成以上的設(shè)置就可以實(shí)現(xiàn)以上企業(yè)中的共享文件要求。
5 結(jié)束語(yǔ)
通過(guò)對(duì)Linux 系統(tǒng)中Samba 服務(wù)器的安裝和設(shè)置, 可以使用企業(yè)用戶(hù)實(shí)現(xiàn)Linux 系統(tǒng)與Windows 系統(tǒng)之間的文件共享, 企業(yè)中的Windows用戶(hù)可以直接通過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)Linux 文件服務(wù)器, 實(shí)現(xiàn)了兩個(gè)系統(tǒng)中文件的共享問(wèn)題,在實(shí)際應(yīng)用中, 還有其他方式可以配置Samba 服務(wù)以實(shí)現(xiàn)更多的功能和更好的共享。
參考文獻(xiàn):
[1] 崔繼.基于SELinux的Samba服務(wù)器的設(shè)計(jì)[J].計(jì)算機(jī)安全,2011(04).
[2] 劉海燕,荊濤.Linux系統(tǒng)應(yīng)用與開(kāi)發(fā)[M].北京:機(jī)械工業(yè)出版社,2011:135-141.
[3] 黃震.Windows與Linux互連技術(shù)[J].電腦知識(shí)與技術(shù),2006(05).
[4] 周海光.基于Samba的UNIX與Windows互聯(lián)技術(shù)[J].微型電腦應(yīng)用,2011(8).
[5] 鐘志文.Linux和Windows下統(tǒng)一服務(wù)器管理初探[J].計(jì)算機(jī)應(yīng)用與軟件,2010(27-1).