[email protected]
* 附件 :
smb.conf
# Global parameters
[global]
workgroup = Blah
netbios name = FILE_SERVER
server string = Samba Server
security = SHARE
log file = /var/log/samba/log.%m
max log size = 50
deadtime = 10
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = No
invalid users = root
printer admin = nobody
; load printers = Yes
[print$]
comment = All Printers
path = /home/samba/printers
guest ok = Yes
browseable = Yes
read only = Yes
write list = nobody
create mask = 0644
directory mask = 0755
[tmp]
comment = Temporary file space
path = /home/samba/tmp
read only = No
guest ok = Yes
[public]
comment = Public Stuff
path = /home/samba/public
guest ok = Yes
read only = Yes
;[printers]
; printable = Yes
; browseable = Yes
; public = Yes
[HP8100]
comment = HP LaserJet 8100 Series PCL 6
printable = Yes
browseable = Yes
public = Yes
[HP8000]
comment = HP LaserJet 8000 Series PCL 6
printable = Yes
browseable = Yes
public = Yes
[註一]
基本上可以不用那麼做, 因為 HP 新版的 Network Printer Wizard 已經會自動
幫你做好一切了, 只是一來這邊的環境比較特殊, 有人會想要在網芳中自己加印
表機, 但又找不到開始譙, 我就會很累 :p 二來 bsd 閒閒沒事做耗一下資源, 順
便看看 samba 的功能如何了 :)
--
我的簽名檔只有十個字.
--
^..^ ★ < 豬 頭 紀 公 園 - php.twbbs.org (140.114.81.201) >
-w @@ w-- < CTS.nthu.edu.tw >
================================ License ================================
記得說是我寫的就好了 :p
有錯誤歡迎指正 :-)
============================== Environment ==============================
server : FreeBSD 4.6-STABLE + samba 2.2.4
printer : HP LaserJet 8000/8100 (註一)
clients : Windows 98/Me/XP/2000
這邊我將使用 XP 把 printer 的 driver 上傳至 server.
FreeBSD 上面關於 printer 在 samba 的目錄 :
/home/samba/printers : 印表機 driver 所在點, 請參考 samba 的 doc 瞭解其
下的目錄結構
/home/samba/printers/W32X86 : 放置 for 2000/XP 的 printer driver
/home/samba/printers/WIN40 : 放置 for 95/98/Me 的 printer driver
================================ Prework ================================
# 下載 printer 的 driver, 因為不同的 os 需要不同的 driver,
所以請依照需求下載必要的 driver. 在這裡由於我得在 98/Me/XP/2000 上使用
printer, 因此下載了 for 98/Me, 2000, XP 的 driver, 分別存放在 Windows XP 的
d:\printer\98; d:\printer\2000; d:\printer\XP
記得如果是壓縮檔請解壓縮.
# 如果你知道 printer 的型號最好, 但為了保險起見, 請編輯 driver 目錄下有個
.inf 的檔案, 找到 [Strings] 這個 section, 下面有個 Printer="..."
請將該 name 用筆抄下來, 比如說 Printer="HP LaserJet 8100 Series PCL 6"
其中 "HP LaserJet 8100 Series PCL 6" 就是我的 printer name
# 安裝 samba, 看你要用 ports, package, or whatever you like :)
# 編輯 /etc/printcap, 加入你的 printer.
hp8100:\
:lp=:sh:rp=:mx=0:sd=/var/spool/lpd/hp8100:rm=hp8100.somewhere.on.lan:
hp8000:\
:lp=:sh:rp=:mx=0:sd=/var/spool/lpd/hp8000:rm=hp8000.somewhere.on.lan:
=========================== Setup : (Server 端) =========================
這邊有很多種做法, 以下是對我而言較方便的方法 :)
# 編輯 smb.conf, 在 [global] section 中加入 printer admin = [userid],
其中 [userid] 為你想要使用的管理者 id. 在這邊為了方便起見, 我使用
nobody, 也就是跑 samba 的 userid. 如此一來可以省去不少麻煩, 但為了
安全起見, 上傳好 printer driver 之後最好把這行刪除
# 編輯 smb.conf, 加入 [print$] section. 如此一來便可以利用 XP/2000/NT 的功
能將 printer driver 上傳了
[print$] ; 一定要這樣寫
comment = All Printers
path = /home/samba/printers ; 準備用來上傳 driver 的位置,
; 記得要先建立好 W32X86 & WIN40 目錄
guest ok = Yes
browseable = Yes
read only = Yes ; 設定 read only, 基本上沒用 :p
write list = nobody ; 設定誰可寫入 ? nobody, 也就是在
; 跑 samba 的 user
create mask = 0644
directory mask = 0755
# 最後定義你的 printer
[HP8100] ; 這是在網芳中會出現的 netbios name
comment = HP LaserJet 8100 for 95/98/Me ; 註解
browseable = yes
printable = yes
public = yes
[HP8000]
comment = HP LaserJet 8100 for 2000/XP
public = yes
printable = yes
browseable = yes
# 要注意的是, netbios name 一定要跟 /etc/printcap 中的一樣, 在這邊是
hp8100 & hp8000. 當然你也可以設定為不同的名稱, 然後加入
printer = [printer name]
其中 [printer name] 為你在 /etc/printcap 中定義的 printer name.
當然我不建議那麼做, 因為如果你把 netbios name 設太長, 在 Windows 98
之下看到的 netbios name 會被截去部份字元.
# 如果你不想一個個加入 netbios name, 有一種比較快的方法.
在 [global] section 中使用 load printers = Yes
另外加入 [printers] section :
[printers]
printable = Yes
browseable = Yes
public = Yes
這麼一來會與之前做的效果一樣, 你可以斟酌擇一使用, 在這裡我是用之前的方法.
# 重新啟動 samba, server 的設定先告一段落.
===================== Setup : (Windows XP 上傳 driver) ==================
# 使用 XP 進入 File_Server 的網芳, 點選 印表機.
# 這時會看見一片空白 (其實設定好也不會有東西), 按右鍵選 伺服器內容,
會彈出一個 window, 選驅動程式, 按下新增
# 選擇下一步, 選從磁片安裝, 接著選則 XP driver 的目錄, 選下一步
# 接著出現選擇作業環境的視窗, 把 Intel 的都勾起來吧 :D 請按下一步
# 然後請你確認, 按完成
# 程式會一一詢問其它 os 的 driver 目錄, 就輸入吧.
# 到這邊就算完成了 driver 的上傳, 你可以看看
/home/samba/printers/W32X86 & WIN40 裡面是否多了東西 :)
========================== Setup : (Server 端) ==========================
# 有了 driver 有了 printer 分享了, 剩下來的工作就是把 driver
對映到特定的 printer 上面, 可以利用 rpcclient 來完成
# rpcclient File_Server -U root%secret -c 'setdriver \
"hp8100" "HP LaserJet 8100 Series PCL 6"
這是把 "hp8100" 這一台 printer (netbios name) 對映到
"HP LaserJet 8100 Series PCL 6". 還記得先前抄下來的 printer name 嗎 ?
就是它了 ! 如果出現 Succesfully .... 這樣就代表成功了 :)
# rpcclient 的用法請 man
=========================== Happy Printing ==============================
# 在 Windows 上面安裝網路印表機的方法就不用我教了吧 ? :p
# any questions mail to :