SAMBA 的執(zhí)行文件一般來說,做為 SAMBA Server 的執(zhí)行檔有 testparm,smbd, nmbd, smbpasswd,至于做為 SAMBA Client 的執(zhí)行檔主要則是:smbmount,smbclient?!mbd 與nmbd:這兩個執(zhí)行檔是那兩個主要的 daemons ,每次啟動 SAMBA 都會使用到的兩個執(zhí)行檔。
testparm:當(dāng)設(shè)定完成了smb.conf 這個主要設(shè)定檔之后,而想要查看一下 SAMBA 的所有設(shè)定參數(shù)與 smb.conf的設(shè)定項目是否正確時,就需要使用這個 testparm 來查看( test parameters 的簡寫!)!所以,每次在修改完 smb.conf之后,請務(wù)必要使用 testparm 查看看是否有設(shè)定錯誤。
smbpasswd:如果SAMBA 設(shè)定的較為嚴(yán)格,需要規(guī)定使用者的賬號與密碼,那么那個密碼檔案的建立就需要使用smbpasswd 來建置才可以,所以這個指令與建立 SAMBA 的密碼有關(guān)?!mbclient:當(dāng)Linux 主機想要藉由『網(wǎng)絡(luò)上的芳鄰』的功能來查看別臺計算機所分享出來的目錄與裝置時,就可以使用smbclient 來查看啦!這個指令也可以使用在 SAMBA 主機上面,用來查看是否設(shè)定成功。
smbmount:在Windows 上面可以設(shè)定『網(wǎng)絡(luò)磁盤驅(qū)動器』來連接到主機上面,同樣,在Linux 上面,可以透過 smbmount 來將遠程主機分享的檔案與目錄掛載到Linux 主機上面。不過,其實也可以直接使用 mount 這個指令來進行同樣的功能就是了。
samba服務(wù)全攻略
1.1Samba服務(wù)全攻略
接觸Linux我們聽的最多的就是Samba服務(wù),為什么Samba應(yīng)用這么廣泛哈~,原因是Samba最先在Linux和Windows兩個平臺之間架起了一座橋梁哈,正是由于Samba的出現(xiàn),我們可以在Linux系統(tǒng)和Windows系統(tǒng)之間互相通信,比如拷貝文件、實現(xiàn)不同操作系統(tǒng)之間的資源共享等等,我們可以將其架設(shè)成一個功能非常強大的文件服務(wù)器,也可以將其架設(shè)成打印服務(wù)器提供本地和遠程聯(lián)機打印,甚至我們可以使用samba Server完全取代NT/2K/2K3中的域控制器,做域管理工作,使用也非常方便滴哈~既然samba這樣滴強大哈,我們還不趕快來把玩一下哈~~~
1.2 Samba應(yīng)用環(huán)境
文件和打印機共享:文件和打印機共享是Samba的主要功能,SMB進程實現(xiàn)資源共享,將文件和打印機發(fā)布到網(wǎng)絡(luò)之中,以供用戶可以訪問哈。
身份驗證和權(quán)限設(shè)置:smbd服務(wù)支持user mode和domain mode等身份驗證和權(quán)限設(shè)置模式,通過加密方式可以保護共享的文件和打印機。
名稱解析:Samba通過nmbd服務(wù)可以搭建NBNS(NetBIOS Name Service)服務(wù)器,提供名稱解析,將計算機的NetBIOS名解析為IP地址。
瀏覽服務(wù):局域網(wǎng)中,Samba服務(wù)器可以成為本地主瀏覽服務(wù)器(LMB),保存可用資源列表,當(dāng)使用客戶端訪問Windows網(wǎng)上鄰居時,會提供瀏覽列表,顯示共享目錄、打印機等資源。
1.3 Samba工作原理
Samba服務(wù)功能強大,這與其通信基于SMB協(xié)議有關(guān)。SMB不僅提供目錄和打印機共享,還支持認(rèn)證、權(quán)限設(shè)置。在早期哈,SMB運行于NBT協(xié)議(NetBIOS over TCP/IP)上,使用UDP協(xié)議的137、138及TCP協(xié)議的139端口,后期SMB經(jīng)過開發(fā),可以直接運行于TCP/IP協(xié)議上,沒有額外的NBT層,使用TCP協(xié)議的445端口。
?。?)Samba工作流程
當(dāng)客戶端訪問服務(wù)器時,信息通過SMB協(xié)議進行傳輸,其工作過程可以分成四個步驟哈:
步驟1:協(xié)議協(xié)商
客戶端在訪問Samba服務(wù)器時,發(fā)送negprot指令數(shù)據(jù)包,告知目標(biāo)計算機其支持的SMB類型。Samba服務(wù)器根據(jù)客戶端的情況,選擇最優(yōu)的SMB類型,并做出回應(yīng)。
--------negprot請求-------》
客戶端 服務(wù)器
--------negprot響應(yīng)-------》
步驟2:建立連接
當(dāng)SMB類型確認(rèn)后,客戶端會發(fā)送session setup指令數(shù)據(jù)包,提交帳號和密碼,請求與Samba服務(wù)器建立連接,如果客戶端通過身份驗證,Samba服務(wù)器會對session setup報文作出回應(yīng),并為用戶分配唯一的UID,在客戶端與其通信時使用。
--------session setup &X請求-------》
客戶端 服務(wù)器
--------session setup &X響應(yīng)-------》
步驟3:訪問共享資源
客戶端訪問Samba共享資源時,發(fā)送tree connect指令數(shù)據(jù)包,通知服務(wù)器需要訪問的共享資源名,如果設(shè)置允許,Samba服務(wù)器會為每個客戶端與共享資源連接分配TID,客戶端即可訪問需要的共享資源哈。
--------tree connect &X請求-------》
客戶端 服務(wù)器
--------tree connect &X響應(yīng)-------》
步驟4:斷開連接
共享使用完畢,客戶端向服務(wù)器發(fā)送tree disconnect報文關(guān)閉共享,與服務(wù)器斷開連接。
--------tree disconnect請求-------》
客戶端 服務(wù)器
--------tree disconnect響應(yīng)-------》
?。?)Samba相關(guān)進程
Samba服務(wù)是由兩個進程組成,分別是nmbd和smbd。
nmbd:其功能是進行NetBIOS名解析,并提供瀏覽服務(wù)顯示網(wǎng)絡(luò)上的共享資源列表。
smbd:其主要功能就是用來管理Samba服務(wù)器上的共享目錄、打印機等,主要是針對網(wǎng)絡(luò)上的共享資源進行管理的服務(wù)。當(dāng)要訪問服務(wù)器時,要查找共享文件,這時我們就要依靠smbd這個進程來管理數(shù)據(jù)傳輸哈~~~
2 安裝Samba服務(wù)
2.1 Samba所需軟件
在我們安裝Samba服務(wù)之前哈,我們先來了解一下其所需要的軟件包以及它們的用途哈~
samba-3.0.25b-0.el5.4.i386.rpm:該包為Samba服務(wù)的主程序包。服務(wù)器必須安裝該軟件包,后面的數(shù)字為版本號(我們安裝時使用的是RHEL5.1DVD版,如果是RHEL5.1CD版則該軟件包位于第二張RHEL5安裝光盤上)。
samba-client-3.0.25b-0.el5.4.i386.rpm:該包為Samba的客戶端工具,是連接服務(wù)器和連接網(wǎng)上鄰居的客戶端工具并包含其測試工具(該軟件包位于第一張RHEL5安裝光盤哈~)
samba-common-3.0.25b-0.el5.4.i386.rpm:該包存放的是通用的工具和庫文件,無論是服務(wù)器還是客戶端都需要安裝該軟件包(這個軟件包也位于第一張RHEL5安裝光盤哈~)
samba-swat-3.0.25b-0.el5.4.i386.rpm:當(dāng)安裝了這個包以后,就可以通過瀏覽器(比如IE等哈)來對Samba服務(wù)器進行圖形化管理(這個軟件包位于第三張RHEL5安裝光盤哈)。
2.2 Samba的安裝
建議在安裝Samba服務(wù)之前,使用rpm -qa命令檢測系統(tǒng)是否安裝了Samba相關(guān)性軟件包:rpm -qa |grep samba
如果系統(tǒng)還沒有安裝Samba軟件包,我們可以使用rpm命令安裝所需軟件包。
安裝Samba主程序包:rpm -ivh samba-3.0.25b-0.el5.4.i386.rpm
其他軟件包的安裝方法也一樣哈~
安裝Samba客戶端工具:rpm -ivh samba-client-3.0.25b-0.el5.4.i386.rpm
提示已經(jīng)安裝過了哈~
安裝Samba通用工具和庫文件:rpm -ivh samba-common-3.0.25b-0.el5.4.i386.rpm
其實我們一開始rpm qa |grep samba命令查詢時已經(jīng)發(fā)現(xiàn)客戶端工具和通用工具及庫文件已經(jīng)安裝了哈,我們上面兩步安裝就可以不要執(zhí)行了哈,偶主要是演示一下哈~
最后我們安裝Samba圖形化管理工具:rpm -ivh samba-swat-3.0.25b-0.el5.4.i386.rpm
我們發(fā)現(xiàn)缺少xinetd,OK,那我們安裝一下哈~:rpm -ivh xinetd-2.3.14-10.el5.i386.rpm
現(xiàn)在我們再來安裝Samba圖形化管理工具:rpm -ivh samba-swat-3.0.25b-0.el5.4.i386.rpm
現(xiàn)在我們看到Samba圖形化管理工具安裝成功了哈~
所有軟件包安裝完畢之后,我們可以使用rpm命令進行查詢哈:rpm -qa | grep samba
3 Samba常規(guī)服務(wù)器配置
在Samba服務(wù)安裝完畢之后,并不是直接可以使用Windows或Linux的客戶端訪問Samba服務(wù)器哈,我們還必須對服務(wù)器進行設(shè)置,下面需要做的操作就是說我們要告訴Samba服務(wù)器將哪些目錄共享出來給客戶端進行訪問,并根據(jù)需要設(shè)置其他選項哈,比如添加對共享目錄內(nèi)容的簡單描述信息和訪問權(quán)限等具體設(shè)置。
作為我們Linux系統(tǒng)工程師了解及熟悉Samba服務(wù)器的搭建流程是至關(guān)重要滴。 基本的Samba服務(wù)器的搭建流程主要分為四個步驟:
?。?]、編輯主配置文件smb.conf,指定需要共享的目錄,并為共享目錄設(shè)置共享權(quán)限。
?。?]、在smb.conf文件中指定日志文件名稱和存放路徑。
?。?]、設(shè)置共享目錄的本地系統(tǒng)權(quán)限。
[4]、重新加載配置文件或重新啟動smb服務(wù),使用配置生效哈~
為了更好地理解設(shè)定流程中每一步的作用,下面通過一個圖例進行講解哈~
Samba工作流程:
---------(1)---------》 ----------(2)----------》smb.conf主配置文件
?。劭蛻舳耍?[Samba服務(wù)器]
-------- (4)----------》 ----------(3)----------》日志文件
(1)客戶端請求訪問Samba服務(wù)器上的Share共享目錄。
(2) Samba服務(wù)器接收到請求后,會查詢主配置文件smb.conf,看是否共享了Share目錄,如果共享了這個目錄則查看客戶端是否有權(quán)限訪問。
?。?)Samba服務(wù)器會將本次訪問信息記錄在日志文件之中,日志文件的名稱和路徑都是需要我們設(shè)置。
?。?)如果客戶端滿足訪問權(quán)限設(shè)置,則允許客戶端進行訪問。
實際上,Samba服務(wù)器和我們的圖書館有點相似之處哈,圖書館為讀者共享了圖書資源,而Samba服務(wù)器共享了我們的文件數(shù)據(jù)哈。
圖書館會有圖書分類,比如科普類、文學(xué)類等,并且圖書館會對借閱的圖書做限制,擁有資格的讀者,才可以借閱相應(yīng)的圖書,當(dāng)然讀者訪問圖書館時,圖書管理員會對他們的瀏覽、借閱信息進行記錄。
對于Samba服務(wù)器來說,其主配置文件smb.conf記錄了共享的目錄列表。比如share目錄,temp目錄等。對于每個共享目錄,需要配置相應(yīng)權(quán)限,服務(wù)器會根據(jù)smb.conf文件中的設(shè)置,判斷客戶端是否有權(quán)限訪問,只有擁有權(quán)限才可以訪問服務(wù)器的資源。Samba服務(wù)器同樣會對用戶的行為進行記錄,每一次訪問的信息都會記錄在日志文件中,以便我們Linux管理員查詢哪些客戶端訪問過Samba服務(wù)器。
我們大致講了Samba工作流程后,下面我們將對Samba具體配置過程中遇到的重要概念進行詳細(xì)講解哈~~
3.1 主要配置文件smb.conf
我們先從最重要的配置文件開始哦,Samba的配置文件一般就放在/etc/samba目錄中,主配置文件名為smb.conf。如果把Samba服務(wù)器比喻成一個公共圖書館,那么/etc/samba目錄中,那么主配置文件/etc/samba/smb.conf文件,就相當(dāng)于這個圖書館的圖書總目錄,記錄著大量的共享信息和規(guī)則,所以該文件是samba服務(wù)非常重要的核心配置文件哈,幾乎絕大部分的配置文件都在該文件中進行滴。此外,在smb.conf這個配置文檔中本身就含有非常豐富的說明哈,所以在我們配置之前可以先看一下這樣說明性的文字。
我們先看一下smb.conf這個文件哈:vim /etc/samba/smb.conf
smb.conf配置文件有288行內(nèi)容,配置也相對比較復(fù)雜哈,不過我們不用擔(dān)心,Samba開發(fā)組按照功能不同,對smb.conf文件進行了分段劃分,條理非常地清楚哈。
下面我們來具體看下smb.conf的內(nèi)容哈,smb.conf大致分為三個部分,我們來了解一下,其中我們經(jīng)常要使用到的字段,我們將以實例解釋,其他字段我們整理到字段匯總,有興趣的可以去看下哈~~
1、samba配置簡介
smb.conf文件的開頭部分為samba配置簡介,告訴我們smb.conf文件的作用及相關(guān)信息。
smb.conf中以“#”開頭的為注釋,為用戶提供相關(guān)的配置解釋信息,方便用戶參考,不用修改它哈。
smb.conf中還有以“;”開頭滴,這些都是samba配置的格式范例,默認(rèn)是不生效滴,可以通過去掉前面的“;”并加以修改來設(shè)置想使用的功能。
2、Global Settings
Global Settings設(shè)置為全局變量區(qū)域。那什么是全局變量哈?全局變量就是說我們只要在global時進行設(shè)置,那么該設(shè)置項目就是針對所有共享資源生效滴。這與以后我們學(xué)習(xí)的很多服務(wù)器配置文件相似哈。
該部分以[global]開始:
smb.conf配置通用格式,對相應(yīng)功能進行設(shè)置:字段=設(shè)定值
下面我們說下[global]常用字段及設(shè)置方法:
1)設(shè)置工作組或域名稱
工作組是網(wǎng)絡(luò)中地位平等的一組計算機,可以通過設(shè)置workgroup字段來對samba服務(wù)器所在工作組或域名進行設(shè)置。
我們設(shè)置samba服務(wù)器的工作組為RHEL5
2)服務(wù)器描述
服務(wù)器描述實際上類似于備注信息哈,在一個工作組中,可能存在多臺服務(wù)器,為了方便用戶瀏覽,我們可以在server string配置相應(yīng)描述信息,這樣用戶就可以通過描述信息知道自己要登錄哪臺服務(wù)器了啊~
我們設(shè)置samba描述信息為“RHEL5 File Server”。
3)設(shè)置samba服務(wù)器安全模式
samba服務(wù)器有share、user、server、domain和ads 五種安全模式,用來適應(yīng)不同的企業(yè)服務(wù)器需求。
?。?)share安全級別模式
客戶端登錄samba服務(wù)器,不需要輸入用戶名和密碼就可以瀏覽samba服務(wù)器的資源,適用于公共的共享資源,安全性差,需要配合其他權(quán)限設(shè)置,保證samba服務(wù)器的安全性。
?。?)user安全級別模式
客戶端登錄samba服務(wù)器,需要提交合法帳號和密碼,經(jīng)過服務(wù)器驗證才可以訪問共享資源,服務(wù)器默認(rèn)為此級別模式。
(3)server安全級別模式
客戶端需要將用戶名和密碼,提交到指定的一臺samba服務(wù)器上進行驗證,如果驗證出現(xiàn)錯誤,客戶端會用user級別訪問。
?。?)domain安全級別模式
如果samba服務(wù)器加入windows域環(huán)境中,驗證工作服將由windows域控制器負(fù)責(zé),domain級別的samba服務(wù)器只是成為域的成員客戶端,并不具備服務(wù)器的特性,samba早期的版本就是使用此級別登錄windows域滴。
(5)ads安全級別模式
當(dāng)samba服務(wù)器使用ads安全級別加入到windows域環(huán)境中,其就具備了domain安全級別模式中所有的功能并可以具備域控制器的功能。
3、Share Definitions共享服務(wù)的定義
Share Definitions設(shè)置對象為共享目錄和打印機,如果我們想發(fā)布共享資源,需要對Share Definitions部分進行配置。Share Definitions字段非常豐富,設(shè)置靈活。
我們先來講下幾個最常用的字段哈~
1)設(shè)置共享名
共享資源發(fā)布后,必須為每個共享目錄或打印機設(shè)置不同的共享名,給網(wǎng)絡(luò)用戶訪問時使用,并且共享名可以與原目錄名不同。
共享名設(shè)置非常簡單:[共享名]
我們來看個例子,Samba服務(wù)器中有個目錄為/share,需要發(fā)布該目錄成為共享目錄,定義共享名為public
2)共享資源描述
網(wǎng)絡(luò)中存在各種共享資源,為了方便用戶識別,可以為其添加備注信息,以方便用戶查看時知道共享資源的內(nèi)容是什么哈。
格式:comment = 備注信息
舉個例子哈,samba服務(wù)器上有個/sales目錄存放公司銷售部的數(shù)據(jù),為了對公司部門員工進行區(qū)分,可以添加備注信息。
3)共享路徑
共享資源的原始完整路徑,可以使用path字段進行發(fā)布,務(wù)必正確指定。
格式:path = 絕對地址路徑
samba服務(wù)器上/share/tools目錄存放常用工具軟件,需要發(fā)布該目錄為共享,我們可以這樣做。
4)設(shè)置匿名訪問
共享資源如果對匿名訪問進行設(shè)置,可以更改public字段。
格式:
public = yes #允許匿名訪問
public = no #禁止匿名訪問
samba服務(wù)器/share共享目錄允許匿名用戶訪問,可以這樣設(shè)置。
5)設(shè)置訪問用戶
如果共享資源存在重要數(shù)據(jù)的話,需要對訪問用戶審核,我們可以使用valid users字段進行設(shè)置哈~
格式:
valid users = 用戶名
valid users = @組名
我們來看下面一個例子哈,samba服務(wù)器/share/tech目錄存放了公司技術(shù)部數(shù)據(jù),只允許技術(shù)部員工和經(jīng)理訪問,技術(shù)部組為tech,經(jīng)理帳號為gm
6)設(shè)置目錄只讀
共享目錄如果限制用戶的讀寫操作,我們可以通過readonly實現(xiàn)哈~
格式:
readonly = yes #只讀
readonly = no #讀寫
samba服務(wù)器公共目錄/public存放大量共享數(shù)據(jù),為保證目錄安全我們只允許讀取,禁止寫入哈~
7)設(shè)置目錄可寫
如果共享目錄允許用戶寫操作,可以使用writable或write list兩個字段進行設(shè)置哈~
writable格式:
writable = yes #讀寫
writable = no #只讀
write list格式:
write list = 用戶名
write list = @組名
注意:
[homes]為特殊共享目錄,表示用戶主目錄。
?。踦rinters]表示共享打印機。
3.2 Samba服務(wù)日志文件
日志文件對于samba非常滴重要哈,它存儲著客戶端訪問samba服務(wù)器的信息,以及samba服務(wù)的錯誤提示信息等,可以通過分析日志,幫助解決客戶端訪問和服務(wù)器維護等問題。
在/etc/samba/smb.conf文件中,log file為設(shè)置samba日志的字段。
samba服務(wù)的日志文件默認(rèn)存放在/var/log/samba/中,其中samba會為每個連接到samba服務(wù)器的計算機分別建立日志文件。
我們啟動smb服務(wù):/etc/rc.d/init.d/smb start
使用ls -a命令可以查看日志的所有文件。
其中,當(dāng)samba服務(wù)器剛剛建立好后,只有兩個文件,分別是nmbd.log和smbd.log,它們分別記錄nmbd和smbd進程的運行日志。
nmbd.log記錄nmbd進程的解析信息。
smbd.log記錄用戶訪問samba服務(wù)器的問題,以及服務(wù)器本身的錯誤信息,可以通過該文件獲得大部分的samba維護信息。
當(dāng)客戶端通過網(wǎng)絡(luò)訪問samba服務(wù)器后,會自動添加客戶端的相關(guān)日志。
所以哈,我們Linux管理員可以根據(jù)這些文件來查看用戶的訪問情況和服務(wù)器的運行情況。另外當(dāng)samba服務(wù)器工作異常時,也可以通過/var/log/samba/下的日志進行分析哈~
3.3 Samba服務(wù)密碼文件
samba服務(wù)器發(fā)布共享資源后,客戶端訪問samba服務(wù)器,需要提交用戶名和密碼進行身份驗證,驗證合格后才可以登錄。samba服務(wù)為了實現(xiàn)客戶身份驗證功能,將用戶名和密碼信息存放在/etc/samba/smbpasswd中,在客戶端訪問時,將用戶提交資料與smbpasswd存放的信息進行比對,如果相同,并且samba服務(wù)器其他安全設(shè)置允許,客戶端與samba服務(wù)器連接才能建立成功哈~
那如何建立samba帳號呢?偶在說之前先強調(diào)一點哈,samba帳號并不能直接建立滴,需要先建立Linux同名的系統(tǒng)帳號。比如如果我們要建立一個名為michael的samba帳號,那Linux系統(tǒng)中必須提前存在一個同名的michael系統(tǒng)帳號。
samba中添加帳號命令為smbpasswd,命令格式:
smbpasswd -a 用戶名
我們來測試下,在samba服務(wù)器中添加samba帳號redking,我們建立samba帳號之前必須先添加相對應(yīng)的系統(tǒng)帳號,使用useradd命令建立帳號redking,然后執(zhí)行passwd命令為帳號redking設(shè)置密碼哈~最后我們添加redking用戶的samba帳號,執(zhí)行smbpasswd添加帳號redking到samba配置文件中。
OK,Samba帳號添加完畢哈,如果我們在添加samba帳號時輸入完兩次密碼出錯:Failed to modify password entry for user amy,就像下面這樣
這是因為Linux本地用戶里沒有amy這個用戶,我們在系統(tǒng)里面添加一下就OK了哈~
呵,所以哈,務(wù)必要注意在建立samba帳號之前,一宍,%
評論