小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Samba使用大全

 fq954 2007-01-22
Samba使用大全(絕對(duì)經(jīng)典)

Samba協(xié)議基礎(chǔ)
在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é)議被Microsoft用于它們Lan Manager和Windows NT服務(wù)器系統(tǒng)中,實(shí)現(xiàn)不同計(jì)算機(jī)之間共享打印機(jī)、串行口和通訊抽象(如命名管道、郵件插槽等)。
隨著Internet的流行,Microsoft希望將這個(gè)協(xié)議擴(kuò)展到Internet上去,成為Inter net上計(jì)算機(jī)之間相互共享數(shù)據(jù)的一種標(biāo)準(zhǔn)。因此它將原有的幾乎沒有多少技術(shù)文檔的SMB協(xié)議進(jìn)行整理,重新命名為 CIFS(Common Internet File System),并打算將它與NetBIOS相脫離,試圖使它成為Internet上的一個(gè)標(biāo)準(zhǔn)協(xié)議。
因此,為了讓W(xué)indows和Unix計(jì)算機(jī)相集成,最好的辦法即是在Unix計(jì)算機(jī)中安裝支持SMB/CIFS協(xié)議的軟件,這樣Windows客戶就不需要更改設(shè)置,就能如同使用Windows NT服務(wù)器一樣,使用Unix計(jì)算機(jī)上的資源了。Samba是用來實(shí)現(xiàn)SMB的一種軟件,它的工作原理是,讓NETBIOS(Windows95網(wǎng)絡(luò)鄰居的通訊協(xié)議)和SMB(Server Message Block)這兩個(gè)協(xié)議運(yùn)行于TCP/IP通信協(xié)議之上,并且使用Windows的NETBEUI協(xié)議讓Unix計(jì)算機(jī)可以在網(wǎng)絡(luò)鄰居上被Windows計(jì)算機(jī)看到。它的功能有:
1.共享Linux磁盤給Win95/NT
2.共享Win95/NT磁盤給Linux機(jī)器
3.共享Linux打印機(jī)給win95/NT
4.共享win95/NT打印機(jī)給Linux機(jī)器。
同時(shí)它的文件服務(wù)功能比NT系統(tǒng)還高,而且在Windows2000之前就提供了用戶磁盤空間限制的功能。
Samba的配置
在我寫這篇文章的時(shí)候,Samba的版本已經(jīng)到了2.2.2了,需要的可以通過ftp://samba.org/pub/samba/Binary_Pa...011013.i386.rpm得到最新的rpm安裝包。然后執(zhí)行rpm -Uvh samba-2.2.2-20011013.i386.rpm來安裝或者升級(jí)它。安裝完后,可以看見/etc/samba這么一個(gè)目錄,里面存放和Samba相關(guān)的一些文件,最主要的是smb.conf,現(xiàn)在根據(jù)配置文件講講它的配置選項(xiàng):
全局設(shè)置:
workgroup = MYGROUP
定義該Samba服務(wù)器所在的工作組或者域(如果下面的security=domain的話)。
server string = MY Samba Server
設(shè)定機(jī)器的描述,當(dāng)我們通過網(wǎng)絡(luò)鄰居訪問的時(shí)候可以在備注里面看見這個(gè)內(nèi)容,而且還可以使用samba設(shè)定的變量。這里說一下samba定義的變量:
%S = 當(dāng)前服務(wù)名(如果有的話)
%P = 當(dāng)前服務(wù)的根目錄(如果有的話)
%u = 當(dāng)前服務(wù)的用戶名(如果有的話)
%g = 當(dāng)前用戶說在的主工作組
%U = 當(dāng)前對(duì)話的用戶名
%G = 當(dāng)前對(duì)話的用戶的主工作組
%H = 當(dāng)前服務(wù)的用戶的Home目錄
%v = Samba服務(wù)的版本號(hào)。
%h = 運(yùn)行Samba服務(wù)機(jī)器的主機(jī)名
%m = 客戶機(jī)的NETBIOS名稱
%L = 服務(wù)器的NETBIOS名稱
%M = 客戶機(jī)的主機(jī)名
%N = NIS服務(wù)器名
%p = NIS服務(wù)的Home目錄
%R = 說采用的協(xié)議等級(jí)(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 當(dāng)前服務(wù)進(jìn)程的ID
%a = 客戶機(jī)的結(jié)構(gòu)(只能識(shí)別幾項(xiàng):Samba,WfWg,WinNT,Win95)
%I = 客戶機(jī)的IP
%T = 當(dāng)前日期和時(shí)間
hosts allow = 網(wǎng)絡(luò)或者主機(jī)
這里可以設(shè)置允許訪問的網(wǎng)絡(luò)和主機(jī)IP,比如允許192.168.1.0/24和192.168.2.1/32訪問,就用host allow = 192.168.1. 192.168.2.1 127.0.0.1(網(wǎng)絡(luò)注意后面加”.”號(hào),各個(gè)項(xiàng)目間用空格隔開,記得把本機(jī)也加進(jìn)去)
printcap name = printcapFile
到printcapFile(一般是/etc/printcap)這個(gè)文件中取得打印機(jī)的描述信息
load printers = yes|no
設(shè)定是否自動(dòng)共享打印機(jī)而不用設(shè)置下面的[printer]一節(jié)的相關(guān)東西
printing = PrintSystemType
定義打印系統(tǒng)的類型,缺省是lprng,可選項(xiàng)有:bsd, sysv, plp, lprng, aix, hpux, qnx。
guest account = pcguest
定義游客賬號(hào),而且需要把這個(gè)賬號(hào)加入/etc/passwd,不然它就用缺省的nobody
log file = LogFileName
定義記錄文件的位置LogFileName(一般是用/var/log/samba/%m.log)
max log size = size
定義記錄文件的大小size(單位是KB,如果是0的話就不限大?。?
security = security_level
定義Samba的安全級(jí)別,按從低到高分為四級(jí):share,user,server,domain。它們對(duì)應(yīng)的驗(yàn)證方式如下:
share:沒有安全性的級(jí)別,任何用戶都可以不要用戶名和口令訪問服務(wù)器上的資源。
user:samba的默認(rèn)配置,要求用戶在訪問共享資源之前資源必須先提供用戶名和密碼進(jìn)行驗(yàn)證。
server:和user安全級(jí)別類似,但用戶名和密碼是遞交到另外一個(gè)服務(wù)器去驗(yàn)證,比如遞交給一臺(tái)NT服務(wù)器。如果遞交失敗,就退到user安全級(jí)。
domain:這個(gè)安全級(jí)別要求網(wǎng)絡(luò)上存在一臺(tái)Windows的主域控制器,samba把用戶名和密碼遞交給它去驗(yàn)證。
后面三種安全級(jí)都要求用戶在本Linux機(jī)器上也要系統(tǒng)帳戶。否則是不能訪問的。
password server = <NT-Server-Name>
當(dāng)前面的security設(shè)定為server或者domain的時(shí)候才有必要設(shè)定它。
password level = n
這是設(shè)定針對(duì)一些SMB客戶像OS/2之類而設(shè)的,這樣的系統(tǒng)在發(fā)送用戶密碼的時(shí)候,會(huì)把密碼轉(zhuǎn)換成大寫再發(fā)送,這樣就和samba的密碼不一致,這個(gè)參數(shù)可以設(shè)定密碼里允許的大寫字母?jìng)€(gè)數(shù),這樣samba就根據(jù)這個(gè)數(shù)目對(duì)接收到的密碼進(jìn)行大小寫重組,以重組過的密碼嘗試驗(yàn)證密碼的正確性。n越大,組合的次數(shù)就越多,驗(yàn)證時(shí)間就越長(zhǎng),安全性也會(huì)因此變得越低。例如n=2,用戶的密碼是abcd,但發(fā)送出去其實(shí)是ABCD,samba就會(huì)把這個(gè)ABCD進(jìn)行大小寫重組,組合后的結(jié)果可以是: Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。
所以如果沒有必要,就把n定為是零。這樣的話samba只嘗試兩次,一個(gè)是接收到的密碼,另一個(gè)嘗試的是這個(gè)密碼都是小寫的情況。
username level = n
這個(gè)是對(duì)于用戶名的情況,說明和上面一項(xiàng)類似。
encrypt passwords = yes|no
設(shè)置是否對(duì)密碼進(jìn)行加密,samba本身有一個(gè)密碼文件/etc/samba/smbpasswd,如果不對(duì)密碼進(jìn)行加密則在驗(yàn)證會(huì)話期間客戶機(jī)和服務(wù)器之間傳遞的是明文密碼,samba直接把這個(gè)密碼和Linux里的/etc/samba/smbpasswd密碼文件進(jìn)行驗(yàn)證。但是在Windows 95 OS/R2以后的版本和Windows NT SP3以后的版本缺省都不傳送明文密碼,要讓這些系統(tǒng)能傳送明文密碼必須在其注冊(cè)表里更改,比較麻煩,好的方法就是把這里的這個(gè)開關(guān)設(shè)置為yes。
smb passwd file = smbPasswordFile
設(shè)置存放samba用戶密碼的文件smbPasswordFile(一般是/etc/samba/smbpasswd)。
ssl CA certFile = sslFile
當(dāng)samba編譯的時(shí)候支持SSL的時(shí)候,需要指定SSL的證書的位置(一般在/usr/share/ssl/certs/ca-bundle.crt)。
unix password sync = yes|no
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n
*ReType*new*UNIX*password* %n
*passwd:*all*authentication*tokens*updated*successfully*
這三項(xiàng)設(shè)置能否從windows的應(yīng)用程序修改unix系統(tǒng)的用戶密碼
username map = UsermapFile
指定用戶映射文件(一般是/etc/samba/smbusers),當(dāng)我們?cè)谶@個(gè)文件里面指定一行root = administrator admin的時(shí)候,客戶機(jī)的用戶是admin或者administrator連接時(shí)會(huì)被當(dāng)作用戶root看待。
include = MachineConfFile
指定對(duì)不同機(jī)器的連接采用不同的配置文件MachineConfFile(一般為了靈活管理使用/etc/samba/smb.conf.%m,由于采用了samba的變量,把配置文件和客戶機(jī)的NETBIOS名稱關(guān)聯(lián)起來,能很容易地控制這些客戶機(jī)的權(quán)限和設(shè)置)。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
這個(gè)是網(wǎng)絡(luò)socket方面的一些參數(shù),能實(shí)現(xiàn)最好的文件傳輸性能。相關(guān)的選項(xiàng)還有SO_KEEPALIVE、 SO_REUSEADDR、SO_BROADCAST、IPTOS_LOWDELAY、IPTOS_THROUGHPUT、SO_SNDLOWAT(*)、SO_RCVLOWAT(*),帶*號(hào)的要指定數(shù)值。一般如果在本地網(wǎng)絡(luò),就只用IPTOS_LOWDELAY,如果是有一個(gè)本地網(wǎng)絡(luò)的,就用IPTOS_LOWDELAY TCP_NODELAY,如果是廣域網(wǎng)絡(luò),就試試IPTOS_THROUGHPUT。
interfaces = interface1 interface2
如果有多個(gè)網(wǎng)絡(luò)接口,就必須在這里指定。如interface = 192.168.12.2/24 192.168.13.2/24
remote browse sync = host(subnet)
這里指定瀏覽列表同步信息從哪里取得, 如果用host(比如192.168.3.25)或者整個(gè)子網(wǎng)(192.168.5.255)。
★這里說明一下什么是瀏覽(Browse):
在SMB協(xié)議中,計(jì)算機(jī)為了訪問網(wǎng)絡(luò)資源,就需要了解網(wǎng)絡(luò)上存在的資源列表(例如在Windows下使用網(wǎng)絡(luò)鄰居查看可以訪問的計(jì)算機(jī)),這個(gè)機(jī)制就被稱為瀏覽(Browse)。雖然SMB協(xié)議中經(jīng)常使用廣播的方式,但如果每次都使用廣播的方式了解當(dāng)前的網(wǎng)絡(luò)資源(包括提供服務(wù)的計(jì)算機(jī)和各個(gè)計(jì)算機(jī)上的服務(wù)資源),就需要消耗大量的網(wǎng)絡(luò)資源和浪費(fèi)較長(zhǎng)的查找時(shí)間,因此最好在網(wǎng)絡(luò)中維護(hù)一個(gè)網(wǎng)絡(luò)資源的列表,以方便查找網(wǎng)絡(luò)資源。只有必要的時(shí)候,才重新查找資源,例如使用Windows下的查找計(jì)算機(jī)功能。
但沒有必要每個(gè)計(jì)算機(jī)都維護(hù)整個(gè)資源列表,維護(hù)網(wǎng)絡(luò)中當(dāng)前資源列表的任務(wù)由網(wǎng)絡(luò)上的幾個(gè)特殊計(jì)算機(jī)完成的,這些計(jì)算機(jī)被稱為Browser,這些Browser通過記錄廣播數(shù)據(jù)或查詢名字服務(wù)器來記錄網(wǎng)絡(luò)上的各種資源。
Browser并不是事先指定的計(jì)算機(jī),而是在普通計(jì)算機(jī)之間通過自動(dòng)進(jìn)行的推舉產(chǎn)生的。不同的計(jì)算機(jī)可以按照其提供服務(wù)的能力,設(shè)置在推舉時(shí)具備的不同權(quán)重。為了保證一個(gè)Browser停機(jī)時(shí)網(wǎng)絡(luò)瀏覽仍然正常,網(wǎng)絡(luò)中常常存在多個(gè)Browser,一個(gè)為主Browser(Master Browser),其他的為備份Browser。★
remote announce = host(subnet)
指定這些機(jī)器向網(wǎng)絡(luò)宣告自己,而不是有Browser得到。
local master = yes|no
這個(gè)參數(shù)指定nmbd是否試圖成為本地主瀏覽器,默認(rèn)值是yes,如果設(shè)為no則samba服務(wù)器就永遠(yuǎn)都不會(huì)成為本地主瀏覽器。但即使設(shè)置了yes,也不等于samba服務(wù)器就會(huì)成為本地主瀏覽器。只是參與本地主瀏覽器選擇。
os level = n
n的值是個(gè)整數(shù),決定了nmbd是否有機(jī)會(huì)成為本地廣播區(qū)域的工作組里的本地主瀏覽器,默認(rèn)值是零,零則意味著nmbd失去瀏覽選擇。如果要nmbd更有機(jī)會(huì)成為本地主瀏覽器的話,可以設(shè)為65。
domain master = yes|no
這個(gè)參數(shù)讓nmbd成為一個(gè)域?yàn)g覽器,取得各本地主瀏覽器的瀏覽列表,并將整個(gè)域的瀏覽列表遞交給各本地主瀏覽器。
preferred master = yes|no
這個(gè)參數(shù)指定nmbd是否是工作組里的首要的主瀏覽器,如果指定為yes,nmbd在啟動(dòng)的時(shí)候就強(qiáng)制一個(gè)瀏覽選擇。
★Domain master和local master
工作組和域這兩個(gè)概念在進(jìn)行瀏覽時(shí)具備同樣的用處,都是用于區(qū)分并維護(hù)同一組瀏覽數(shù)據(jù)的多個(gè)計(jì)算機(jī)。事實(shí)上他們的不同在于認(rèn)證方式上,工作組中每臺(tái)計(jì)算機(jī)都基本上是獨(dú)立的,獨(dú)立對(duì)客戶訪問進(jìn)行認(rèn)證,而域中將存在一個(gè)(或幾個(gè))域控制器,保存對(duì)整個(gè)域中都有效的認(rèn)證信息,包括用戶的認(rèn)證信息以及域內(nèi)成員計(jì)算機(jī)的認(rèn)證信息。瀏覽數(shù)據(jù)的時(shí)候,并不需要認(rèn)證信息,Microsoft將工作組擴(kuò)展為域,只是為了形成一種分級(jí)的目錄結(jié)構(gòu),將原有的瀏覽和目錄服務(wù)相結(jié)合,以擴(kuò)大Mircrosoft網(wǎng)絡(luò)服務(wù)范圍的一種策略。
工作組和域都可以跨越多個(gè)子網(wǎng),因此網(wǎng)絡(luò)中就存在兩種Browser,一種為Domain Master Browser ,用于維護(hù)整個(gè)工作組或域內(nèi)的瀏覽數(shù)據(jù),另一種為L(zhǎng)ocal Master Browser,用于維護(hù)本子網(wǎng)內(nèi)的瀏覽數(shù)據(jù),它和Domain Master Browser通信以獲得所有的可瀏覽數(shù)據(jù)。劃分這兩種Browser 主要是由于瀏覽數(shù)據(jù)依賴于本地網(wǎng)廣播來獲得資源列表,不同子網(wǎng)之間只能通過瀏覽器之間的交流能力,才能互相交換資源列表。
但是,為了瀏覽多個(gè)子網(wǎng)的資源,必須使用NBNS名字服務(wù)器的解析方式,沒有NBNS的幫助,計(jì)算機(jī)將不能獲得子網(wǎng)外計(jì)算機(jī)的NetBIOS名字。Local Master Browser也需要查詢NetBIOS名字服務(wù)器以獲得Domain Master Browser的名字,以相互交換網(wǎng)絡(luò)資源信息。
由于域控制器在域內(nèi)的特殊性,因此域控制器傾向于被用做Browser,主域控制器應(yīng)該被用作Domain Master Browser,他們?cè)谕婆e時(shí)設(shè)置的權(quán)重較大。★
preserve case = yes|no
short preserve case = yes|no
指定拷貝DOS文件的時(shí)候保持大小寫,缺省是no
default case = lower|upper
所有的DOS文件的缺省是大寫還是小寫
case sensitive = yes|no
大小寫敏感,一般是no,不然會(huì)出現(xiàn)一些問題。
共享設(shè)置:
★共享資源:
每個(gè)SMB服務(wù)器能對(duì)外提供文件或打印服務(wù),每個(gè)共享資源需要被給予一個(gè)共享名,這個(gè)名字將顯示在這個(gè)服務(wù)器的資源列表中。如果一個(gè)資源的名字的最后一個(gè)字母為$,則這個(gè)共享名就為隱藏共享,不能直接表現(xiàn)在瀏覽列表中,而只能通過直接訪問這個(gè)名字來進(jìn)行訪問。在SMB協(xié)議中,為了獲得服務(wù)器提供的資源列表,必須使用一個(gè)隱藏的資源名字IPC$來訪問服務(wù)器,否則客戶無法獲得系統(tǒng)資源的列表。★
共享設(shè)置中有個(gè)比較奇怪的段:
[homes],在smb.conf文件中一般沒有對(duì)這個(gè)目錄的設(shè)定特定內(nèi)容比如路徑等。當(dāng)客戶機(jī)發(fā)出服務(wù)請(qǐng)求時(shí),就在smb.conf文件的其它部分查找友特定內(nèi)容的服務(wù)。如果沒有發(fā)現(xiàn)這些服務(wù),并且提供了homes段時(shí),那么就搜索密碼文件得到用戶的Home目錄。通過Homes段,Samba可以得到用戶的Home目錄并使之共享。下面是這個(gè)段的最基本的幾個(gè)設(shè)置。
[homes]
comment=Home Directory
browseable=no
writable=yes
比較正常的共享的配置如下例:
[MyShare]
comment = grind’s file
path = /home/grind
allow hosts = host(subnet)
deny hosts = host(subnet)
writable = yes|no
user = user(@group)
valid users = user(@group)
invalid users = user(@group)
read list = user(@group)
write list = user(@group)
admin list = user(@group)
public = yes|no
hide dot files = yes|no
create mode = 0755
directory mode = 0755
sync always = yes|no
short preserve case = yes|no
preserve case = yes|no
case sensitive = yes|no
mangle case = yes|no
default case = upper|lower
force user = grind
wide links = yes|no
max connections = 100
delete readonly = yes|no
其中[]里面的MyShare指定共享名,一般就是網(wǎng)絡(luò)鄰居里面可以看見的文件夾的名字。
comment指的是對(duì)改共享的備注。
path指定共享的路徑,其中可以配合samba變量使用。比如你可以指定path=/data/%m,這樣如果一臺(tái)機(jī)器的NETBIOS名字是grind,它訪問MyShare這個(gè)共享的時(shí)候就是進(jìn)入/data/grind目錄,而對(duì)于NETBIOS名是glass的機(jī)器,則進(jìn)入/data/glass目錄。
allow hosts和deny hosts和前面的全局設(shè)置的方法一樣這里不再提及。
writeable指定了這個(gè)目錄缺省是否可寫,也可以用readonly = no來設(shè)置可寫。
user設(shè)置所有可能使用該共享資源的用戶,也可以用@group代表group這個(gè)組的所有成員,不同的項(xiàng)目之間用空格或者逗號(hào)隔開。
valid users指定能夠使用該共享資源的用戶和組。
invalid users指定不能夠使用該共享資源的用戶和組。
read list 指定只能讀取該共享資源的用戶和組。
write list指定能讀取和寫該共享資源的用戶和組。
admin list指定能管理該共享資源(包括讀寫和權(quán)限賦予等)的用戶和組。
public指明該共享資源是否能給游客賬號(hào)訪問,這個(gè)開關(guān)有時(shí)候也叫g(shù)uest ok,所以有的配置文件中出現(xiàn)guest ok = yes其實(shí)和public = yes是一樣的。
hide dot files指明是不是像unix那樣隱藏以“.”號(hào)開頭的文件。
create mode指明新建立的文件的屬性,一般是0755。
directory mode指明新建立的目錄的屬性,一般是0755。
sync always指明對(duì)該共享資源進(jìn)行寫操作后是否進(jìn)行同步操作。
short preserve case指明不管文件名大小寫。
preserve case指明保持大小寫。
case sensitive指明是否對(duì)大小寫敏感,一般選no,不然可能引起錯(cuò)誤。
mangle case指明混合大小寫。
default case指明缺省的文件名是全部大寫還是小寫。
force user強(qiáng)制把建立文件的屬主是誰。如果我有一個(gè)目錄,讓guest可以寫,那么guest就可以刪除,如果我用force user= grind強(qiáng)制建立文件的屬主是grind,同時(shí)限制create mask = 0755,這樣guest就不能刪除了。
wide links指明是否允許共享外符號(hào)連接,比如共享資源里面有個(gè)連接指向非共享資源里面的文件或者目錄,如果設(shè)置wide links = no將使該連接不可用。
max connections = n設(shè)定同時(shí)連接數(shù)是n。
delete readonly指明能否刪除共享資源里面已經(jīng)被定義為只讀的文件。
有兩類特殊的共享,分別是光驅(qū)和打印機(jī)
光驅(qū)的共享設(shè)置:
[cdrom]
comment = grind’s cdrom
path = /mnt/cdrom
public = yes
browseable = yes
root preexec = /bin/mount -t iso9660 /dev/cd0 /mnt/cdrom
root postexec = /bin/umount /mnt/cdrom
這里root preexec指明了連接時(shí)用root的身份運(yùn)行mount命令,而root postexec則指明了斷開時(shí)用root身份運(yùn)行umount,有效實(shí)現(xiàn)了對(duì)光驅(qū)的共享。
打印機(jī)共享的設(shè)置:
[printers]
path = /var/spool/samba
writeable = no
guest ok = yes
printable = yes
printer driver = HP LaserJet 5L

這里printable指明該打印機(jī)可以打印, guest ok說明游客也能打印,path指明打印的文件隊(duì)列暫時(shí)放到/var/spool/samba目錄下。printer driver的作用是指明該打印機(jī)的類型,這樣我們?cè)诎惭b網(wǎng)絡(luò)打印機(jī)的時(shí)候可以直接自動(dòng)安裝驅(qū)動(dòng)而不必選擇。
添加用戶:
samba添加用戶比較方便,一般是用smbadduser,用法是smbadduser unixid:netid,舉個(gè)例子:如果你的本機(jī)有個(gè)叫g(shù)rind的用戶,你用smbadduser grind:grind,這樣從網(wǎng)上鄰居訪問的時(shí)候用戶名就用grind,而如果你用了smbadduser grind:glass的話,網(wǎng)上鄰居訪問的時(shí)候提供的用戶名就是glass而不是grind了。
關(guān)于samba服務(wù)端的設(shè)置基本就是這些,我想一般應(yīng)用中所要使用的上面幾乎都覆蓋到了,所以有些不重要的就省略了,如果要更加詳細(xì)的信息可以用man smb.conf參考。<
Samba使用大全(二)-Samba客戶端
使用Samba網(wǎng)絡(luò)打印:
使用unix網(wǎng)絡(luò)打印以前的文章比較少涉及,最近試驗(yàn)了一下,效果還是不錯(cuò)的,現(xiàn)在講講基本的實(shí)現(xiàn)方法:
比如你要建立一臺(tái)網(wǎng)絡(luò)打印機(jī)grind,而打印機(jī)對(duì)應(yīng)網(wǎng)絡(luò)上面的//glass/HPLaserj,所有需要配置的文件有下面幾個(gè):
1./etc/printcap,內(nèi)容一般為:
grind:
:sh: #禁止提示的header
:ml=0: #打印的文件的長(zhǎng)度下限,
:mx=0: #最大的打印文件大小,0為不限制
:sd=/var/spool/lpd/grind: #打印機(jī)的spool目錄
:lp=|/usr/bin/smbprint: #打印輸出需要的設(shè)備名或者管道名
:lpd_bounce=true: #強(qiáng)制lpd守護(hù)進(jìn)程過濾打印文件
:if=/usr/share/printconf/mf_wrapper: #過濾命令文件
2.smbprint這個(gè)一般在安裝完smb相關(guān)的rpm包以后就有了,主要內(nèi)容是:
eval acct_file=$$#
spool_dir=`dirname $acct_file`
config_file=$spool_dir/.config
eval `cat $config_file`
share=`echo $share | sed "s/[]///g"`
if [ "$user" != "" ]; then
usercmd="-U"
else
usercmd=""
fi
if [ "$workgroup" != "" ]; then
workgroupcmd="-W"
else
workgroupcmd=""
fi
if [ "$translate" = "yes" ]; then
command="translate ; print -"
else
command="print -"
fi
cat | /usr/bin/smbclient "$share" "$password" -E ${hostip:+-I}
$hostip -N -P $usercmd "$user" $workgroupcmd "$workgroup"
-c "$command" 2>/dev/null
3.mf_wrapper是一個(gè)magic filter文件,是相關(guān)的一些過濾規(guī)則。內(nèi)容是:
MF_RULE_DIR=‘/usr/share/printconf/mf_rules‘
MF_RULES=$MF_RULE_DIR/mf[[:digit:]][[:digit:]]-*
TMP_FILE=`mktemp /tmp/printconf.XXXXXX`‘ ‘exit 1
cat ./mf.cfg $MF_RULES | m4 > $TMP_FILE
if [ -n "$DEBUG" ]; then
case "$DEBUG" in
2)
DEBUGSTRING="--debug --debug"
;;
3)
DEBUGSTRING="--debug --debug --debug"
;; 4)
DEBUGSTRING="--debug --debug --debug --debug"
;;
5)
DEBUGSTRING="--debug --debug --debug --debug --debug"
;;
*)
DEBUGSTRING="--debug"
;;
esac
else
DEBUGSTRING=""
fi
# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* < /dev/stdin
RETVAL=$?
if [ -f $TMP_FILE ]; then
rm -f $TMP_FILE;
fi
;;
esac
else
DEBUGSTRING=""
fi
# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* < /dev/stdin
RETVAL=$?
if [ -f $TMP_FILE ]; then
rm -f $TMP_FILE;
fi
if [[ $RETVAL -eq 0 ]]; then
TERMINATION=`grep ‘^[[:space:]]*#[[:space:]]*TERMINATION=‘ ./mf.cfg | se
d ‘s/^[[:space:]]*#[[:space:]]*TERMINATION=//;‘`
if [ -n $TERMINATION ]; then
echo -n -e $TERMINATION;
fi
fi
同時(shí)需要在/var/spool/lpd/grind下面有這么兩個(gè)文件:mf.cfg和script.cfg。
mf.cfg的內(nèi)容是:
define(TEXTfilter, text ""
14 )dnl
define(PSfilter, `filter /usr/share/printconf/util/mf_postscript_wrapper --mfomatic -d lj5gray-75168.foo‘)dnl
script.cfg的內(nèi)容是:
share="http://glass/HPLaserj" #glass機(jī)器上面共享的打印機(jī)
hostip="192.168.1.123" #glass這臺(tái)機(jī)器的IP
user=""
password=""
workgroup=""
translate="no"
完成這個(gè)工作后,啟動(dòng)lpd進(jìn)程,然后就能用lpr等命令使用網(wǎng)絡(luò)打印機(jī)打印了。
使用網(wǎng)絡(luò)共享文件資源:
列出網(wǎng)絡(luò)資源:
一般可以用smbclient來列出某臺(tái)機(jī)器相關(guān)的資源,smbclient的用法參考http://www./training...owtod.jsp?i=241
。這里講比較有用的使用方法:
smbclient -L IP或者NETBIOS名稱,作用是顯示某臺(tái)提供samba服務(wù)的服務(wù)器上的共享資源。命令執(zhí)行效果如下:
smbclient -L glass
Sharename Type Comment
--------- ---- -------
IPC$ IPC 遠(yuǎn)程 IPC
HPLaserJ Printer HP LaserJet 6P
ADMIN$ Disk 遠(yuǎn)程管理
littlep Disk
C$ Disk 默認(rèn)共享
Server Comment
--------- -------
GLASS
GRIND
Workgroup Master
--------- -------
BLUESUN GLASS
WORKGROUP HEIHEI
第一段列舉了該機(jī)器(glass)上面的共享資源,第二段列舉了glass所在的工作組里面所有提供samba服務(wù)的機(jī)器,第三列舉了其他工作組提供browse服務(wù)的Master機(jī)器(關(guān)于Master和Browse服務(wù)可以參考我的前面一篇samba使用大全-samba服務(wù)器)。
使用網(wǎng)絡(luò)資源:
smbclient //IP或者NETBIOS名稱/共享資源名 [-U 用戶名]
命令執(zhí)行效果如下:
smbclient //glass/littlep
added interface ip=192.168.1.123 bcast=192.168.1.255 nmask=255.255.255.0
Got a positive name query response from 192.168.1.123 (192.168.1.123)
Password:
Domain=[BLUESUN] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: >
接下來的操作和ftp的時(shí)候命令一樣,用get下載文件而用put上傳文件,命令可以用help查看。
還有一種方法是用文件系統(tǒng)的方式(這種方式要確定你的內(nèi)核支持smbfs,如果沒有支持的話,編譯內(nèi)核的時(shí)候必須選中File systems--->Network File Systems---> SMB file system support (to mount Windows shares etc.) ):
smbmount //IP或者NETBIOS名稱/共享資源名 /本地掛接點(diǎn) [-o option]
常用的的option有username=<用戶名>,password=<密碼>,guest(指定為用guest訪問,不用提供密碼,前面的即使用username=guest參數(shù)的話也會(huì)要求輸入密碼),ro(有時(shí)候?yàn)榱讼到y(tǒng)安全要指定為只讀模式),rw,同時(shí)多個(gè)option的話用逗號(hào)隔開。
或者可以用mount -t smbfs [-o option] //IP或者NETBIOS名稱/共享資源名 /本地掛接點(diǎn)來實(shí)現(xiàn)同樣的功能。
例子如下:
smbmount //glass/littlep /test -o guest或者mount -t smbfs -o guest //glass/littlep /test,然后就能通過訪問/test來使用網(wǎng)絡(luò)上的資源了。
如果不需要使用的時(shí)候,可以簡(jiǎn)單地使用smbumount /test或者umount /test來解除這個(gè)掛接。
關(guān)于samba的功能(共享Linux磁盤給Win95/NT、共享Linux打印機(jī)給win95/NT、共享win95/NT打印機(jī)給Linux機(jī)器。、共享Win95/NT磁盤給Linux機(jī)器),前面兩個(gè)屬于samba服務(wù)器的內(nèi)容而后兩個(gè)屬于samba客戶段的內(nèi)容,在我的兩篇文章中都有介紹了他們的實(shí)現(xiàn)方法,但是samba實(shí)在是一個(gè)強(qiáng)大的工具,無法十分詳細(xì)地介紹它地全部功能,而且限于筆者的知識(shí)有限,有不到之處請(qǐng)各位指出,還望各位多多交流。


Samba使用大全中有這樣一段:

force user強(qiáng)制把建立文件的屬主是誰。如果我有一個(gè)目錄,讓guest可以寫,那么guest就可以刪除,如果我用force user= grind強(qiáng)制建立文件的屬主是grind,同時(shí)限制create mask = 0755,這樣guest就不能刪除了。

如上面所述,我建立一個(gè)共享文件夾(smb.conf片斷)
...........
[MyShare]
comment = share directory
path = /home/myshare
writable = yes
public = yes
create mode = 0755
directory mode = 0755
force user = root

按照資料的意思,不論我以任何用戶登陸到這個(gè)共享文件夾,在這個(gè)文件夾里建立的文件都是屬于root用戶的,當(dāng)前用戶建立文件之后應(yīng)該就是沒有刪除的權(quán)限了。
我試驗(yàn),在win2000登陸到samba服務(wù)器,進(jìn)入myshare目錄,在里面建立好一個(gè)文本文件test.txt之后,我在samba服務(wù)器上用root登陸,進(jìn)入myshare目錄,用ls -l查看,test.txt的屬主是root,屬性是 -rwxr--r--,這樣應(yīng)該說我在win2000上就應(yīng)該不能刪除這個(gè)test.txt文件了,但是,在win2000里,卻可以刪除這個(gè)文件,不知道兄弟們有沒有注意這個(gè)問題?到底怎樣解釋?

還有一個(gè)問題,/home/myshare目錄是root用戶建立的,用命令chmod 777 /home/myshare 更改過權(quán)限,上面的權(quán)限問題是不是和這個(gè)文件夾的權(quán)限有關(guān)?
請(qǐng)大家?guī)兔纯?。謝謝!?。?

__________________
失去不一定不再有;轉(zhuǎn)身不一定最軟弱


meteorsky




有分號(hào)的是注釋

meteorsky




我發(fā)現(xiàn)force user = ...這一行的作用不是“force user強(qiáng)制把建立文件的屬主是誰。如果我有一個(gè)目錄,讓guest可以寫,那么guest就可以刪除,如果我用force user= grind強(qiáng)制建立文件的屬主是grind,同時(shí)限制create mask = 0755,這樣guest就不能刪除了”這個(gè)意思,而是任何登陸的用戶進(jìn)入這個(gè)目錄時(shí)就被當(dāng)作root,作為root當(dāng)然可以進(jìn)行任何操作,登陸身份的改變是在剛登陸之后。
我在linux系統(tǒng)中察看當(dāng)前連接到samba的用戶id時(shí)發(fā)現(xiàn):不管我用那一個(gè)用戶登陸samba服務(wù)器,只要我進(jìn)入MyShare目錄,當(dāng)前的用戶id就變?yōu)閞oot,

可是,這樣的話,我就無法實(shí)現(xiàn)限制用戶在指定目錄里只能寫,不能刪除的權(quán)限了,這樣的權(quán)限限制在windows的ntfs文件系統(tǒng)中是很容易實(shí)現(xiàn)的,

不知道在samba中如何才能實(shí)現(xiàn)這樣的限制,抑或根本就實(shí)現(xiàn)不了?
還請(qǐng)大家?guī)兔Γ。?



Samba服務(wù)器的使用


一、Samba基礎(chǔ)

1、 簡(jiǎn)介
1).SMB協(xié)議
SMB(Server Message
Block,服務(wù)信息塊)協(xié)議可以看作是局域網(wǎng)上的共享文件/打印機(jī)的一種協(xié)議,它可以為網(wǎng)絡(luò)內(nèi)部的其它Windows和Linux機(jī)器提供文件系統(tǒng)、打印服務(wù)或是其他一些信息。
SMB的工作原理是讓NetBIOS(Win95網(wǎng)絡(luò)鄰居通信協(xié)議)與SMB這兩種協(xié)議運(yùn)行在TCP/IP的通信協(xié)議上,且使用NetBIOS
nameserver讓用戶的Linux機(jī)器可以在Windows的網(wǎng)絡(luò)鄰居里被看到,所以就可以和Win95/NT主機(jī)在網(wǎng)絡(luò)上相互溝通,共享文件與服務(wù)了。
目前Microsoft正在開發(fā)一種新的文件和打印共享協(xié)議--CIFS(Common Internet Files
System,通用網(wǎng)絡(luò)文件協(xié)議),該協(xié)議支持TCP/IP和DNS等協(xié)議,能在www上支持文件和打印共享。在CIFS下服務(wù)器實(shí)際上是DNS名,由主機(jī)名和域名組成。這種變化是從NetBIOS命令結(jié)構(gòu)中分離出來的。目前CIFS還沒有得到廣泛的應(yīng)用?,F(xiàn)在在Linux和Win95/NT之間的文件共享注意還是SMB和NFS。

2).什么是Samba
Samba是用來實(shí)現(xiàn)SMB的一種軟件,由澳大利亞的Andew Tridgell開發(fā),是一種在Linux(Unix)環(huán)境下運(yùn)行的免費(fèi)軟件。
通過使用Samba,Linux系統(tǒng)可以實(shí)現(xiàn)如下功能:
文件服務(wù)和打印服務(wù)(在Linux和Win95/NT之間系統(tǒng)之間提供打印機(jī)和磁盤的共享)
登陸服務(wù)器,使用Windows客戶能注冊(cè)到網(wǎng)絡(luò)上
作為主要域控制器和域中成員的功能
WINS服務(wù)器以及瀏覽功能
支持SSL(Secure Socket Layer)
支持SWAT (Samba Web Administration Tool )
Samba除了支持Linux(Unix)和Win95/NT之外,還支持DOS、IBM OS/2、Macintosh 等操作系統(tǒng)。

在Samba的軟件包中所包括的組件參看表1-1:

表1-1 Samba軟件包的組成列表

2、Samba的記錄文件
Samba為smbd、nmbd和訪問Samba的客戶提供了下列記錄文件,分別記錄有關(guān)smbd、nmbd運(yùn)行信息和每個(gè)客戶的訪問信息:
記錄smbd 信息
/var/log/samba/log.smb
記錄nmbd信息
/var/log/samba/log.nmb
記錄客戶訪問信息
/var/log/samba/log.%m

3、啟用Samba服務(wù)器
Samba的運(yùn)行包含兩個(gè)后臺(tái)守護(hù)進(jìn)程:smbd和nmbd,它們是Samba的核心,在全部時(shí)間內(nèi)運(yùn)行。nmbd
程序使得通過企圖計(jì)算機(jī)可以瀏覽Linux服務(wù)器。Smbd守護(hù)進(jìn)程在SMB軟件包到達(dá)網(wǎng)上時(shí)對(duì)它們進(jìn)行處理,并且為使用或共享它的資源與Linux進(jìn)行協(xié)調(diào)。如果指定的是一個(gè)文件,該資源就是一個(gè)文件;而一個(gè)打印機(jī)請(qǐng)求就要求訪問一臺(tái)打印機(jī)。實(shí)際上,在請(qǐng)求訪問打印機(jī)時(shí),Smbd把要打印的信息存儲(chǔ)到打印機(jī)隊(duì)列中;在請(qǐng)求訪問一個(gè)文件時(shí),Smbd把數(shù)據(jù)發(fā)到內(nèi)核,最后將它存到磁盤上。
你可以從inetd選擇啟動(dòng)它們,但這種方法會(huì)使Samba變慢。建議使用下面命令可以啟動(dòng)這兩個(gè)進(jìn)程:
/etc/rc.d/init.d/smb start
/usr/sbin/samba start
如果想要在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)samba,可以使用/usr/sbin/turboservice命令,選中其中的"SMB (Windows)File
Services"。
二、Samba配置及使用
1、定制文件/etc/smb.conf
在安裝完Samba后,還需要定制它的配置文件smb.conf,才能使Samba正常工作以符合要求。由于SMB是一個(gè)非常復(fù)雜的協(xié)議,所以配置Samba的工作也是比較繁瑣的,大約有超過170條配置項(xiàng)出現(xiàn)在smb.conf文件中。

1).smb.conf的語法
smb.conf文件有一個(gè)清晰的語法結(jié)構(gòu),與Windows的*.ini文件十分類似。如下所示:
該文件被分成幾部分,每一部分都包括幾個(gè)參數(shù),用來定義Samba輸出的共享及其詳細(xì)操作。

文件被分隔成若干節(jié),每一節(jié)都由一個(gè)被方括號(hào)括起來的標(biāo)識(shí)開始(例如,[global]、[home]、[printers]),每一個(gè)配置參數(shù)或是一個(gè)全局參數(shù)(影響或控制整個(gè)服務(wù)器),或是一個(gè)服務(wù)參數(shù)(影響或控制服務(wù)器提供的某項(xiàng)服務(wù) )。
global部分定義的參數(shù)用來控制Samba的總特性。除global部分外,每一部分都定義了一個(gè)專門的服務(wù)。
你可以使用下面的語句來指定一個(gè)參數(shù):
name=VALUE
name可以是一個(gè)單詞或者用空格隔開的多個(gè)單詞。VALUE可以是布爾值(ture或false;yes或no;1或0)、數(shù)字或字符串。
注釋以分號(hào)開頭,可以單獨(dú)一行,也可以跟在一條語句之后。
通過在一行的最后一個(gè)字符后加反斜杠"\\"可以將一行分成多行。
每一部分的名字和參數(shù)都不區(qū)分大小寫,例如,參數(shù)browseable=yes與browseable=YES是完全等價(jià)的

2).smb.conf文件的功能
smbd和nmbd這兩個(gè)守護(hù)進(jìn)程啟動(dòng)時(shí)(通常為系統(tǒng)引導(dǎo)時(shí))讀配置文件smb.conf,這一配置文件向這兩個(gè)守護(hù)進(jìn)程說明輸出
什么共享、共享輸出給誰以及如何進(jìn)行輸出等等。
因?yàn)榘踩珕栴}是最重要的,所以你必須指定哪些計(jì)算機(jī)可以訪問這一共享,smb.conf文件可以很靈活的明確指定每一服務(wù)有哪些用戶可以訪問。隨著Linux網(wǎng)絡(luò)的增大,這一控制越來越重要。

3).smb.conf文件結(jié)構(gòu)
smb.conf文件主要包括三部分:
global(全局)參數(shù)
directory shares (目錄共享)部分--包括標(biāo)準(zhǔn)的[home]部分
printer shares(打印共享)部分
其中,global參數(shù)用來設(shè)置整個(gè)系統(tǒng)的規(guī)則;[home]部分和[printer]部分是服務(wù)的特定例程,services(服務(wù))這一術(shù)語是網(wǎng)絡(luò)客戶機(jī)共享或輸出的目錄和打印機(jī)的Samba術(shù)語。這些服務(wù)定義了哪些用戶可以訪問這些目錄和打印機(jī)以及如何訪問這些目錄和打印機(jī)。

清單1-1給出了smb.conf文件的一個(gè)簡(jiǎn)單的例子。
清單1-1 smb.conf文件的一個(gè)簡(jiǎn)單示例
[global]
netbios name = FRODO
workgroup = UAB-TUCC
server string = John Blair\‘s Linux Box
security = user
printing = lprng
log file = /var/log/samba
lock directory = /var/lock/samba
[homes]
comment = Home Directory
browseable = no
read only = no
[printers]
browseable = no
guest ok = yes
printable = yes
在 [global] 段中設(shè)置了主機(jī)名稱, 主機(jī)所在的工作組名稱和瀏覽時(shí)可看到的對(duì)本機(jī)的描述。安全參數(shù)告訴 Samba
使用"用戶級(jí)別"的安全保護(hù)方式。 SMB 有兩種安全模式: 共享級(jí)別, 將資源加密碼控制;用戶級(jí)別, 可以使用某一用戶的所有資源。
這里不能詳細(xì)解釋兩種方式的微妙差別, 但大部分情況下, 你會(huì)想用用戶級(jí)別安全控制。
[global] 段中還定義了日志文件目錄和鎖定文件的位置。日志文件在解決故障和完善系統(tǒng)時(shí)是很有用的,鎖定文件可以阻止多個(gè)用戶同時(shí)修改相同的文件。
[homes] 段中的設(shè)置控制了每一個(gè)用主目錄的共享權(quán)限。comment 參數(shù)指定的字符串在你瀏覽本機(jī)資源時(shí)出現(xiàn)在指定資源的旁邊。
browseable 參數(shù)控制一項(xiàng)服務(wù)是否能夠出現(xiàn)在網(wǎng)絡(luò)資源瀏覽表中。這里是一些非直覺的東西, browseable = no
意味著這個(gè)目錄將在瀏覽時(shí)顯示為要驗(yàn)證的用戶名稱。 舉例來說, 指定 browseable = no, 當(dāng)我瀏覽這個(gè) Samba 服務(wù)器時(shí),
我將看到一個(gè)名稱為 cuckoo 的共享目錄。當(dāng)指定 browseable = yes 時(shí), 我將看到一個(gè)名為 homes 和 cuckoo
的共享目錄。設(shè)置 read only = no 將允許通過驗(yàn)證的用戶對(duì)主目錄有寫入的權(quán)限。 但是, 如果他們的主目錄的 UNIX 權(quán)限 不允許寫入,
那么他們就沒有寫的權(quán)限。 無論 UNIX 的權(quán)限怎樣, 設(shè)置 read only = yes 后, 他們的主目錄是只讀的。
printing 命令描述了本地打印系統(tǒng)類型, 這可以讓 Samba 知道怎樣提交打印任務(wù), 顯示打印隊(duì)列, 刪除打印任務(wù)和其它操作。
如果打印系統(tǒng)是 Samba 所不知道的, 你必須在每次執(zhí)行打印操作時(shí)指明命令。
清單中[printing]一段配置允許任何能夠登錄到 Samba 服務(wù)器的用戶使用 printcap 中出現(xiàn)的 每一臺(tái)打印機(jī)。 正常情況下,
如果使用用戶級(jí)別安全控制, guest ok = yes 并不能授權(quán)每一個(gè)用戶(使用系統(tǒng))。 每一個(gè)打印服務(wù)必須定義為 printable =
yes。
下面的一段配置片斷增加了一個(gè)命名為 public 的共享目錄, 直接對(duì)匿名FTP目錄有只讀的 權(quán)限。 你必須在客戶機(jī)上建立打印機(jī)驅(qū)動(dòng)程序。 對(duì)于
Windows 95 和 Windows NT 客戶機(jī), 你可以使用printer name 和 printer driver命令自動(dòng)建立打印驅(qū)動(dòng)。

[public]
comment = Public FTP Directory
path = /home/ftp/pub
browseable = yes
read only = yes
這段描述并不是解釋一些微妙的主題,
例如用戶級(jí)和共享級(jí)安全性的區(qū)別或者其它的授權(quán)認(rèn)證主題。它僅僅讓我們看到了Samba這座冰山的一角。另一方面,這是一個(gè)良好的例子,從中我們可以了解產(chǎn)生一個(gè)簡(jiǎn)單但可工作的smb.conf文件是多么容易。
下面,我們舉另一個(gè)例子說明如何通過Samba把Linux的打印機(jī)共享給Windows機(jī)器。
為了共享Linux的打印機(jī)給Windows機(jī)器,必須確定Linux機(jī)器上的打印機(jī)已經(jīng)設(shè)置好。如果能從Linux上打印,那么設(shè)定Samba的打印機(jī)共享是很簡(jiǎn)便的。只要根據(jù)自己的情況,對(duì)smb.conf文件有關(guān)打印的部分進(jìn)行修改就可以了。在修改中唯一需要注意的是確保打印機(jī)的路徑要與/etc/printcap中的spool目錄相符合,然后就可以在Win95/NT上配置網(wǎng)絡(luò)打印機(jī)了(關(guān)于如何在Win95/NT上配置網(wǎng)絡(luò)打印機(jī),本文不做介紹)。

4).標(biāo)準(zhǔn)smb.conf文件清單
在Samba的軟件包里的example目錄中有一個(gè)缺省的配置文件smb.conf.defaults。我們可以對(duì)它做適當(dāng)修改后拷貝到你的安裝目錄下的lib目錄里,并改名為smb.conf。清單1-2是Samba系統(tǒng)提供的標(biāo)準(zhǔn)的配置文件。為方便讀者閱讀,本文翻譯了文件中的注釋并適當(dāng)?shù)奶砑恿私忉尅?

清單1-2 標(biāo)準(zhǔn)smb.conf 文件
# 這是服務(wù)器的主要配置文件。您應(yīng)該閱讀smb.conf(5)的用戶手冊(cè)以了解下面
# 列出的每一個(gè)選項(xiàng)。Samba有很多的選項(xiàng),它們之中的大多數(shù)并沒有出現(xiàn)在這
# 個(gè)例子中。
#
# 以分號(hào)";"或井號(hào)"#"開始的每一行都是注釋,在執(zhí)行時(shí)被忽略。在本例中
# 我們使用"#"作為注釋而使用";"作為可選配置的注釋。
#
# 注意:無論何時(shí)修改了這個(gè)配置文件,您都要運(yùn)行"testparm"命令來檢查您所
# 做的修改有沒有基本的語法錯(cuò)誤。
#
#=================== 全局變量設(shè)置Global Settings ====================
[global]
# workgroup用來指定您的機(jī)器在網(wǎng)絡(luò)上所屬的NT域名或組名。格式是
# workgroup = NT-Domain-Name or Workgroup-Name。缺省的組名是 MYGROUP。
workgroup = MYGROUP
# server string 用來設(shè)置NT描述域。缺省值是Samba Server 。
server string = Samba Server
# 下面的選項(xiàng)對(duì)于安全很重要。它允許您設(shè)置哪些領(lǐng)域的機(jī)器可以訪問您的Samba
# 服務(wù)器。下面的這個(gè)例子允許兩個(gè)C類子網(wǎng)和"lookup"的連接請(qǐng)求而禁止來
# 自其他網(wǎng)段機(jī)器的連接請(qǐng)求。有關(guān)的例子請(qǐng)參看smb.conf的用戶手冊(cè)。
; hosts allow = 192.168.1. 192.168.2. 127.
# 允許自動(dòng)加載打印機(jī)列表,而不需要您單獨(dú)設(shè)置每一臺(tái)打印機(jī)。
load printers = yes
# 您也許希望覆蓋原有的printcap 文件。
; printcap name = /etc/printcap
# 對(duì)于SystemV系統(tǒng),如果將printcap名設(shè)置為lpstat 將允許您從SystemV 的
# spool中自動(dòng)獲得打印列表。
; printcap name = lpstat
# 除非您的打印機(jī)不是標(biāo)準(zhǔn)型號(hào),否則您沒有必要在下面指定打印機(jī)系統(tǒng)的類型。
# 目前支持的打印機(jī)系統(tǒng)包括:bsd, sysv, plp, lprng, aix, hpux, qnx
; printing = bsd
# 如果希望建立一個(gè)客戶賬號(hào),去掉下面語句前面的分號(hào)";"。同時(shí),您必須在
# /etc/passwd中加入這個(gè)賬號(hào)的定義,否則將使用用戶"nobody"作為客戶帳戶。
; guest account = pcguest
# 此選項(xiàng)將為每一個(gè)與服務(wù)器連接的機(jī)器定義一個(gè)單獨(dú)的日志文件。
log file = /usr/local/samba/var/log.%m
# 此選項(xiàng)設(shè)置最大的日志文件的大?。ㄒ訩B為單位)
max log size = 50
# 定義安全模式。大多數(shù)人都喜歡用戶級(jí)安全模式,詳細(xì)內(nèi)容參看security_level.txt
security = user
# 只有當(dāng)安全模式設(shè)置為服務(wù)器級(jí)(security = server)時(shí),才定義下面選項(xiàng)。
; password server = <NT-Server-Name>
# 如果用戶想使用加密口令的話,請(qǐng)參閱ENCRYPTION.txt、Win95.txt和 WinNT.txt
# 文件,請(qǐng)?jiān)陂喿x以上文件后使用下面選項(xiàng)。
; encrypt passwords = yes
# 使用此選項(xiàng)允許您對(duì)每一個(gè)機(jī)器使用不同的配置。%m將被替換成與服務(wù)器
# 請(qǐng)求連接機(jī)器的NetBIOS名。
; include = /usr/local/samba/lib/smb.conf.%m
# 大多數(shù)人會(huì)發(fā)現(xiàn)此選項(xiàng)將顯著提高服務(wù)器的執(zhí)行效率,請(qǐng)參讀speed.txt和用戶
# 手冊(cè)以了解更多細(xì)節(jié)。
socket options = TCP_NODELAY
# 配置Samba來使用多個(gè)網(wǎng)絡(luò)界面,如果您有多個(gè)網(wǎng)絡(luò)界面,那么必須按照下面
# 格式在這里列出。請(qǐng)參閱用戶手冊(cè)以獲得更多的細(xì)節(jié)。
; interfaces = 192.168.12.2/24 192.168.13.2/24
# 瀏覽控制選項(xiàng)
#如果不想使您的Samba服務(wù)器成為局域網(wǎng)內(nèi)部的主瀏覽服務(wù)器,將此選項(xiàng)設(shè)為no
; local master = no
# OS Level決定了該服務(wù)器在局域網(wǎng)內(nèi)的訪問優(yōu)先權(quán)。
; os level = 33
# Domain Master將Samba服務(wù)器定義為主域?yàn)g覽器。此選項(xiàng)將允許Samba在子
#網(wǎng)列表中比較瀏覽。如您已經(jīng)有一臺(tái)Windows NT域控制器,不要使用此選項(xiàng)
; domain master = yes
# Preferred Master使Samba在啟動(dòng)時(shí)選擇一個(gè)本地瀏覽器并給它獲得選擇的較高
# 的機(jī)會(huì)
; preferred master = yes
#僅當(dāng)您的網(wǎng)絡(luò)中有一臺(tái)在安裝時(shí)設(shè)置為主域控制器的NT服務(wù)器時(shí)使用此選項(xiàng)。
; domain controller = <NT-Domain-Controller-SMBName>
# 如果想使Samba成為Windows95工作站的登錄服務(wù)器,則使用此選項(xiàng)。
; domain logons = yes
# 如果允許域登錄服務(wù),那么您也許希望每臺(tái)機(jī)器或每個(gè)用戶的登錄腳本運(yùn)行一
# 個(gè)特定的每工作站的登錄批處理文件。,
; logon script = %m.bat
# 運(yùn)行一個(gè)特定的每用戶名登錄批處理文件。
; logon script = %U.bat
# 放置roving profiles 文件的位置(僅用于 Win95 和WinNT) ,%L代表該服務(wù)器
# NetBIOS名,%U是用戶名,您必須取消后面定義的[Profiles]前面的注釋號(hào)。
; logon path = \\\\%L\\Profiles\\%U
# Windows的Internet名服務(wù)支持記錄部分
# WINS Support告訴NMBD守護(hù)進(jìn)程支持WINS服務(wù)器。
; wins support = yes
# WINS Serve選項(xiàng)告訴NMBD守護(hù)進(jìn)程作為WINS的客戶機(jī)。
# 注意:Samba既可以作為WINS服務(wù)器也可以作為 WINS客戶機(jī),但不能兼
# 而有之。
; wins server = w.x.y.z
# WINS Prox代表一個(gè)非WINS客戶通知Samba響應(yīng)名字解析請(qǐng)求。要使此選項(xiàng)
# 正常工作必須保證網(wǎng)絡(luò)中至少有一臺(tái)WINS服務(wù)器。缺省值是NO。
; wins proxy = yes
# DNS Proxy選項(xiàng)決定Samba是否通過DNS 的nslookups 去解析主機(jī)的NetBIOS
# 名。對(duì)于1.9.17 以前的版本內(nèi)置值是yes ,對(duì)于1.9.18之后的版本內(nèi)置值是no 。
dns proxy = no
#================== 定義共享服務(wù)Share Definitions ===================
# 所有使用者的home目錄
[homes]
comment = Home Directories
# 當(dāng)一個(gè)客戶程序以客人用戶類出本服務(wù)器的共享服務(wù)時(shí),不列出homes服務(wù)。
# 但是本機(jī)用戶創(chuàng)建的主目錄服務(wù)仍使用[global]節(jié)設(shè)定的browseable。
browseable = no
writable = yes
# 如果要?jiǎng)?chuàng)建一個(gè)netlogon目錄則取消下面的注釋。
; [netlogon]
; comment = Network Logon Service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no
# 如果要提供一個(gè)特定的共享roving profile則取消下面的注釋。
# 缺省值是使用用戶的home目錄。
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes
# 注意:如果您有一個(gè)BSD 風(fēng)格的打印系統(tǒng),您不需要單獨(dú)定義每臺(tái)打印機(jī)。
[printers]
comment = All Printers
path = /usr/spool/samba
browseable = no
# 設(shè)置public = yes 將允許以guest 賬號(hào)登錄的用戶使用打印機(jī)。
guest ok = no
writable = no
printable = yes
# 此選項(xiàng)定義網(wǎng)絡(luò)用戶共享文件的臨時(shí)目錄。
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes
# 一個(gè)用戶共享目錄,除了在"staff "組里的用戶有些寫的權(quán)限之外之外,對(duì)
# 其它用戶是只讀的。
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff
# 其他例子:
#
# 下面定義了一臺(tái)只有fred可以使用的私人打印機(jī)。Spool數(shù)據(jù)放在fred的home
# 目錄里。注意:fred必須對(duì)Spool目錄有寫的權(quán)限,不管這個(gè)目錄在什么位置。
;[fredsprn]
; comment = Fred\‘s Printer
; valid users = fred
; path = /homes/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes
# 下面定義一個(gè)只有用戶fred才能使用的私人目錄。fred 必須對(duì)這個(gè)目錄擁有
# 寫的權(quán)限。
;[fredsdir]
; comment = Fred\‘s Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no
# 下面定義的是對(duì)每個(gè)域服務(wù)器連接的機(jī)器有不同的目錄的服務(wù)。這將允許您
# 對(duì)于不同的機(jī)器使用不同的配置,同樣也可以使用%U選項(xiàng)為每個(gè)用戶使用不
# 同的配置。%m在連接時(shí)將被替換為客戶機(jī)的主機(jī)名。
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes
# 下面定義一個(gè)所有用戶都可以讀寫的共享目錄。注意用戶在這個(gè)目錄中創(chuàng)建的
# 文件都將歸默認(rèn)用戶所有。所以任何可以訪問這個(gè)目錄的用戶都可以刪除別的
# 用戶在這個(gè)目錄里放置的文件。顯然,這個(gè)目錄對(duì)于默認(rèn)用戶必須是可寫的。
# 當(dāng)然,也可以指定某個(gè)用戶,這時(shí),該目錄的所有文件將為此用戶所有。
;[public]
; path = /usr/somewhere/else/public
; public = yes
; only guest = yes
; writable = yes
; printable = no
# 下例說明了如何定義讓兩個(gè)用戶共享一個(gè)目錄,他們?cè)谶@個(gè)目錄里放置的文件
# 歸他們各自所有。在此例中,這兩個(gè)用戶對(duì)該目錄都有寫的權(quán)限。當(dāng)然文件的
# 保護(hù)應(yīng)該設(shè)置恰當(dāng)。很顯然,這個(gè)例子可以擴(kuò)展到適合于多個(gè)用戶的情況。
;[myshare]
; comment = Mary\‘s and Fred\‘s stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765



2 共享訪問限制
1).通過主機(jī)地址
使用以下參數(shù)來限制通過主機(jī)地址訪問:
allow hosts
hosts allow
deny hosts
hosts deny
"allow hosts"、" hosts
allow"這兩個(gè)功能相同的參數(shù)指定允許訪問一個(gè)服務(wù)的主機(jī)列表,主機(jī)列表用","號(hào)、空格或制表符隔開。如用于[global]段,則應(yīng)用于所有服務(wù),而忽略在每個(gè)服務(wù)中的各自的設(shè)置。
主機(jī)列表的組成可以是主機(jī)名、IP地址、子網(wǎng)地址或網(wǎng)絡(luò)號(hào)碼/掩碼。也可以使?quot;EXCEPT"關(guān)鍵字來限制子網(wǎng)中的個(gè)別主機(jī)的訪問。例如:
hosts allow = 202.204. 3 EXCEPT 202.204.3.30
允許在202.204.3子網(wǎng)上的主機(jī)訪問,但禁止其中的202.204.3.30訪問。
"deny hosts"、" hosts deny"這兩個(gè)功能相同的參數(shù)指定禁止訪問某個(gè)服務(wù)的主機(jī)列表,與"allow
hosts"相反。當(dāng)與"allow hosts"列表沖突時(shí),"allow hosts"列表優(yōu)先。


2).通過用戶口令
使用以下參數(shù)來限制通過用戶口令訪問:
security
參數(shù)security可以確定對(duì)客戶用戶名/口令的驗(yàn)證方式。缺省為"user",即對(duì)Samba服務(wù)器的任何訪問都要通過用戶名/口令的驗(yàn)證。如果客戶登錄客戶機(jī),如Windows
所用的用戶名與Samba服務(wù)器上的UNIX用戶名一致,則通過口令驗(yàn)證后就可以訪問;如Windows
所用的口令也與UNIX一樣,那么不經(jīng)任何提示就可以訪問。
但如果客戶機(jī)上登錄的用戶名與Samba服務(wù)器上的UNIX用戶名不一致,則需要在一個(gè)映射文件中(如/etc/smbusers)寫入客戶機(jī)用戶名到UNIX用戶名的映射,同時(shí)使用"username
map"參數(shù)指定映射文件,例如:
username map = /ect/smbusers
在/etc/smbusers文件中的內(nèi)容如下:
cuckoo = "cuckoo doo"
這樣,在客戶機(jī)上以"cuckoo
doo"注冊(cè)后,再與Samba服務(wù)器連接時(shí),輸入U(xiǎn)NIX客戶cuckoo的口令就可以進(jìn)入,因?yàn)镾amba已經(jīng)把"cuckoo
doo"映射為cuckoo。
security參數(shù)的另一個(gè)值是"share",表示Samba服務(wù)器不需要客戶機(jī)使用用戶名/口令來登錄,而是根據(jù)每個(gè)共享的設(shè)置來決定是否需要用戶名/口令驗(yàn)證。設(shè)置security為share一般用于客戶機(jī)上大多數(shù)用戶名與Samba服務(wù)器上UNIX用戶名不相同的情況,以及Samba服務(wù)器主要提供guest訪問。
在smb.conf文件中,如果沒有設(shè)置"encrypt
passwords",Samba將使用UNIX的password數(shù)據(jù)庫來驗(yàn)證用戶口令。這需要客戶機(jī)將口令以"普通文件"的方式傳遞過來。如果設(shè)置了"encrypt
passwords",Samba則使用另一個(gè)加密口令文件,通過"smb passwd file"來設(shè)置,例如:
encrypt passwords = yes
smb passwd file = /etc/smbpasswd

3).通過用戶名
public
guest ok
上面的兩個(gè)參數(shù)的功能相同,都可以使用相應(yīng)的服務(wù)允許guest用戶,即不需要用戶名/口令驗(yàn)證。如果還指定了"guest
only",那么相應(yīng)的服務(wù)器只允許由guest用戶來訪問。
invalid users
valid users
這兩個(gè)參數(shù)分別設(shè)置不允許注冊(cè)某個(gè)服務(wù)和允許注冊(cè)某個(gè)服務(wù)的用戶列表。一個(gè)用戶同時(shí)出現(xiàn)在兩個(gè)列表中的時(shí)候,不允許注冊(cè)優(yōu)先。列表中的用戶名可以用空格隔開,以"@"開頭的名字被認(rèn)為是NIS
組名或UNIX組名;以"+"開頭的名字被認(rèn)為是UNIX組名;以"&"開頭的名字只被認(rèn)為是NIS組名。
only user
此參數(shù)控制是否只允許在"user ="列表中指定的用戶訪問某個(gè)服務(wù)。如果設(shè)置為true,則只有在"user ="列表中的用戶才能訪問。

4).通過是否可以讀寫來控制
read only
此參數(shù)設(shè)置為"yes",則使用服務(wù)的用戶不能在該服務(wù)的目錄中創(chuàng)建或修改文件。
writable
writeable
write ok
這三個(gè)參數(shù)功能相同。如果它們被設(shè)置為"no",則使用服務(wù)的用戶不能在該服務(wù)的目錄中創(chuàng)建或修改文件。
read list
write list
這兩個(gè)參數(shù)分別指定只允許對(duì)一個(gè)服務(wù)進(jìn)行只讀訪問或同時(shí)有"寫"權(quán)限的主機(jī)列表,這里,如果一個(gè)主機(jī)同時(shí)在兩個(gè)列表里,則"寫"優(yōu)先。

5).通過是否在瀏覽器列表中顯示來控制
browsable
browseable
這兩個(gè)功能相同的參數(shù)控制該段是否在瀏覽列表中列出。瀏覽列表列出的是可獲得的共享列表。一般[home]段禁止瀏覽,以提高安全性。

3、Windows 9x做為SMB客戶的設(shè)置
1).配置microsoft網(wǎng)絡(luò)客戶
在客戶機(jī)(WIN9X)上,在控制面板里添加microsoft網(wǎng)絡(luò)客戶。選中microsoft網(wǎng)絡(luò)客戶--標(biāo)識(shí)--計(jì)算機(jī)名--my_computer_name--my_group,其中,my_computer_name將作為表示客戶機(jī)的NetBIOS名,
my_group為組名

2).編輯注冊(cè)表記錄
如果在SMB服務(wù)器上的smb.conf 文件中沒有用到"encrypt
passwords",即使用"普通文本"格式的口令,則必須要編輯注冊(cè)表,來允許使用"普通文本"格式的口令。
在Windows的注冊(cè)表的以下條目中:
/HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD/VNETSUP
新建DWORD值,將新建的值命名為EnablePlainTextPassword;雙擊EnablePlainTextPassword,將鍵值設(shè)為1。

3).重新啟動(dòng)
重新啟動(dòng)計(jì)算機(jī),以用戶名/口令登陸。該用戶名/口令將用于與SMB服務(wù)器連接時(shí)進(jìn)行用戶身份認(rèn)證,所以如果要訪問SMB服務(wù)器上用戶自己的home目錄,建議使用與SMB服務(wù)器上相同的用戶名/口令。

4).訪問Samba服務(wù)器
通過網(wǎng)絡(luò)鄰居瀏覽訪問Samba服務(wù)器,可以在列表里選擇,也可以在命令窗口里使用命令:
\\\\sambaserver

4 、Samba服務(wù)器提供的其他命令
smbstatus
smbstatus指令用于顯示當(dāng)前的SMB服務(wù)器的連接狀態(tài)。例如,在IP地址為202.204.3.16的"cuckoo"客戶機(jī)上,用戶john訪問SMB服務(wù)器的"public"服務(wù)時(shí),命令輸出如下:
/usr/bin/smbstatus
Samba version 2.0.3
Service uid gid pid machine
----------------------------------------------
public john john 10009 cuckoo (202.204.3.16) Fri Jul 21 20:3
No locked files
Share mode memory usage (bytes):
1048464(99%) free + 56(0%) used + 56(0%) overhead = 1048576(100%) total
此命令可以附加一些開關(guān)來顯示不同的內(nèi)容,下表列出了主要的開關(guān)及其含義:
表1-2 smbstatus命令主要選項(xiàng)表

nmblookup
nmblookup命令用于把一個(gè)NetBIOS名字映射到IP地址。對(duì)于上面的例子,可以使用下面的命令查找主機(jī)cuckoo:
/usr/bin/nmblookup sale
可以使用合適的選項(xiàng)來允許nmblookup查詢一個(gè)IP廣播域或是一個(gè)單獨(dú)的機(jī)器,該命令常用的選項(xiàng)參看表1-3。
表1-3 nmblookup 命令主要選項(xiàng)列表

smbclient
smbclient是訪問SMB服務(wù)器資源的客戶程序。該程序提供的接口與ftp程序類似,訪問操作包括從SMB服務(wù)器下載文件到本地,或從本地上載文件到SMB服務(wù)器,還可以在SMB服務(wù)器上檢索目錄信息等。
命令語法如下:
/usr/bin/smbclient //smbserver/service [passwd][-U username]
其中,smbserver是SMB服務(wù)器的NetBIOS名,一般與服務(wù)器的主機(jī)名一樣,但不是必須的。"service"為服務(wù)器提供的服務(wù),如文件服務(wù)public或打印服務(wù)printer。
passwd是訪問某些服務(wù)時(shí)需要的口令。如果在命令行輸入,后面則不會(huì)再提示輸入口令。否則,將在后面提示輸入口令。雖然有些要訪問的服務(wù)器不需要口令,但仍然會(huì)有輸入口令的提示。如果不希望有口令提示,則可以在命令行使用"-N"選項(xiàng)。
如果要使用其他的端口與SMB服務(wù)器進(jìn)行TCP連接,可以使用"-p"選項(xiàng)來指定,缺省值為139。
"-U"可以指定與SMB服務(wù)器連接時(shí)使用的用戶名。如果沒有指定,smbclient使用環(huán)境變量USER指定的值作用戶名。如果沒有USER環(huán)境變量,則用"guest"。
在環(huán)境變量USER中,可以設(shè)置"USER=username%password",這樣就不用在命令行上輸入口令。同時(shí),使用ps命令看不到命令行參數(shù),具有一定的安全性。同樣,也可以使用"-U
username%password"的形式指定用戶名和口令。?quot;-U"指定的口令"%password"要優(yōu)先于在命令行[password]中指定的口令。

"-L"選項(xiàng)可以列出在一個(gè)服務(wù)器上提供的服務(wù),例如:
/usr/bin/smbclient -L smbserver
使用下面的命令可以進(jìn)入與ftp類似的提示狀態(tài):
/usr/bin/smbclient //smbserver/service
執(zhí)行結(jié)果:
smb:\\>
其中"\\"表示服務(wù)器當(dāng)前的工作目錄。在該提示符下可以使用的命令可以通過"?"、"help"命令列出。命令不分大小寫。
在該提示符下除了可以使用很多與ftp類似的命令外,還有命令recurse,它可以被設(shè)置為on,以便在使用mget或mput命令時(shí)能夠get或put匹配的子目錄。recurse缺省為off,即只get或put當(dāng)前目錄中的文件。

在該提示符下還可以使用下面的命令:
smb:\\>tar c localfile filename
將服務(wù)器上文件名為"filename"的文件和目錄(可以使用通配符)經(jīng)過tar 拷貝到本地的"localfile "文件中?;蛘撸?
smb:\\>tar x localfile filename
可以把本地tar 文件localfile 中的文件filename拷貝到服務(wù)器上;如果filename省略,則拷貝所有的文件。
上面的命令也可以在smbclient命令行上來執(zhí)行,如:
/usr/bin/smbclient //smbserver/service [passwd] -T c local file filename
/usr/bin/smbclient //smbserver/service [passwd] -T x local file filename
smbprint
smbprint是在Linux系統(tǒng)下將打印文件提交給遠(yuǎn)地SMB服務(wù)器打印的腳本程序。程序中調(diào)用的命令就是smbclient。下面舉例說明此命令的使用方法。
例如,遠(yuǎn)端SMB服務(wù)器NetBios名為prtserver(Windows
9X),提供打印服務(wù)。服務(wù)名為netpcl(NEC激光打印機(jī)),不需要口令。
在Linux系統(tǒng)中配置如下:
1. 編輯/etc/printcap文件,加入下面一行
smb:lo=/dev/null:sd=/usr/spool/smb:sh:if=/usr/bin/smbprint:af=/var/spool/lpd/smb/acct
2.建立目錄/usr/spool/smb、/var/spool/lpd/smb
3.用下面命令建立記帳文件
touch /var/spool/lpd/smb/acct
4.建立/var/spool/lpd/smb/.config文件,包含下面內(nèi)容:
server = prtserver
service = necpcl
password = ""
5.編輯/usr/bin/smbprint文件,在smbclient命令參數(shù)中使"echo
translate"有效,這樣可以使UNIX文件到Windows 9x系統(tǒng)打印時(shí),進(jìn)行<LF>與<CR/LF>的轉(zhuǎn)換。
6.啟動(dòng)lpd:
/etc/rc.d/init.d/lpd start
7.使用lpr命令打印/etc/hosts文件
/lpr -P smb/etc/hosts
lpr缺省使用的打印機(jī)名為lp,這里使用的是smb。

5、使用Samba加密口令
客戶機(jī)訪問Samba服務(wù)器時(shí)進(jìn)行的用戶身份認(rèn)證包括使用"普通文本"格式的口令,通過網(wǎng)絡(luò)傳送給SMB服務(wù)器,與UNIX的帳戶數(shù)據(jù)庫(如/etc/passwd)進(jìn)行核查;或者使用加密口令,通過"SMB
challenge/response"驗(yàn)證進(jìn)行核查。本文著重介紹加密口令的用法。
在Samba服務(wù)器中使用了與Windows NT兼容的口令加密算法,因此可以像Windows NT一樣對(duì)Samba的客戶進(jìn)行用戶口令核實(shí)。
Windows
NT使用一個(gè)包含用戶口令hashed值的文件,是通過對(duì)用戶的"普通文本"的口令經(jīng)過加密算法得到的,稱為"hashed口令"。不能從該hashed值返回得到原始的"普通文本"的口令。在Samba服務(wù)器上可以形成同樣的hashed口令,保存在smbpasswd文件中。
當(dāng)一個(gè)Samba客戶(如Windows 9x
或NT)使用Samba資源時(shí),它先請(qǐng)求一個(gè)連接,并商討連接使用的協(xié)議。Samba回答客戶請(qǐng)求時(shí)產(chǎn)生一個(gè)隨機(jī)值,發(fā)送給客戶,并且還儲(chǔ)存在Samba服務(wù)器上,稱為"challenge"。"challenge"對(duì)于每一個(gè)客戶連接是不一樣的。
客戶然后使用hashed口令與"challenge"進(jìn)行加密運(yùn)算,產(chǎn)生24個(gè)字節(jié)的"response",發(fā)送給Samba服務(wù)器。
Samba服務(wù)器使用自己保存的hashed值的用戶口令(保存在smbpasswd文件中)與先前產(chǎn)生的"challenge"進(jìn)行同樣的加密運(yùn)算,將產(chǎn)生的結(jié)果與客戶發(fā)送過來的結(jié)果進(jìn)行比較,如果結(jié)果相同,則客戶被允許訪問;否則,禁止用戶訪問。

對(duì)于Samba服務(wù)器來說,它不存儲(chǔ)"普通文本"格式的口令,儲(chǔ)存的是從"普通文本"口令轉(zhuǎn)換的hashed口令。并且在網(wǎng)絡(luò)連接時(shí),"普通文本"和"hashed口令"都不被傳送,所以比UNIX安全。因?yàn)楫?dāng)客戶程序與UNIX服務(wù)器連接時(shí)(如telnet),口令往往是以"普通文本"在網(wǎng)絡(luò)上傳送的,可以被網(wǎng)絡(luò)竊聽軟件(如tcpdump)截獲。Samba加密口令文件smbpasswd會(huì)被利用成為潛在的漏洞。所以該文件是要由root所有,讀寫權(quán)限應(yīng)該為600。
Windows 9x
或NT缺省的用戶認(rèn)證方式是使用加密的口令,這?quot;普通文本"不在網(wǎng)絡(luò)上傳送。相應(yīng)的,Samba也要使用加密口令的認(rèn)證方式。但如果想使用"普通文本"格式的口令,可以編輯Windows
NT的注冊(cè)表來允許。這樣,Samba服務(wù)器就可以使用/etc/psswd文件來驗(yàn)證用戶口令,而不需要smbpasswd文件。
要想讓Samba使用與Windows
NT兼容的口令加密算法,則必須在Samba服務(wù)器上保存包含與用戶名對(duì)應(yīng)的hashed值的口令文件??梢允褂?usr/bin/mksmbpasswd.sh程序產(chǎn)生加密口令文件的框架,文件名由"smb
passwd file"參數(shù)設(shè)置,這里是/etc/smbpasswd,命令行格式為:

cat /etc/passwd |mksmbpasswd.sh >/etc/smbpasswd

然后root可以使用smbpasswd命令可以設(shè)置用戶口令,例如設(shè)置客戶cuckoo的smb口令為smbpassword:
/usr/bin/smbpsswd cuckoo smbpassword
root還可以使用smbpsswd 進(jìn)行添加用戶、取消口令等操作。但添加的用戶必須在/etc/psswd文件中存在。普通用戶使用smbpsswd
命令只能像使用passwd程序一樣更改自己的smb口令。


三、Samba常見故障排除

Samba的故障排除可以在SMB服務(wù)器和SMB客戶機(jī)上通過各自的命令來完成。
1 SMB服務(wù)器上的操作
1).使用下面的命令來查看是否有錯(cuò)誤的配置。
/usr/bin/testparm /etc/smb.conf
2). 在服務(wù)器上以及客戶機(jī)上用ping命令檢查tcp/ip是否正常工作。
3). 在SMB服務(wù)器上用
/usr/bin/smbclient -L SMBserver
命令將得到一個(gè)共享的列表。
如果出現(xiàn)失敗信息,則要檢查與服務(wù)器相關(guān)的"hosts allow"、"hosts deny"、"valid users"、"invlid
users"等參數(shù)的設(shè)置。如果出現(xiàn)"connection
refused",則檢查Samba服務(wù)器進(jìn)程是否啟動(dòng);若Samba以守護(hù)進(jìn)程形式運(yùn)行的話用"netstat -a"命令檢查端口是否處于監(jiān)聽狀態(tài)。
4). 運(yùn)行了命令"/usr/bin/nmblookup SMBserver",將返回SMB服務(wù)器的IP地址。否則nmbd沒有正確的運(yùn)行。
5). 運(yùn)行"/usr/bin/nmblookup -d 2 \‘*\‘
"命令,在子網(wǎng)中運(yùn)行NetBIOS/TCPIP的主機(jī)將會(huì)響應(yīng)。否則說明nmblookup
不能正確的得到廣播地址,可以嘗試在smb.conf文件中用interfaces參數(shù)人工設(shè)置IP地址、廣播地址和子網(wǎng)掩碼。
6). 運(yùn)行"/usr/bin/smbclient
\‘\\\\SMBserver\\homes"命令,需要輸入客戶在SMB服務(wù)器上的用戶口令,然后會(huì)出現(xiàn)類似"smb>"的提示符。這時(shí)可以使用dir命令瀏覽客戶在SMB服務(wù)器帳戶目錄下的文件,用help命令可以得到其他命令的幫助。如果不能出現(xiàn)類似"smb>"的提示符,并且有"invalid
network name"的錯(cuò)誤信息,則有可能homes共享沒有正確的設(shè)置;或者有"Bad password",則要檢查"shadow
password"、"password encryption"以及參數(shù)"valid users"和"path"的設(shè)置。

2、SMB客戶機(jī)上的操作
1). 運(yùn)行"net view \\\\SMBserver"命令,應(yīng)該能夠列出SMB服務(wù)器上的共享。
如果出現(xiàn)類似"network name not found"的錯(cuò)誤,則要檢查客戶機(jī)上DNS或WINS的設(shè)置。如果出現(xiàn)"Invalid network
name"或"bad password error"的錯(cuò)誤,則參照與上面"smbclient
-L"命令中同樣的錯(cuò)誤結(jié)果的解決方法。要注意客戶機(jī)將要用客戶注冊(cè)客戶機(jī)時(shí)所用的用戶名/口令去與SMB服務(wù)器連接,所以在SMB服務(wù)器上,用戶最好有同樣的用戶名/口令。
2). 使用"net use
x;\\\\SMBserver\\homes"命令,可以把SMB服務(wù)器上客戶home目錄映射到客戶機(jī)"x:"盤,"x:"應(yīng)該是一個(gè)客戶機(jī)上未用的盤號(hào)。這樣,共享的目錄可以在客戶機(jī)上以"x:"盤來看待。正常的信息為"command
complete successfully"。
如果要停止使用"x:"盤,可以使用"net use
x:/delete"命令。如果不能正常的把客戶的home目錄映射到"x:"盤,則要檢查SMB服務(wù)器上"hosts
allow"等參數(shù)的配置。如果客戶機(jī)上的用戶名不能與服務(wù)器上的用戶名匹配,嘗試使用"username map"選項(xiàng)。
3). 如果在SMB服務(wù)器上沒有使用"encrypted passwords",則在客戶機(jī)上要在注冊(cè)表中允許使?quot;普通文本"格式的口令。

小結(jié)

Samba是SMB的一種實(shí)現(xiàn)方法,主要用來實(shí)現(xiàn)Linux系統(tǒng)的文件和打印服務(wù)。Linux用戶通過配置使用Samba服務(wù)器可以實(shí)現(xiàn)與Windows用戶的資源共享。
守護(hù)進(jìn)程smbd和nmbd是Samba的核心,在全部時(shí)間內(nèi)運(yùn)行。nmbd
程序使得通過企圖計(jì)算機(jī)可以瀏覽Linux服務(wù)器。Smbd守護(hù)進(jìn)程在SMB軟件包到達(dá)網(wǎng)上時(shí)對(duì)它們進(jìn)行處理,并且為使用或共享它的資源與Linux進(jìn)行協(xié)調(diào)。
在安裝完Samba后,還需要定制它的配置文件smb.conf,才能使Samba正常工作以符合要求。smb.conf文件的的語法結(jié)構(gòu)與Windows的*.ini文件十分類似;文件結(jié)構(gòu)主要包括三部分:全局參數(shù)部分、目錄共享部分、打印共享部分;本文著重介紹了如何配置各選項(xiàng)以完成特定的功能。
通過使用不同的參數(shù),可以實(shí)現(xiàn)對(duì)Samba的不同訪問控制:通過主機(jī)地址限制訪問、通過用戶口令限制訪問、通過用戶名限制訪問、通過驗(yàn)證讀寫權(quán)限限制訪問、通過是否在瀏覽器列表里顯示來控制等。所有這些方法,大大的增強(qiáng)了Samba服務(wù)器的安全性。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多