• 2005-09-10

    如何架设Linux打印服务器

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://firehare.blogbus.com/logs/1426706.html

    缺省安装好Ubuntu之后,系统会出于安全考虑对CUPS系统进行限制,主要有以下几点:
    1、不能通过Web界面 http://localhost:631/admin 对CUPS进行Web管理;
    2、不能在其他机器上通过Web界面访问本机的http://localhost:631,以查看打印状态;
    3、不能在其他机器上通过IPP协议来共享本机的打印机。

    对上述三个问题,大家可以按照自己的需要做不同的设置:
    1、造成该限制的原因很简单,由于cupsys用户没有访问/etc/shadow文件的权限,所以它无法识别用户真伪,要解决则很简单,只需要将该用户加入到passwd组中即可。命令如下:
    $sudo adduser cupsys shadow
    另:对打印机有管理权限的组是lpadmin组,所以如果要设立一个对CUPS系统有管理权的用户,只需要将该用户加入到lpadmin组即可,假设该打印管理员是firehare,那么只需要下列命令:
    $sudo adduser firehare lpadmin
    然后输入
    $sudo /etc/init.d/cupsys force-reload
    接下来我们试试在Firefox里输入:http://localhost:631/admin,然后输入超级用户或lpadmin组里的用户及密码均可进入到管理界面中。
    2、造成这一限制的原因有两个:
    首先,由于在/etc/cups/cupsd.conf文件中有一行语句做了限制:
    >Listen 127.0.0.1:631
    这句话的意思很明显就是只在本机环回口上的631端口做监听,那么肯定其它机器是无法对其访问了,所以要将其改成:
    >Port 631
    这样的话,其他机器就可以访问本机的631端口了。
    其次,由于尚未对访问权限进行配置,所以如果这时从其他机器通过FireFox来访问本机的CUPS系统的Web界面时,将会出现无权查看的提示页面。继续编辑cupsd.conf文件:
    >########
    >######## Security Options
    >########
    >
    >Order Deny,Allow
    >Deny From All
    >#Allow From 127.0.0.1
    >Allow From 192.168.0.*

    将127.0.0.1注释掉,并把你要允许访问的网段加进来即可,我这里是192.168.0.0/24网段,如果你的网段比较小,也可以用小点的网段,在cupsd.conf文件中允许以下格式:
    # All
    # None
    # *.domain.com
    # .domain.com
    # host.domain.com
    # nnn.*
    # nnn.nnn.*
    # nnn.nnn.nnn.*
    # nnn.nnn.nnn.nnn
    # nnn.nnn.nnn.nnn/mm
    # nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
    # @LOCAL
    # @IF(name)
    大家可以选择最适合自己的。
    然后别忘了重启服务:
    $sudo /etc/init.d/cupsys force-reload
    再打开FireFox访问试试?是不是可以看到了网页呢?
    如果你还想在其他机器上能够通过Web界面对本机的CUPS进行管理的话,你还可以继续编辑cupsd.conf文件:
    >
    >#
    ># You definitely will want to limit access to the administration functions.
    ># The default configuration requires a local connection from a user who
    ># is a member of the system group to do any admin tasks. You can change
    ># the group name using the SystemGroup directive.
    >#

    >AuthType Basic
    >AuthClass System

    >## Restrict access to local domain
    >Order Deny,Allow
    >Deny From All
    >#Allow From 127.0.0.1
    >Allow From 192.168.0.x

    >#Encryption Required
    >


    下面就是纯理论了!因为没有环境,无法进行测试,不知哪位有条件的兄弟可以帮我做做测试。有什么结果都请贴在后面!!不胜感激!!!
    ==================================

    3、要解决这个问题,首先要能让其他机器找到本机的打印机,如果找都找不到,又如何能够使用呢?由于Ubuntu是将该功能另行放置在 /etc/cups/cupsd-browsing.conf文件中的,原因是为了防止由于升级包文件而将配置覆盖,所以只需将该文件中的浏览Off变成 On就可以了。如下所示:
    >Browsing Off => Browsing On
    虽然在Ubuntu中还有一个/usr/share/cups/enable_browsing脚本来将其设为On,不过我在做测试时却并不能正 常运行,可能是由于/usr/share/cups/browsing_status脚本的原因吧!反正所做的事都一样,我也就没去深究了。然后在 /etc/cups/cupsd.conf文件中设置浏览的广播地址,将本地的关闭,添加192.168.0.255这个网段广播地址:
    >BrowseAddress @LOCAL => #BrowseAddress @LOCAL
    >BrowseAddress 192.168.0.255
    如果你的网段比较小,也可以用小点的网段,在cupsd.conf文件中允许以下格式:
    #BrowseAddress x.y.z.255
    #BrowseAddress x.y.255.255
    #BrowseAddress x.255.255.255
    #BrowseAddress 255.255.255.255
    #BrowseAddress @LOCAL
    #BrowseAddress @IF(name)
    然后设置允许浏览的地址:
    >#BrowseAllow address
    >#BrowseDeny address
    >BrowseAllow 192.168.0.*
    >BrowseDeny all
    >...
    >#BrowseOrder allow,deny
    >#BrowseOrder deny,allow
    >BrowseOrder deny,allow
    保存,然后重启cups
    $sudo /etc/init.d/cupsys force-reload
    这样就应该可以提供服务了吧!
    ===========================
    添加Windows2000或XP机器共享该打印服务器的做法,由于Windows2000或XP都已经内建对IPP协议的支持,所以只须简单地在添加打印机中选添加网络打印机,然后选Internet打印机文本框,输入:
    http://打印服务器IP地址:631/printers/打印机名
    ,然后下一步,安装该打印机的驱动即可!这样的话,也就省了用Samba进行共享,还要起Samba服务的麻烦了!
    而在Linux下则有一个很奇怪的现象,用Linux做客户端来打印的话,用Linux下的推荐的 http://hostname:631/ipp/port1 我没有打印出任何的文档, 而相反用Windows下推荐的方法 http://hostname:631/printers/printer-name 反而可以正常打印,不知有否高人知道为什么,还望不吝赐教!最后祝大家用得开心!!

     


    收藏到:Del.icio.us




    引用

    下面Blog引用了该文:

    评论

  • 开放cupsys用户会不会不安全呀
  • 非常感谢!
  • 不错,照着这个说明很容易的搞定了Ubuntu下共享打印机给Window使用的问题,就是说你的第三步我这里也测试通过了,谢谢了!
  • 有帮助就好,呵呵!
  • 好文章,解决大问题了。

    PS: 回复在页面上方,我一直都没注意 -__-!!