samba是一個(gè)網(wǎng)絡(luò)服務(wù)器,用于linux和windows共享文件之用;samba 即可以用于windows和linux之間的共享文件,也一樣用于linux和linux之間的共享文件;不過(guò)對(duì)于linux和linux之間共享文件有更好的網(wǎng)絡(luò)文件系統(tǒng)nfs(nfs也是需要架設(shè)服務(wù)器的)。samba可以定位為一套功能極為強(qiáng)大的文件服務(wù)器軟件,所謂文件服務(wù)器就是將文件服務(wù)主機(jī)上的目錄分享出來(lái),讓您可以透過(guò)網(wǎng)絡(luò)對(duì)分享出來(lái)的目錄里的文件,做執(zhí)行、讀取、寫(xiě)入等動(dòng)作?;旧蟦t/2000的網(wǎng)域是使用netbeui做計(jì)算機(jī)命名服務(wù),使用廣播封包來(lái)偵測(cè)網(wǎng)絡(luò)上有哪些計(jì)算機(jī)、哪些目錄提供資源共享,而samba與unix主機(jī)間的溝通(如目錄、文件分享)是透過(guò)tcp/ip協(xié)議達(dá)成任務(wù),samba若要與nt網(wǎng)域做溝通,透過(guò)tcp/ip當(dāng)然是行不通的,只好使用netbios對(duì)nt網(wǎng)域做廣播,讓windows機(jī)器能夠認(rèn)識(shí)它,進(jìn)而成為nt網(wǎng)域成員;因此samba是使用smbd守護(hù)進(jìn)程透過(guò)tcp/ip聯(lián)系unix主機(jī),而使用nmbd守護(hù)進(jìn)程透過(guò)netbios對(duì)nt/2000網(wǎng)域做聯(lián)系,也就是說(shuō)samba使用兩種機(jī)制達(dá)成資源共享的目的。
若沒(méi)有安裝samba,在ubuntu中可以用sudo apt-get install來(lái)安裝samba和smbfs(samba的文件系統(tǒng))。smb是samba的主要啟動(dòng)服務(wù)器,讓其它機(jī)器能知道此機(jī)器共享了什么;如果不打開(kāi)nmb服務(wù)器的話,只能通過(guò)ip來(lái)訪問(wèn),比如在windows的ie瀏覽器上鍵入下面的一條來(lái)訪問(wèn)://192.168.1.5/共享目錄。samba服務(wù)的啟動(dòng)、重啟和停止用"sudo /etc/samba/smb"后跟start、restart或stop。
1、主要的samba工具(服務(wù)器端和客戶端):
smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtree
smbclient smbcquotas smbpasswd smbspool smbtar smbumount testparm
testprns swat smbd nmbd
smbclient:利用這個(gè)工具可連接其它 unix like 的 samba server,或是連接 windows 機(jī)器,以取得檔案分享服務(wù)。
testparm :這個(gè)工具可讓您測(cè)試smb.conf檔定義是否正確。
smbstatus:這個(gè)工具可用來(lái)顯示目前client端連接到samba server的聯(lián)機(jī)狀況。
nmblookup:這個(gè)工具可使用nt/2000網(wǎng)域內(nèi)的主機(jī)名稱查詢出對(duì)應(yīng)的ip地址。
smbpasswd:這個(gè)工具可用來(lái)建立、變更登入 samba server的加密密碼。
swat:這個(gè)工具讓您可使用web接口(如:ie、netscape)對(duì)samba server做組態(tài)設(shè)定。
2、samba配置文件: 為/etc/samba/smb.conf,ubuntu下的默認(rèn)內(nèi)容為:
# debian gnu/linux下的samba套件配置文件例子 # # 這是主要的samba配置文件。為了理解這里列出的選項(xiàng),你應(yīng)該閱讀smb.conf(5)手冊(cè)頁(yè)。 # samba有一大堆的配置選項(xiàng),有很多并沒(méi)有在這里的例子中列出 # 任何以;號(hào)或#號(hào)開(kāi)始的行都是注釋,會(huì)被忽略。在這里的例子中,我們將使用#作為釋放, # 使用;的行表示配置文件的選項(xiàng),這個(gè)選項(xiàng)你可能希望激活它 # 注意:每當(dāng)你修改這個(gè)文件時(shí),你應(yīng)該運(yùn)行命令"testparm"進(jìn)行檢查,以確保你沒(méi)有犯基本 # 的語(yǔ)法錯(cuò)誤。 # #======================= 全局設(shè)置 ======================= [global] ####### 瀏覽/標(biāo)識(shí) ####### # samba服務(wù)器要加入的windows工作組名(即nt域名) workgroup = workgroup # 在nt域中顯示的samba服務(wù)器名,%h%u4e3a本機(jī)的主機(jī)名 server string = %h server (samba, ubuntu) # windows因特網(wǎng)名字服務(wù)支持部分: # wins支持 – 通知samba的nmbd組件激活wins服務(wù)器 ; wins support = no # wins服務(wù)器 – 通知samba的nmbd組件,讓它作為一個(gè)wins客戶端 # 注意: samba既可以是一個(gè)wins服務(wù)器,也可以一個(gè)wins客戶端,但只能為其中之一 ; wins server = w.x.y.z # 這將禁止nmbd通過(guò)dns搜索netbios名稱 dns proxy = no # 什么樣的名字服務(wù),以及我們應(yīng)該用什么樣的順序來(lái)解析主機(jī)名:下面是對(duì)ip地址 ; name resolve order = lmhosts host wins bcast ####### 網(wǎng)絡(luò) ####### # 要監(jiān)聽(tīng)的特定網(wǎng)卡/網(wǎng)絡(luò)集:這可以是網(wǎng)卡名或網(wǎng)卡的ip地址/掩碼;通常首選網(wǎng)卡名 ; interfaces = 127.0.0.0/8 eth0 # 只綁定到命名的接口或網(wǎng)絡(luò);你必須通過(guò)使用上面的\\\’interfaces\\\’選項(xiàng)來(lái)使用它。 # 如果你的samba機(jī)器沒(méi)有受防火墻的保護(hù),或者它自己就是一個(gè)防火墻,則建議你激活本選項(xiàng)。 # 然而,本選項(xiàng)不能正確地處理動(dòng)態(tài)的或非廣播的接口 ; bind interfaces only = true #### 調(diào)試/記帳 #### # 設(shè)置samba為每個(gè)連接的機(jī)器使用獨(dú)立的日志文件,%m%u8868示客戶機(jī)的netbios名 log file = /var/log/samba/log.%m # 設(shè)置samba server日志文件的最大容量,單位為kb,0代表不限制 max log size = 1000 # 是否只通過(guò)syslog來(lái)記錄日志消息 ; syslog only = no # 我們想讓samba記錄最小數(shù)量的日志消息到syslog中。所有消息應(yīng)該記錄到/var/log/samba/log.{smbd,nmbd}中。 # 如果你想通過(guò)syslog來(lái)記錄日志,你應(yīng)該把下面的參數(shù)設(shè)置得大一點(diǎn) syslog = 0 # 當(dāng)samba崩潰時(shí)做一些可感覺(jué)到的動(dòng)作:發(fā)送一個(gè)回溯信息給管理員 panic action = /usr/share/samba/panic-action %d ####### 認(rèn)證 ####### # 設(shè)置samba服務(wù)器的安全性等級(jí)。user等級(jí)表示每個(gè)訪問(wèn)服務(wù)器的用戶需要在服務(wù)器上 # 有一個(gè)unix賬號(hào),這總是一個(gè)好主意。其他細(xì)節(jié)可參考 # /usr/share/doc/samba-doc/htmldocs/samba3-howto/servertype.html ; security = user # 表示是否指定用戶密碼以加密的形態(tài)發(fā)送到samba服務(wù)器 encrypt passwords = true # 如果你正使用加密的密碼,samba將需要知道你使用的密碼數(shù)據(jù)庫(kù)類型 passdb backend = tdbsam obey pam restrictions = yes # 此項(xiàng)默認(rèn)不使用,它是用來(lái)設(shè)置guest帳號(hào)名 ; guest account = nobody # 指定登錄無(wú)效的用戶,即不能用這些用戶來(lái)登錄 invalid users = root # 用來(lái)控制當(dāng)passdb中的加密smb密碼被更改時(shí),是否進(jìn)行同步 unix password sync = yes # 指定設(shè)置unix帳號(hào)密碼的程序,其中?68示用戶名稱 passwd program = /usr/bin/passwd passwd chat = *enter/snew/s*/s* %n/n *retype/snew/s*/s* %n/n *password/supdated/ssuccessfully* . # 表示可以使用pam來(lái)修改smb客戶端的密碼,而不使用“passwd program”選項(xiàng)中指定的程序 pam password change = yes # 控制成功的認(rèn)證怎樣映射到匿名連接 map to guest = bad user ########## 域 ########### # 表示本機(jī)器能對(duì)用戶進(jìn)行登錄認(rèn)證。主控制器pdc和從控制器bdc都必須激活本選項(xiàng)。如果你是bdc,則你必須把 # \\\’domain master\\\’設(shè)置為no ; domain logons = yes # # 下面的設(shè)置只有在\\\’domain logons\\\’被設(shè)設(shè)置時(shí)才會(huì)起作用: # 指定用戶配置文件所在的目錄(從客戶端的角度看),接著需要在samba服務(wù)器上 # 有一個(gè)[profiles]共享(參看下面) ; logon path = //%n/profiles/%u # 配置文件存放的路徑:在用戶的主目錄中 ; logon path = //%n/%u/profile # 下面的設(shè)置只有在\\\’