用Samba實(shí)現(xiàn)跨平臺(tái)打印
如果你正在處理一個(gè)跨操作平臺(tái)的網(wǎng)絡(luò),網(wǎng)絡(luò)中可能包括Windows,Linux和UNIX的工作站,服務(wù)器,那你肯定對(duì)怎樣在這些不同平臺(tái)上實(shí)現(xiàn)網(wǎng)絡(luò)打印服務(wù)感興趣
上星期,介紹了怎樣在Linux上實(shí)現(xiàn)網(wǎng)絡(luò)打印服務(wù)。在這部分中,你將學(xué)習(xí)怎樣為Windows 95/98/NT/2000的用戶實(shí)現(xiàn)這項(xiàng)服務(wù)。通過修改你服務(wù)器上的Samba配置,你可以讓網(wǎng)絡(luò)中的Windows用戶共享你的本地打印機(jī)。
請(qǐng)注意,我假設(shè)你已經(jīng)在Linux和Windows之間成功的安裝和配置了Samba的文件共享。如果你還沒有安裝和配置Samba,或者你的Samba不能正常工作,請(qǐng)看文章“省錢之道:用Linux的Samba代替NT服務(wù)器”。為了實(shí)現(xiàn)我們的目標(biāo),我也假設(shè)你已經(jīng)成功安裝了一個(gè)本地打印機(jī)。
配置Samba實(shí)現(xiàn)本地打印機(jī)共享
在開始之前,確信你的Samba運(yùn)行正常,并且Windows用戶可以在網(wǎng)絡(luò)鄰居的列表中看到Samba服務(wù)器。我將介紹修改smb.conf文件,使得網(wǎng)絡(luò)中的Windows用戶可以通過Samba服務(wù)器使用打印機(jī)。
為了配置smb.conf文件實(shí)現(xiàn)共享一個(gè)本地打印機(jī),檢查你Linux下的打印機(jī)是否工作正常。下一步,在Windows客戶端安裝同一個(gè)打印機(jī)。這樣做的話,你需要Windows下打印機(jī)的安裝盤。開始安裝打印機(jī),點(diǎn)擊開始,選擇打印機(jī),并且雙擊添加打印機(jī)。
在打印機(jī)安裝向?qū)е?,按照屏幕上的說明一步一步,直到在列表中選擇打印機(jī)的名稱。要點(diǎn):寫出打印機(jī)的準(zhǔn)確名稱,注意大小寫(名稱對(duì)大小寫是敏感的)。例如,Windows中使用的Epson Stylus 740打印機(jī)應(yīng)該輸入如果需要,在安裝完成后要重啟機(jī)器。在Samba服務(wù)器上,以根用戶登錄(或是超級(jí)用戶),用你習(xí)慣的文本編輯器打開/etc/smb.conf或者/etc/samba/smb.conf。例如,vi /etc/smb.conf。
在[global]這一節(jié),找到打印名稱這行,如果你想使Windows用戶可以使用所有本地打印機(jī),去掉這一行,并且如果文件中沒有這些內(nèi)容的話,添加上:
printcap name = /etc/printcap
load printers = yes
如果只想讓其他用戶用一個(gè)打印機(jī),你不要?jiǎng)h掉那行,也不用添加什么。需要注意的是在大多數(shù)從BSD發(fā)展而來的Linux系統(tǒng)上,Samba假設(shè)你在用默認(rèn)的打印系統(tǒng)。如果你用的是其他打印系統(tǒng),在Linux的打印系統(tǒng)配置中,找到相應(yīng)的行,改變默認(rèn)設(shè)置(bsd)。選擇包括sysv,plp,lprng,aix,hpux和qnx。如果不能確認(rèn)你的Linux配置正在使用的打印系統(tǒng),你可以查看一下相關(guān)文件,但大多數(shù)情況下都是默認(rèn)的。
下一步,使所有的本地打印機(jī)都實(shí)現(xiàn)共享。所有的打印機(jī)都在/etc/printcap文件的打印機(jī)列表中,在/etc/smb.conf文件尾添加以下服務(wù)條目:
[printers]
writable = no
path = /tmp
printable = yes
如果只要共享一個(gè)打印機(jī),在smb.conf文件的[global]小節(jié)添加一個(gè)自動(dòng)服務(wù)行。和在/etc/printcap中的相同,這行指定你想使用的打印機(jī)名稱。下行中在lp填寫默認(rèn)打印機(jī)的名稱:
auto services = lp
而且,仿照下面創(chuàng)建一個(gè)打印機(jī)定義,添加到[services]小節(jié)中(在/etc/smb.conf文件末尾):
[lp]
printable = yes
comment = Epson Stylus (Color)
public = yes
writable = no
browseable = yes
printer driver=EPSON Stylus COLOR 740
定義中的打印機(jī)名是lp,這個(gè)名稱必須和上面自動(dòng)服務(wù)行中的名稱相一致,并且也要和在/etc/printcap文件中定義的打印機(jī)名稱相同(或打印機(jī)的別名)。需要注意的是,打印機(jī)驅(qū)動(dòng)行需要你正確的輸入Windows中的打印機(jī)信息(在這里,EPSON Stylus COLOR 740,還是需要注意大小寫)。
***,保存/etc/smb.conf文件。退出文本編譯器,鍵入/etc/init.d/rc.d/smb重啟Samba。
檢測(cè)安裝
在其中一臺(tái)Windows工作站上檢測(cè)你的安裝成果
。用用戶的Windows網(wǎng)絡(luò)用戶名和密碼登錄,雙擊網(wǎng)絡(luò)鄰居,雙擊Linux系統(tǒng)的圖標(biāo)后看看Samba打印機(jī)是否顯示出來。如果點(diǎn)擊右鍵選擇安裝,你可以看到打印機(jī)安裝的對(duì)話框。在開始安裝的時(shí)候,用戶不需要關(guān)心打印機(jī)的牌子和型號(hào),因?yàn)榇蛴C(jī)的名稱以Windows認(rèn)可的某種方式定義。但是,用戶還是需要打印機(jī)的安裝盤,如果Windows本來就支持這種打印機(jī)的話,只要Windows的安裝盤就可以了。
打印機(jī)驅(qū)動(dòng)器定位
打印機(jī)驅(qū)動(dòng)器定位是Samba的一個(gè)選項(xiàng),使你能夠指定打印機(jī)驅(qū)動(dòng)軟件的位置。雖然你可以在共享的Linux目錄中選擇適合打印機(jī)驅(qū)動(dòng)器和相關(guān)文件的選項(xiàng),但這個(gè)選項(xiàng)對(duì)許多打印機(jī)驅(qū)動(dòng)器不起作用,而且你也可能因?yàn)樵诰W(wǎng)絡(luò)中沒有得到使用軟件的許可而侵犯了作者了的版權(quán)。
Samba打印故障處理
如果在Linux系統(tǒng)上你的打印機(jī)可以正常工作,但不能通過Samba實(shí)現(xiàn)打印服務(wù),用超級(jí)用戶登錄,用文本編譯器打開/etc/smb.conf,仔細(xì)檢查你的輸入。運(yùn)行testparm /etc/smb.conf,仔細(xì)查看輸出結(jié)果,找出錯(cuò)誤標(biāo)志。確信/dev/null對(duì)任何用戶都是可寫的(做法是:鍵入ls -l /dev/null,按回車,查看文件讀取權(quán)限)。Samba通過/dev/null來忽略不需要的輸出。如果這個(gè)文件不是對(duì)所有用戶可寫的,用超級(jí)用戶登錄,鍵入chmod a+w /dev/null,按回車。如果你的打印機(jī)只輸出代碼而不是你想要的圖形,在/etc/samba.conf文件的打印機(jī)定義中添加postscript = yes。
費(fèi)用分擔(dān)
在這篇文章中,你了解了怎樣修改Samba配置,使得連接在Linux系統(tǒng)上的打印機(jī)可以被整個(gè)網(wǎng)絡(luò)中的Windows和Linux/UNIX主機(jī)所使用。在不同的平臺(tái)上實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)意味著更高的效率和更少的費(fèi)用。
【編輯推薦】