Samba是一套使用SMB(Server Message Block)協(xié)議的應(yīng)用程序, 通過支持這個(gè)協(xié)議, Samba允許Linux服務(wù)器與Windows系統(tǒng)之間進(jìn)行通信,使跨平臺(tái)的互訪成為可能。Samba是在Linux及Unix上實(shí)現(xiàn)SMB(Server Message Block)協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成。
Samba采用C/S模式, 其工作機(jī)制是讓NetBIOS( Windows 網(wǎng)上鄰居的通信協(xié)議)和SMB兩個(gè)協(xié)議運(yùn)行于TCP/IP通信協(xié)議之上,并且用NetBEUI協(xié)議讓W(xué)indows在“網(wǎng)上鄰居”中能瀏覽Linux服務(wù)器。
samba服務(wù)的搭建
客戶的使用系統(tǒng)的不同也導(dǎo)致測試結(jié)果的不同.
linux系統(tǒng)客戶端:
security = user or share
smbclient -L //192.168.7.113/westos 都是可以看到共享目錄的,
二者不同之處在于, security = user 時(shí)
[root@redhat samba]# smbclient //192.168.7.113/westos
Enter root's password:
Anonymous login successful //系統(tǒng)提示登錄samba服務(wù)成功,但是訪問westos共享目錄失敗,匿名用戶也是用戶。
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 3.5.10-125.el6]
tree connect failed: NT_STATUS_ACCESS_DENIED
security = share
[root@redhat samba]# smbclient //192.168.7.113/westos
Enter root's password:
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 3.5.10-125.el6]
Server not using user level security and no password supplied. //不是服務(wù)的有效用戶,雖然security = share,但是要支持密碼登陸。相當(dāng)于samba服務(wù)訪問都沒成功
tree connect failed: NT_STATUS_WRONG_PASSWORD
win的測試:
security = share 時(shí)
我們訪問samba服務(wù)時(shí),直接登陸成功,但是訪問目錄時(shí),提示要密碼。
security = user 時(shí),當(dāng)訪問samba服務(wù)時(shí)就開始要密碼,沒密碼不訪問。
有沒有這種感覺,linux和win的測試,貌似二者是相反的,剛好顛倒過。
Linux系統(tǒng)
當(dāng)Public =yes 時(shí):
security = user or share
匿名用戶登陸都將成功。
[root@redhat samba]# smbclient //192.168.7.113/westos
Enter root's password:
Anonymous login successful
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: \> ^C
[root@redhat samba]# vim /etc/samba/smb.conf
[root@redhat samba]# /etc/init.d/smb restart
Shutting down SMB services: [ OK ]
Starting SMB services: [ OK ]
[root@redhat samba]# smbclient //192.168.7.113/westos
Enter root's password:
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 3.5.10-125.el6]
Server not using user level security and no password supplied.
smb: \> ^C
win客戶端:
當(dāng)Public =yes 時(shí):
security = share
匿名用戶不需要密碼用戶名,直接登陸成功,訪問共享目錄也不需要密碼用戶名。
當(dāng)Public =yes 時(shí):
security = user
當(dāng)你訪問samba時(shí),直接就會(huì)要用戶名,密碼,登陸都不成功,何況看到共享目錄。
比較:
也就是說當(dāng)當(dāng)Public =yes 時(shí):linux客戶端就可以訪問共享目錄,不管security = user ro share.跟它都沒關(guān)系。Win客戶端只有security =share時(shí),匿名用戶才有權(quán)利去訪問共享目錄。
Samba的幾個(gè)主要配置文件(/etc/samba)
smb.conf:最主要的配置文件,分為[global]和[Share Definitions]兩個(gè)部分。
lmhosts:對應(yīng)NetBIOS Name與該主機(jī)的IP,一般Samba在啟動(dòng)時(shí)就能捕捉到LAN中相關(guān)計(jì)算機(jī)NetBIOS Name對應(yīng)的IP,因此,這個(gè)配置文件一般不用設(shè)置。
smbpasswd:這個(gè)文件默認(rèn)不存在,它是Samba預(yù)設(shè)的使用者密碼對應(yīng)表。
Samba的幾個(gè)主要命令
smbpasswd:用來設(shè)置Samba用戶的帳號和密碼。
smbclient:用來查看別的Linux主機(jī)的共享。也可以在自己的Samba主機(jī)上使用,用來查看設(shè)置是否成功。
smbmount:用來將Samba服務(wù)器共享的文檔和目錄掛載到自己的Linux主機(jī)上。
testparm:用來檢查smb.conf是否有錯(cuò)誤。
smb.conf的幾個(gè)常用變量
①客戶端變量
-----------------------------------------------------------------------------
%a | 客戶端的體系結(jié)構(gòu)(例如Samba,NT,Win98,或者Unknown)
%I | 客戶端的IP地址(例如:192.168.220.100)
%m | 客戶端的NetBios名
%M | 客戶端的DNS名
------------------------------------------------------------------------------
②用戶變量
------------------------------------------------------------------------------
%g | %u的基本組
%G | %U的基本組
%H | %u的Home目錄
%u | 當(dāng)前的unix用戶名
%U | 被請求的客戶端用戶名(不總是被samba使用)
------------------------------------------------------------------------------
③共享變量
------------------------------------------------------------------------------
%p | 如果和%p不同,automounter的路徑對應(yīng)共享的根目錄
%P | 當(dāng)前共享的根目錄
%S | 但前共享的名稱
-------------------------------------------------------------------------------
④服務(wù)器變量
-------------------------------------------------------------------------------
%d | 當(dāng)前服務(wù)器進(jìn)程的ID
%h | Samba服務(wù)器的DNS主機(jī)名
%L | Samba服務(wù)器的netbios名
%N | Home目錄服務(wù)器,來自automount的映射
%v | samba版本
-------------------------------------------------------------------------------
⑤其他變量
-------------------------------------------------------------------------------
%R | 經(jīng)過協(xié)商的SMB協(xié)議
%T | 當(dāng)前的日期和時(shí)間
四種安全等級
①security=share:用戶訪問Samba服務(wù)器不需要提供用戶名和口令, 安全性能較低。
②security=user:Samba服務(wù)器默認(rèn)的安全等級, 每一個(gè)共享目錄只能被一定的用戶訪問, 并由Samba服務(wù)器負(fù)責(zé)檢查賬號和密碼的正確性。
③security=server:服務(wù)器安全級別,依靠其他Windows NT/2000或Samba服務(wù)器來驗(yàn)證用戶的賬號和密碼,是一種代理驗(yàn)證。此種安全模式下,系統(tǒng)管理員可以把所有的Windows用戶和口令集中到一個(gè)NT系統(tǒng)上,使用Windows NT進(jìn)行Samba認(rèn)證, 遠(yuǎn)程服務(wù)器可以自動(dòng)認(rèn)證全部用戶和口令,如果認(rèn)證失敗,Samba將使用用戶級安全模式作為替代的方式。
④security=domain:域安全級別,使用主域控制器(PDC)來完成認(rèn)證。