zoukankan      html  css  js  c++  java
  • 利用samba做打印机共享

    办公室原来用一台跑WIN2K3的破电脑做打印机共享服务,可能是年代久远,系统越来越不稳定,于是决定换成LINUX基于SAMBA做打印共享服务。其间走了不少弯路,在此将配置流程简记于此,希望对大家有所帮助。
    操作系统版本:CENTOS 5.5

    一、打印机安装
    办公室使用的打印机是HP Color LaserJet 1600,翻了一下HP官方站没有找到LINUX驱动支持。于是登录http://www.openprinting.org/printer,查找到推荐的OPEN驱动是foo2hp http://foo2hp.rkkda.com/。不过网站里没有提供下载链接,而是转向到foo2zjs http://foo2zjs.rkkda.com/,上官方论坛看了一下,似乎foo2zjs是foo2hp的升级版,所以兄弟们不要跟着网上那些旧文再到处找foo2hp的源码包了。

    1、驱动安装
    首先确保CUP服务正常开启。
    wget http://foo2zjs.rkkda.com/foo2zjs.tar.gz
    tar zxf foo2zjs.tar.gz
    cd foo2zjs
    以下操作建议以root身份执行,或者用su命令,否则会报错。另外安装前强烈建议看一下INSTALL文档

    make uninstall
    ./getweb 1600     #此步骤参数根据具体打印机型号不同而不同,建议less INSTALL
    make install
    make install-hotplug   #如果是USB接口打印机的话,此步骤执行完后重新拔插一下USB连接线
    make cups

    以上步骤执行完毕后,LINUX下驱动基本OK,INSTALL文档中的后续步骤make test,可以不做。

    2、cup配置
    vi /etc/cups/cupsd.conf
    添加:Listen 0.0.0.0:631

    vi /etc/cups/mime.convs
    取消此行注解 application/octet-stream   application/vnd.cups-raw   0   -

    vi /etc/cups/mime.types
    取消此行注解 application/octet-stream

    /etc/init.d/cups restart    #重启cups服务
    netstat -tunlp | grep '631'    #检查cups的WEB管理器是否正常启动

    访问cups的web管理页面
    elinks http://localhost:631
    选择manage printers,点击Add printer
    在Add New Printer界面里输入打印机的名称和描述(可以随意)
    然后选择打印机的接口,我选择的是USB Printer #1
    之后是选择打印机型号,打印机应该就配好了。这时在打印机详细页里点一下Print Test Page看看是否能正确打印,一切OK后,记得Set as Default。
    退出elinks

    二、samba配置
    1、基本安装配置
    yum install samba
    mkdir /etc/samba/drivers
    mkdir -m 777 /var/spool/samba

    vi /etc/samba/smb.conf    #参数含义就不写了,麻烦自己man smb.conf或者GOOGLE
    [global]
      workgroup = WORKGROUP
      server string =office server
      netbios name =svr01
      display charset=UTF8
      dos charset=cp936
      unix charset=UTF8       
      security = share
      passdb backend = tdbsam
      encrypt passwords=yes       
      load printers = yes
      printcap name = cups
      printing = cups
    [printers]
      comment = All Printers
      path = /var/spool/samba
      browseable = yes
      guest ok =yes
      public=yes
      writable = no
      printable = yes
      create mask = 0700
    [print$]
      comment=printer drivers
      path=/etc/samba/drivers
      browseable=yes
      guest ok=yes
      read only=yes
      write list=root

    编辑结束后执行testparm检查配置文件是否正确。
    重启samba服务,/etc/init.d/smb restart

    2、WINDOWS客户端打印驱动自动安装
    经过上面配置后,WINDOWS客户端就可以找到共享的打印机了,但连接时会要求安装驱动,一两台机器手动装装倒也就算了,20多台机器那就让人受不了了。下面来说说怎么让客户端的驱动自动安装。

    首先到 http://www.cups.org/windows/software.php 下载最新的 CUPS Windows drivers驱动,我下载的是cups-windows-6.0-source.tar.gz,然后解压并安装。

    接下来需要找台WINXP或WIN2K3的机器,到http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows下载并安装最新的PostScript printer drivers for Windows。
    安装完毕,在WINDOWS系统目录搜索下列文件:
    cups6.ini
    cupsps6.dll
    cupsui6.dll
    ps5ui.dll
    pscript5.dll
    pscript.hlp
    pscript.ntf

    如果是Windows 9x/ME的机器还需要:
    adfonts.mfm
    adobeps4.drv
    adobeps4.hlp
    iconlib.dll
    psmon.dll

    把这些文件COPY到LINUX服务器的/usr/share/cups/drivers/目录下

    创建驱动:
    smbpasswd -a root    #此处用户名与smb.conf中[print$]节点中的writer list的值对应
    ifdown eth0
    cupsaddsmb -H localhost -U root -a -v
    /etc/init.d/samba restart
    /etc/init.d/cups restart
    ifup eth0


    至此大功告成,办公室里的WINDOWS客户机可以通过共享的方式连接到LINUX服务器上的打印机,无须用户认证并自动安装打印驱动。

    参考链接:
    http://linux.chinaunix.net/techdoc/net/2007/03/08/951808.shtml
    http://www.enterprisenetworkingplanet.com/netsysm/article.php/10954_3621876_1/Push-Windows-Printer-Drivers-with-CUPS.htm

    lykyl原创,转载请注明出处)
  • 相关阅读:
    TensorFlow从0到1之TensorFlow实现多元线性回归(11)
    TensorFlow从0到1之TensorFlow实现简单线性回归(10)
    TensorFlow从0到1之TensorFlow csv文件读取数据(9)
    TensorFlow从0到1之TensorFlow优化器(8)
    TensorFlow从0到1之TensorFlow损失函数(7)
    TensorFlow从0到1之回归算法(6)
    Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐
    Python爬虫小白入门(五)PhatomJS+Selenium第二篇
    Python爬虫小白入门(四)PhatomJS+Selenium第一篇
    Python爬虫小白入门(三)BeautifulSoup库
  • 原文地址:https://www.cnblogs.com/lykyl/p/2011273.html
Copyright © 2011-2022 走看看