系统管理指南:打印

第 9 章 管理网络上的打印机(任务)

本章介绍如何在使用 IPP、RFC-1179 和 SMB 网络协议时远程管理打印机。有关使用 IPP 计划打印机设置的信息,请参见第 3 章

下面列出了本章中的信息:

有关打印服务和打印机的概述信息,请参见第 1 章

使用 Internet 打印协议时管理网络上的打印机(任务图)

表 9–1 使用 IPP 管理打印机:任务图

任务 

说明 

参考 

在使用 IPP 时检查打印机状态并获取有关打印机的信息。 

在使用 IPP 时,可以通过 lpset 命令检查打印机状态。

如何在使用 IPP 时获取有关打印机的信息

在使用 IPP 时移动远程打印请求。 

在使用 IPP 时,可以通过 lpmove 命令将打印作业移动到新目标。

如何在使用 IPP 时在打印队列之间移动远程打印请求

在使用 IPP 时修改远程打印请求。 

在使用 IPP 时,可以通过 lp 命令修改远程打印请求。

如何在使用 IPP 时修改远程打印请求

在使用 IPP 时共享打印机。 

要在使用 IPP 时共享打印机,需要修改缺省文件配置。 

在使用 IPP 时共享打印机

启用 IPP 验证机制。 

在一些 Oracle Solaris 发行版中,客户机验证是访问某些 uri-path 和操作组合所必需的。

启用 IPP 验证机制

设置使您能够在使用 IPP 时接受打印队列的授权。 

要针对 uri 路径处理操作,正确的验证信息是必需的。

设置使您能够在使用 IPP 时接受打印队列的授权。

将用户添加到 IPP AuthUser 文件。

如果将用户添加到 IPP AuthUser 文件,则需要使用 htpasswd 命令修改 httpd-standalone-ipp.conf 文件。

如何将用户添加到 IPP AuthUser 文件

Procedure如何在使用 IPP 时获取有关打印机的信息

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 要在使用 IPP 时获取有关打印机的信息,可以键入:


    # lpset -a printer-uri-supported=ipp://server/printers/server queue
    
  3. 要查看打印机的返回输出,可以键入:


    # lpstat -p test -l
    

示例 9–1 在使用 IPP 时获取有关打印机的信息


# lpset -a printer-uri-supported=ipp://server/printers/test test
# lpstat -p test -l
printer test disabled since Fri Nov 03 11:48:53 2006. available.
        new printer
        Form mounted:
        Content types: application/postscript
        Description:
        Connection:
        Interface: /usr/lib/lp/model/uri
        PPD: /usr/lib/lp/model/ppd/system/foomatic \
/HP/HP-Color_LaserJet_4600-Postscript.ppd.gz
        On fault: write root
        After fault: continue
        Users allowed:
                (all)
        Forms allowed:
                (none)
        Media supported:
                Letter
                A4
                11x17
                A3
                A5
                B5
                Env10
                EnvC5
                EnvDL
                EnvISOB5
                EnvMonarch
                Executive
                Legal
        Banner required
        Character sets:
                (none)
        Default pitch:
        Default page size:
        Default port setting:
        Options:

Procedure如何在使用 IPP 时在打印队列之间移动远程打印请求

在使用 IPP 时,可以通过 lpmove 命令在打印队列之间远程移动打印作业。可以按请求 ID 或按目标将打印作业移动到新目标。

  1. 使用 IPP 时,如果需要将远程打印请求从一个打印队列移动到另一个打印队列,可以键入以下命令:


    $ lpmove request-id old-destination new-destination
    

示例 9–2 通过请求 ID 移动远程打印请求

此示例显示如何使用请求 ID 将远程打印请求从 luna-185 移动到新的目标打印机 lucille


$ lpmove luna-185 lucille


示例 9–3 通过目标移动远程打印请求

此示例显示如何将来自打印机 luna 的所有打印请求移动到新的目标打印机 lucille


$ lpmove luna luciille

Procedure如何在使用 IPP 时修改远程打印请求

在使用 IPP 时,可以通过 lp 命令执行各种任务。有关使用 lp 命令的更多信息,请参见 lp(1) 手册页。

  1. 使用 lp 命令以及相应的命令选项修改远程打印作业。


    $ lp [-d] [-H] [-i] [-n] [-o]
    
    -d

    指定打印请求的目标。

    -H

    指定特殊处理。按照特殊处理的值来打印请求。

    -i

    指定请求 ID。

    -n

    指定副本数目。将此选项指定为数字。缺省数目是 1。

    -o

    指定打印机相关选项。


示例 9–4 提交以前保留的打印请求

此示例显示如何提交打印机 lucille 以前保留的打印请求。


$ lp -d lucille -H hold /etc/motd


示例 9–5 更改请求的副本数目

此示例显示如何更改请求 ID lucille-233 的请求副本数目。


$ lp -i lucille-233 -n 5


示例 9–6 启用并释放双工功能

此示例显示如何启用并释放指定请求 ID 的双工功能。


$ lp -i lucille-233 -o Duplex=DuplexNoTumble -H resume

在使用 IPP 时共享打印机

如果安装了 Oracle Solaris OS,在添加第一个打印队列后,将在打印服务器上自动启用 IPP 侦听服务。在删除最后一个打印队列后,还将禁用 IPP 侦听服务。Oracle Solaris 10 发行版中的缺省配置是公平允许。如果您遇到安全问题,可能需要修改缺省配置,使其具有更多限制。应该将服务支持的一组未经验证的 IPP 操作限制为破坏性最小的操作。

这些操作包括:

IPP 验证机制

IPP 位于 HTTP 的上面一层。因此,该协议使用内置到 HTTP 和 Apache 软件中的验证机制。在某些 Oracle Solaris 发行版中,操作系统随附的缺省配置没有使用这些验证机制。

例如,客户机系统使用的较常见 printer-uri 形式是:


ipp://server/printers/queue

如果在运行某版本 Windows 的系统上打印,请使用以下语法指定 URI:


http://server:631/printers/queue

启用 IPP 验证机制

要进行验证,可以使用 accept 命令,方法如下:


$ accept ipp://server/admin/queue

例如,要验证服务器 noreaster 上的打印队列 masterly,可以键入:


$ accept ipp://noreaster/admin/masterly

系统将提示您进行验证。

输入正确的验证信息,以便可以针对 uri 路径处理操作。

例如:


system% accept ipp://printing/printers/wspe
accept: ipp://printing/printers/wspe: operation-not-supported
system% accept ipp://printing/admin/wspe
passphrase for user-name to access ipp://printing/admin/wspe:
accept: ipp://printing/admin/wspe: not-authorized
system%

注 –

使用 IPP 的缺省配置时,以下命令会失败,因为没有针对该 uri 路径启用此操作:


$ accept ipp://server/printers/queue

设置使您能够在使用 IPP 时接受打印队列的授权。

要设置用于在使用 IPP 时可接受打印队列的授权,请编辑 /etc/apache/httpd-standalone-ipp.conf 文件。

添加以下项以设置验证:

要查看示例,请参见 /etc/apache/httpd-standalone-ipp.conf 文件。

Procedure 如何将用户添加到 IPP AuthUser 文件

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 使用 htpasswd 命令更新 /etc/apache/httpd-standalone-ipp.conf 文件:


    # /usr/sfw/bin/htpasswd /etc/ipp-users user-name
    
  3. 验证是否添加了用户,检查 /etc/ipp-users 文件。


    # grep user-name /etc/ipp-users
    

使用 RFC-1179 打印协议时管理网络上的打印机(任务图)

表 9–2 使用 RFC–1179 打印协议管理打印机:任务图

任务 

说明 

参考 

使用 RFC-1179 协议层叠打印请求。 

如果使用打印主机来层叠打印请求,则使用此过程可以消除对打印调度程度服务的依赖性。 

如何使用 RFC-1179 协议层叠打印请求

使用 RFC-1179 网络协议时共享打印机。 

在使用 RFC-1179 打印协议时,打印机共享是通过启用和禁用网络侦听服务实现的。 

启用、禁用和重新启动网络打印服务(任务图)

Procedure如何使用 RFC-1179 协议层叠打印请求

RFC-1179 协议侦听程序用 FMRI svc:/application/print/rfc1179 (in.lpd) 表示。缺省情况下,此 FMRI 依赖于打印调度程序服务 svc:/application/print/server,并仅在主机运行该打印调度程序服务时运行。

通常,当打印调度程序未运行时,不需要 RFC-1179 侦听程序。但是,如果使用主机来层叠打印请求,则应该消除对打印调度程序服务的依赖性。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 消除对打印调度程序服务的依赖性。


    # cat <<EOF | svccfg
    >			select application/print/rfc1179
    >			delpg lpsched
    >			end
    >			EOF
    
  3. 消除依赖性后,运行以下命令以使更改立即生效:


    # svcadm refresh application/print/rfc1179
    

使用 SMB 协议管理网络上的打印机

通常,运行 Oracle Solaris OS 的系统会为网络上的各种系统(包括 Windows 系统)提供文件和打印服务。在仅有 Windows 系统的网络中,通常使用 SMB 协议来共享打印机。在 Oracle Solaris OS 中,SMB 的服务器端支持是通过 Samba 提供的,并通过服务管理工具 (Service Management Facility, SMF) 进行管理。此外,客户端打印支持也是通过 Samba 提供的。要访问 Windows 托管的打印机,需要设置本地打印队列。由于 UNIX 打印模型和 Windows 打印模型存在差异,因此需要满足此要求。

SMB 服务由 /etc/sfw/smb.conf 文件的内容进行控制。在系统上安装 Oracle Solaris 软件时,会提供此文件的一个示例 /etc/sfw/smb.conf-example。要使用 SMB 协议共享打印机,必须先启用该服务。

要开始使用此服务,请执行以下步骤: