[Linux]SAMBA共享打印機

1、samba簡介php

這裏要提到的Samba可不是桑巴舞。Samba是一款能夠在Linux和Windows之間經過SMB/CIFS(Server Message Block/Common Internet File System)共享文件和打印機的開源/免費套件。[1][2]ios

2、背景web

我須要將打印機共享給辦公室其餘用戶。考慮到其餘用戶都是windows,且有時我也須要使用windows操做系統。所以使用ipp網絡共享並不理想。故選擇了Samba。windows

環境:Windows 7 + Fedora 19雙系統。HP M1136MFP一體機。瀏覽器

因爲是我的電腦,爲了使用方便我已經關閉(disabled)了SELinux安全

我想實現的最終目標是,不論我是進入本機的windows系統仍是Fedora 19,局域網其餘用戶都可以使用共享打印機。網絡

3、過程測試

一、首先安裝打印機驅動。M1136MFP的驅動在HP Linux Imaging and Printing網站有[3]。而Fedora19的官方軟件源已經收錄了該軟件,能夠經過yum在線安裝網站

sudo yum install hplip hplip-gui

安裝完成後執行 hp-setup,將彈出嚮導。按照嚮導依次執行。ui

我在安裝過程當中發現老是在找到硬件後發生卡頓,ps了一下看到有一個下載hplip_web.conf文件的事件。推測是該下載失敗。手動複製地址到瀏覽器中,發現確實不能訪問。所以我首先經過web代理將文件抓取到本地。而後將文件放入本地http的對應目錄中,修改了/etc/hosts將程序所訪問的域名使其指向我本地的http,從而解決了這個問題。

此後過程當中,系統下載插件列表一樣失敗。而我使用上述方法發現雖然插件列表(plugin.conf)可以下載了,但不能下載插件。所以我手動下載了插件列表並從該配置文件中尋找到爲所使用版本的plugin文件進行下載,手動安裝並經過了安裝嚮導。

二、安裝samba

Fedora 19 的源中收錄了samba 4.0,一樣可使用yum直接安裝

sudo yum install samba

安裝完成以後,修改samba配置文件/etc/samba/smb.conf
其中,在全局設置[global]部分找到如下行並修改
workgroup = WORKGROUP #配置工做組名稱。默認狀況下沒有加入域的windows 7計算機工做組爲WORKGROUP
netbios name = ZSUN-702 #配置NetBIOS 名稱,即在windows共享中看到的計算機名
hosts allow = 192.168.130. #配置容許訪問的地址。最後一段不填表示容許任意值,我這兒就是192.168.130.1-192.168.130.254
security = user #安全模式爲user。注:samba4.0不容許public
server role = standalone server
map to guest = Bad User #此選項將訪客用戶影射爲nobody
load printers = yes
printcap name = cups
disable spoolss = No
cups options = raw
use client driver = yes #使用客戶端的驅動

在[printers]部分修改如下內容

browseable = yes
guest ok = yes
writable = yes
printable = yes
printer name = m1136mfp #後臺使用的打印機名稱

3.啓動samba相關服務

sudo systemctl enable {s,n}mb.service
sudo systemctl start {s,n}mb

4.修改防火牆設置

sudo firewall-cmd --add-service samba
sudo firewall-cmd --permanent --add-service samba

固然,也可使用圖形界面的"防火牆"啓用samba

完成了上述步驟就能夠測試了。

4、使用同名Windows共享發現的一點問題

因爲個人電腦是先作了Windows打印機共享再作的同名的samba共享打印機,部分用戶在我作完windows打印機共享以後就進行了鏈接打印了材料。完成Linux的配置後我偶然發現,此前鏈接個人Windows共享打印機的人不能打印到個人samba。而此前若是鏈接的samba,當我重啓到Windows後仍然能夠打印。

最初我很是費解。連續調試了兩天後我發現,添加個人Windows共享的人發送任務時,有一條錯誤發生,「 Unable to print file to HP LaserJet Professional M1136 MFP - client-error-not-found」,仔細查了下日誌,還發現一條「 Unable to get jobs for ipp://localhost/printers/HP LaserJet Professional M1136 MFP - client-error-not-found」。後來理解了,HP LaserJet Professional M1136 MFP是個人打印機在windows下的打印機名稱。添加了個人Windows打印機的人雖然看起來添加的是M1136MFP這個共享,可是後臺仍是向「HP LaserJet Professional M1136 MFP」發送打印任務。而在Fedora 19下個人打印機名就叫M1136MFP,致使此部分人在我使用Linux時不能打印到個人samba。通過嘗試,刪掉從Windows添加的打印機,在我使用Fedora時從新添加打印機就能夠解決這個問題了。這是Samba與Windows共享的一點差別?仍是能夠經過配置解決?若是有知道的還請高人指點!

[1] http://wiki.samba.org/index.php/Main_Page

[2] http://zh.wikipedia.org/wiki/Samba

[3] http://hplipopensource.com

相關文章
相關標籤/搜索