BigAdmin 专题文章:将 IPP 用作首选网络打印协议
将 IPP 用作首选网络打印协议
Juanita Heieck,2006 年 11 月
摘要
本文介绍了 Internet 打印协议 (Internet Printing Protocol, IPP),以及如何将其用作 Solaris 操作系统 (Solaris OS) 中的首选网络打印协议。IPP 支持是最近对 Solaris 打印系统所做的若干更改之一,有助于方便地与 CUPS 和 Microsoft Windows 客户机之间进行互操作。本文还介绍了 IPP 的 FSG OpenPrinting 开放标准打印 API (Print API, PAPI) 实现,其中提供了服务器端和客户端支持、现有 Solaris 客户机打印命令的重新构建,以及使用此技术的提示。
目录
- 简介
- Solaris 打印系统体系结构
- IPP 概览
- Solaris 操作系统中的 IPP 支持 - 深入了解
- 禁用和启用 IPP 网络服务
- 配置 IPP 服务器和客户机数据
- 使用 IPP 进行打印
- Solaris 打印将来有哪些改进功能?
简介
如果您过去以为 Solaris 操作系统中的打印就是指 lp 命令,看来您得再好好想想了。Solaris 的打印功能全力引领发展趋势,并为“开放”潮流制定标准。打印功能在 Solaris 操作系统中的发展过程,几乎就是一个重要且意义非凡的阶段。自 Solaris 10 操作系统开始完成的一些更改包括改进 IPP 服务器端支持、实现 IPP 客户端支持,以及将应用程序放在开放标准打印 API 的上面一层。Solaris 操作系统中的 PAPI 实现可以将打印命令放在与打印服务和协议无关的接口的上面一层。
此外,还在 PAPI 上面重新编写了 Solaris 打印客户机命令实现。借助于当前提供的 PAPI 支持,可以将这些命令实现用于 RFC-1179 和基于 IPP 的服务器。因此,打印客户机(包括应用程序和打印命令本身)可通过打印机/服务器/作业属性支持(从作业提交和查询到打印机),向打印系统查询打印机特性以及请求此信息。所有这些更改旨在使 IPP 成为 Solaris 中的首选网络打印协议。Solaris Express 8/06 发行版中引入了最近所做的一些更改。
有关 Solaris 操作系统中的新增打印功能和打印的详细信息,请参见 System Administration Collection(系统管理文档集)中的《系统管理指南:高级管理》,网址为 http://docs.sun.com/app/docs。
Solaris 打印系统体系结构
以下框图是 Solaris 打印系统体系结构的高级表示形式。

图 1 (单击以放大)
IPP 概览
IPP 是一种功能完善的网络打印协议,该协议很快将成为行业标准。IPP 提供了一组通用的网络打印服务。通过采纳该协议,可以为从 Internet 打印文档提供通用的解决方案。一些系统和打印机供应商之所以使用 IPP,是因为该协议具有发出多种标准请求和从打印客户机系统接收标准响应所需的所有工具。IPP 提供了版本控制、可扩展性和安全性以及一些增强功能(包括在作业和打印机状态检索方面进行的大量改进)。
打印客户机可以使用 IPP 向打印机查询其支持的功能、特性和参数,以便为每个打印作业选择相应的打印机。通过使用 IPP,您可以了解打印机的功能、提交打印作业、确定打印机或打印作业的状态,或者取消以前提交的打印作业。您可以保留、释放、重新启动或修改打印作业,以及在队列之间移动打印作业,接受、拒绝、启用和禁用打印队列。通过使用 IPP,您还可以修改和删除打印机等。
在前端,IPP 被放在 HTTP/1.1 的上面一层。服务器通过 HTTP POST 请求接收 IPP 操作。然后,服务器执行所请求的操作,并通过 HTTP 将响应发回到客户机。这些操作包括但不限于提交和取消打印作业,以及查询打印机和已排入打印机队列的某个或全部打印作业的属性。在后端,IPP 侦听程序通过与后台打印管理器进行通信来执行操作。在 Solaris 操作系统中,此后台打印管理器当前是 lpsched 守护进程。
为什么使用 IPP?
IPP 是一个协议,可以在本地使用该协议以便将打印作业发送到房间内的打印机,或者通过 Internet 将打印作业发送到全国或世界各地的打印机。除此之外,IPP 还是独一无二的,原因在于它还支持访问控制、验证和加密,从而使其成为功能完善又非常安全的打印解决方案。
在 Solaris 操作系统中实现 IPP 的动机有以下三个:
- 虽然 LPD 有线协议中提供的功能也不少,但仅限在基本级别提供功能、可扩展性、安全性以及互操作性。IPP 在功能和特性方面更有效、更丰富,从而使其超过 LPD 有线协议而成为首选协议。
- 大多数提供打印机和打印服务的公司正开始将 IPP 作为其主要打印协议。这样,Sun 即可通过为客户提供相同的打印解决方案,与其他公司展开竞争和进行相互协作。
- 由于 IPP 很快就会成为一种行业通用标准协议,因此,客户可以在 Solaris 服务器与各种其他平台和操作系统之间进行打印。
IPP 与 BSD 协议 (RFC-1179) 之间的比较
BSD 协议成为事实上的标准网络打印协议已有数十年的历史。它最初是为执行一组非常有限的操作而设计的。BSD 协议缺少状态信息的通用表示形式,并且仅限于非常基本的打印作业选项。另一方面,IPP 设计包括很多 BSD 协议所缺少的功能。通过使用 IPP,可以执行一组丰富的操作。这些操作通过使用通用的表示形式和编码来使用一组核心通用属性。此外,该协议还允许在客户机和服务器之间使用加密和验证。最后,IPP 提供了一种方法来扩展操作和属性,同时保持向后兼容性和互操作性。
组件分类
以下是 Solaris 操作系统中提供的 IPP 支持的基本组件。后面将详细说明每一种组件。
|
|
httpd
|
Apache Web 服务器。它提供了一个 HTTP 传输侦听程序,用于在 IANA 注册的 IPP 端口 tcp/631 上侦听 HTTP 请求。一旦收到请求,则会将其传递到 IPP Apache 模块。
|
mod_ipp.so
|
Apache IPP 模块。此 Apache 模块检查客户机的 HTTP 请求,以确定其是否类似于 IPP 请求(application/ipp 的 mime-type 和 HTTP POST 操作)。一旦确定它是 IPP 请求,则会将其传递到 IPP 侦听程序库。此模块还引入和处理了特定于 IPP 的 Apache 配置指令。
|
libipp-listener.so
|
IPP 侦听程序库。此库利用核心 IPP 编组库来解码 IPP 请求,并将其分配给它的一个 IPP 操作实现函数。这些函数将 IPP 请求转换为 PAPI 调用,以便与本地打印服务进行交互。进行处理后,侦听程序库对请求进行编码,并将结果发回到发出请求的客户机。
|
libipp-core.so
|
IPP 编组库对 IPP 字节流进行解码和编码,以通过线路进行接收和传输。
|
libpapi.so
|
PAPI 库为应用程序(如 IPP 侦听服务)提供了一种与打印服务进行交互的方法。
|
|
Solaris 操作系统中的 IPP 支持 - 深入了解
Solaris 中的 IPP 支持可以划分为客户端和服务器端支持。客户端支持和服务器端支持共享一些通用元素以及客户机或服务器操作所特有的一些元素。因此,IPP 客户机和服务器组件共享一个可实现这些通用元素的代码库。
IPP 客户端支持
Solaris 操作系统中的 IPP 客户端支持是在 PAPI 下面实现的。借助于此支持,使用 PAPI 的任何应用程序还可以使用 IPP 以及其他打印服务和协议。
这些应用程序包括:
- GNOME 桌面环境 - 使用
libgnomeprint 的应用程序
- BSD 命令 - BSD UNIX LPD 打印服务命令
- LP 命令 - System V UNIX LP 打印服务命令
lp
lpstat
cancel
lpmove
accept
reject
enable
disable
应用程序的 IPP 客户端支持是通过可装入的模块 psm-ipp.so 提供的。在运行时,将根据打印机 printer-uri 或正在处理的作业装入此模块。
由于 IPP 在 HTTP 传输的上面一层,因此,客户端和服务器端支持都需要具有读取和写入 HTTP 协议的功能。在服务器端,此支持是由 Apache Web 服务器提供的。在客户端,此支持是由 HTTP 库 libhttp-core.so 提供的。
IPP 服务器端支持
IPP 侦听服务提供了一个 IPP 网络协议服务,该服务为打印客户机系统提供一种与运行 IPP 侦听程序的系统上的打印服务进行交互的方法。此侦听程序实现了服务器端 IPP 协议支持,其中包括一组丰富的标准操作和属性。此侦听程序是在 Solaris 中作为 Apache 模块和一系列共享库(包括 IPP 操作和有线支持)实现的。在安装 Solaris 操作系统后,将会安装 IPP 软件。侦听服务是一个 SMF 服务,它依赖于要运行的打印服务。因此,在添加第一个打印队列后,将会在打印服务器上自动启用 IPP。在删除最后一个打印队列后,也会禁用 IPP。
侦听服务实现嵌入在 Apache Web 服务器下面。Web 服务器通过 HTTP POST 请求接收 IPP 操作。接收到 HTTP POST 请求后,会将其传递到 Apache IPP 模块 (mod_ipp.so)。根据配置情况,Apache Web 服务可能会提供一种验证服务,它也可能会在客户机和服务器之间使用加密。侦听服务作为自身的专用 Apache 实例来运行。
IPP 的服务器端支持源于 IPP 模块 mod_ipp。侦听服务使用 Apache Web 服务器,这是因为 Solaris 操作系统已附带提供了 Apache 软件。Apache 模块使用动态共享对象 (Dynamic Shared Object, DSO) 接口以插入到 Web 服务器下面。通过使用 DSO 接口,此模块包含侦听服务的配置支持,并包含 Web 服务器入口点以便为侦听程序提供 HTTP 连接。通过使用这种模块化方法,IPP 支持可以重用 Apache 提供的加密和验证机制。
以下是基本过程:
- 将 IPP 请求从客户机发送到服务器。
- Apache Web 服务器接受此连接。
- Apache Web 服务器随后将连接传递到
mod_ipp。
mod_ipp 将连接和配置数据传递到 libipp-listener。
libipp-listener 使用 lipipp-core 读取请求。
libipp-listener 将请求分发到位于 libipp-listener 中的操作处理程序。
- 操作处理程序将请求转换为 PAPI 调用,然后进行该调用。
- 通过使用
psm-lpsched,将 PAPI 调用转换为特定于打印服务的请求。
- 打印服务响应该请求。
psm-lpsched 命令将响应转换为 PAPI 结果。
libpapi 操作返回到 libipp-listener 操作处理程序。
libipp-listener 操作处理程序将结果传递给分发程序。
libipp-listener 分发程序使用 libipp-core 库将结果写入到客户机。
- 分发程序返回
mod_ipp 入口点的返回内容。
IPP 库
IPP 侦听服务库 libipp-listener 是进行大量协议请求处理的位置。该库使用核心 IPP 库 libipp-core.so 读取和验证请求。在验证请求后,会将请求转换为一系列客户机 API 调用。然后,使用核心 IPP 库将这些调用的结果转换为相应的 IPP 响应。Web 服务器会将响应返回到客户机系统。
注意:侦听服务库的接口是一个特定于 IPP 服务器端实现的项目专用接口。
客户机和服务器操作之间共享 IPP 核心库。IPP 核心库 libipp-core.so 包含一些用于读取和写入协议请求和响应的例程。该库将在标准二进制表示形式和一组通用数据结构之间转换 IPP 请求和响应数据。从根本上讲,此通用数据表示形式用于将请求转换为与打印服务无关的表示形式,或者从该表示形式进行转换,并通过通用打印接口 libpapi.so 传递此通用数据表示形式。由于客户端和服务器端 IPP 支持都必须执行此功能,因此,客户机和服务器共享此组件。
PAPI 库为应用程序提供了一种与打印服务无关的方法,以便与打印服务或协议进行交互。在本例中,该库为 Apache IPP 侦听服务提供一种与本地 LP 服务进行交互的方法。它根据 printers.conf 配置数据库中存储的客户端队列配置数据,确定要与之进行交互的打印服务。
lpsched 支持
psm-lpsched 命令提供与打印服务无关的 PAPI 表示形式和 LP 后台打印管理器 lpsched 之间的转换。此命令提取传递到各种 PAPI 函数的 PAPI 属性,并将这些属性转换为数据的内部 lpsched 表示形式。然后,psm-lpsched 命令联系 lpsched 命令以执行请求的操作。执行后,psm-lpsched 将结果转换回与打印服务无关的 PAPI 表示形式,并将这些结果返回到调用方。
LP 后台打印管理器 (lpsched) 提供假脱机服务、将作业数据转换为打印机支持的格式以及将作业数据传输到物理打印机。
启用和禁用 IPP 网络服务
Solaris 操作系统附带提供了一个缺省的 Apache httpd 配置文件,可以使用该文件来启动专用于侦听 IPP 请求的 httpd 实例。IPP 侦听程序中还包含一个用于描述 application/print/ipp-listener 服务的 SMF 清单。在安装后,此清单将导入到 SMF 系统信息库中,并在启动 LP 服务 (application/print/server) 时自动启动。通过使用 SMF svcadm 命令,您可以启用、禁用和重新启动 IPP 网络服务。
在进行配置更改后,您需要重新启动该服务以装入新配置。
注:您必须是超级用户或等效用户才能运行这些命令。
启用 IPP 网络服务
要启用 IPP 网络服务,请键入:
# svcadm enable application/print/ipp-listener
要启用 rfc1179 网络服务,请键入:
# svcadm enable application/print/rfc1179
禁用 IPP 网络服务
如果不想在网络上共享打印机,则可以禁用 IPP 网络服务。
要禁用 IPP 网络服务,请键入:
# svcadm disable application/print/ipp-listener
要禁用 rfc1179 网络服务,请键入:
# svcadm disable application/print/rfc1179
重新启动 IPP 网络服务
要重新启动 IPP 网络服务,请键入:
# svcadm restart application/print/ipp-listener
要重新启动 rfc1179 网络服务,请键入:
# svcadm restart application/print/rfc1179
配置 IPP 服务器和客户机数据
IPP 侦听服务为打印客户机系统提供了一种使用 IPP 协议与打印服务进行交互的方法。此协议包含一组丰富的标准操作和属性。它是在 Solaris 中作为 Apache 模块和一系列共享库(包括 IPP 操作和有线支持)实现的。
由于侦听服务包含通过 SMF 管理的专用 Apache Web 服务器实例,因此,您可以通过使用 svcadm 命令来启用和禁用该服务。所使用的特定 SMF 服务是 svc:/application/print/ipp-listener。此 Web 服务器实例的 Apache 配置作为 LP 打印服务用户运行,它提供了支持所有现有 IPP 操作所需的足够权限,但仅限对特定于打印服务的资源进行访问。还要注意的一点是,侦听服务作为自身的 Web 服务器实例来运行,此实例是专门为支持 IPP 而配置的。这旨在将潜在的安全风险降到最低。
请注意,如果进行任何配置更改,您需要重新启动该服务以装入新配置。
Apache 配置文件
IPP 侦听服务配置文件 /etc/apache/httpd-standalone-ipp.conf 与任何常规 Apache 1.3 配置文件类似。该配置文件中包含您要使用的任何 Apache 1.3 配置指令。从 Solaris 9 10/04 开始一直到 Solaris 10 操作系统,缺省配置包括以下功能:
- 侦听端口 631
- 装入最小的一组 Apache 模块
- 在
/printers/ 路径 (ipp://server/printers/) 下启用所有支持的 IPP 操作,而无需进行验证
为 /printers/ 启用的缺省操作仅限于一组具有较小安全风险的操作。但是,所有操作都在 /admin/ 路径 (ipp://server/admin/) 下启用,并且需要进行基本验证。
下表说明了可从中选择的 mod_ipp Apache 配置选项。
|
|
ipp-conformance
|
选择协议检查级别;缺省为自动,它提供最大限度的客户机交互。 |
ipp-operation
|
为多个 IPP 操作提供了有选择性地启用或禁用 IPP 操作支持的功能。 |
ipp-default-user
|
选择与本地打印服务联系时使用的用户名。缺省为 lp 打印用户,它可启用功能更强的代理。 |
ipp-default-service
|
选择将请求定向到的缺省打印服务。缺省值为 lpsched,当前仅针对 lpsched 进行了测试。 |
|
下表说明了 Apache Web 服务器配置的一致性检查类型。
使用的语法为:
ipp-conformance value
|
|
自动 |
仅检查协议侦听程序是否支持所请求的操作。(缺省) |
1.0 |
检查请求是否符合 IPP/1.0 规范。 |
1.1 |
检查请求是否符合 IPP/1.1 规范。 |
|
下表说明了 Apache Web 服务器配置的 IPP 操作关键字。
|
|
All
|
此关键字用于代替某个操作。此关键字用于表示已选择 mod_ipp 支持的所有操作。 |
Required
|
此关键字用于代替某个操作。此关键字用于表示已选定 RFC2911 中定义的所有必需操作,其中包括以下内容:print-job、cancel-job、get-job-attributes、get-jobs 和 get-printer-attributes。 |
print-job
|
客户机要提交一个仅包含单个文档的打印作业。文档数据将随请求一起发送。 |
print-uri
|
不支持 |
validate-job
|
在提交打印作业之前,客户机要验证调度程序能否处理打印作业。 |
create-job
|
客户机要提交一个包含多个文档的打印作业。文档是使用 send-document 和 send-uri 操作发送的。 |
send-document
|
客户机要将文档添加到使用 print-job 操作创建的打印作业中。文档数据将随请求一起发送。 |
send-uri
|
不支持 |
cancel-job
|
客户机要取消打印作业。 |
get-job-attributes
|
客户机要收集有关打印作业的信息。 |
get-jobs
|
客户机要收集特定打印队列中打印作业的列表。 |
get-printer-attributes
|
客户机要收集有关特定打印队列的信息。 |
hold-job
|
客户机要保留特定打印作业。 |
release-job
|
客户机要释放特定打印作业。 |
restart-job
|
客户机要重新启动特定打印作业。 |
pause-printer
|
客户机要暂停(禁用)特定打印队列。此操作将停止处理队列中的打印请求。请注意,此操作不会禁止队列接受作业。 |
resume-printer
|
客户机要恢复(启用)处理特定打印队列中的作业。 |
purge-jobs
|
客户机要删除特定打印队列中的所有作业。 |
set-printer-attributes
|
创建或修改打印机属性。 |
set-job-attributes
|
修改现有打印作业的属性。 |
enable-printer
|
恢复(接受)将打印作业排入队列。 |
disable-printer
|
禁止(拒绝)将打印作业排入队列。 |
cups-get-default
|
检索打印服务的缺省目标。 |
cups-get-printers
|
枚举通过打印服务提供的所有打印机。 |
cups-get-classes
|
枚举通过打印服务提供的所有类。 |
cups-accept-jobs
|
特定于 CUPS 的 Enable-printer 等效项。 |
cups-reject-jobs
|
特定于 CUPS 的 Disable-printer 等效项。 |
cups-move-jobs
|
在相同打印服务的队列之间移动作业。 |
|
以下是包含注释的 Apache 配置文件示例:
if mod_ipp is loaded User lp run as "lp"
URI: ipp://{host]/printers/{queue}
SetHandler application/ipp use mod_ipp for this location
ipp-conformance strict enable strict protocol checking (default)
ipp-operation all enable enable all supported operations
配置 /etc/printers.conf 文件
借助于 PAPI 支持,当打印机数据库中缺少 printer-uri-supported 值时,可以将 bsdaddr 值 (server,q) 转换为其等效的 printer-uri-supported 值 (lpd://server/printers/q)。但是,在某些情况下(例如,存在多种不同的客户机系统并且队列位于支持 IPP 的服务器上时),您可能需要手动添加此配置数据部分。
要添加配置数据,请使用文本编辑器将以下信息添加到客户机系统的 /etc/printers.conf 文件中:
/etc/printers.conf:queue: \
:bsdaddr=server,queue,Solaris: \
:printer-uri-supported=ipp\://server/printers/queue:
重新启动 IPP 侦听程序以使更改生效。
使用 IPP 进行打印
如果服务器至少运行 Solaris 9 10/04 操作系统或使用 CUPS 服务器,则在使用 IPP 与这些服务器进行通信时,lpstat 将提供有关远程打印队列(和作业)及其功能的详细信息。
例如:
# lpset -a printer-uri-supported=lpd://server/printers/test test
# lpstat -p test -l
printer test disabled since Fri Nov 03 11:43:30 2006. available.
Warning: test is down: new printer
Form mounted:
Content types:
Description:
Connection:
Interface:
After fault: continue
Users allowed:
(all)
Forms allowed:
(none)
Media supported:
(none)
Banner required
Character sets:
(none)
Default pitch:
Default page size:
Default port setting:
Options:
# 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:
在使用 IPP 时,您可以使用正确授权接受、拒绝、启用和禁用远程打印队列。请参见设置授权以使您能够在使用 IPP 时接受打印队列部分。
在使用 IPP 时,您可以在打印服务器上的打印队列之间远程移动作业。
例如:
$ lpmove {request-id} {new-destination}
$ lpmove {old-destination} {new-destination}
在使用 IPP 时,您可以远程修改打印作业。
以下是一些其他示例:
提交保留的作业:
$ lp -d {destination} -H hold /etc/motd
更改份数:
$ lp -i {request-id} -n 5
启用双面打印并将其释放以进行打印:
$ lp -i {request-id} -o Duplex=DuplexNoTumble -H resume
我如何使用 IPP 来共享打印机?
安装 Solaris 操作系统时,将在添加第一个打印队列时在打印服务器上自动启用 IPP 侦听服务。在删除最后一个打印队列时也会禁用该服务。从 Solaris 9 10/04 发行版本开始一直到 Solaris 10 操作系统,缺省配置具有非常大的灵活性。如果担心人为破坏问题,您可能需要修改缺省配置以使其具有更大的限制。应该将服务支持的这组未经验证的 IPP 操作集限制为破坏性最小的操作。
这些操作包括:
print-job
validate-job
create-job
get-jobs
get-printer-attributes
send-document
cancel-job
get-job-attributes
cups-get-default
cups-get-printers
cups-get-classes
cups-move-job
我能否从 Solaris 打印管理器中选择 IPP?
目前,使用 Solaris 打印管理器添加对远程打印队列的访问权限时,无法选择 IPP。不久将会在 Solaris Express 中提供此功能,当时机成熟时,会将其移植回 Solaris 10。当 Solaris 打印管理器中提供此功能时,如果确定打印服务支持 IPP,则会自动选择 IPP。错误 6488443 说明了此问题和解决方案。
验证机制
IPP 位于 HTTP 的上面一层。因此,它使用 HTTP(和 Apache)内置的验证机制。Solaris 中附带提供的缺省配置不使用这些验证机制。从 Solaris 9 10/04 发行版开始一直到 Solaris 10 和 Solaris Express 发行版,需要进行客户机验证以访问某些 uri-path 和操作组合。
例如,客户机系统使用的较常见 printer-uri 形式是:
ipp://server/printers/queue
要在 Microsoft Windows 系统上进行打印,您需要使用以下网址指定 URI:
http://server:631/printers/queue
设置授权以使您能够在使用 IPP 时接受打印队列
要设置授权以便在使用 IPP 时接受打印队列,请编辑 /etc/apache/httpd-standalone-ipp.conf 文件。
要设置验证,请添加以下条目:
AuthType
AuthName
AuthUserFile
要查看示例,请参见 /etc/apache/httpd-standalone-ipp.conf 文件。
如果至少运行 Solaris Express 10/06 发行版,则 /printers 路径将启用以下操作:
print-job
validate-job
create-job
get-jobs
get-printer-attributes
send-document
cancel-job
get-job-attributes
cups-get-default
cups-get-printers
cups-get-classes
cups-move-job
启用验证机制
使用缺省配置时,以下命令将会失败,因为没有为该 uri 路径启用此操作:
$ accept ipp://server/printers/queue
要进行验证,请键入:
$ accept ipp://server/admin/queue
系统将提示您进行验证。
输入正确的验证信息以启用对 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%
将用户添加到 AuthUser 文件
要将用户添加到 AuthUser 文件,请键入:
# /usr/sfw/bin/htpasswd /etc/ipp-users user-name
要验证是否添加了用户,请检查 /etc/ipp-users 文件。
# grep user-name /etc/ipp-users
Solaris 打印将来有哪些改进功能?
我们目前正在进行一些其他的研究工作,以解决具有本地打印机的高移动性系统中所存在的更紧迫的问题。
以下是旨在实现此目标的项目列表中的一些项目。
PPD 管理:当前实现在 printmgr 中使用 PPD 文件时,它依靠缓存来列出和显示支持的打印机制造商、模型和驱动程序。缓存是为提高性能而创建的,因为使用 GUI 读取 2800 多个压缩的 PPD 文件需要很长时间,任何用户都没有耐心等待这一过程完成。缓存目前是静态的,它是针对随附提供的 PPD 文件而构建的。很多人都表示希望使用一种工具,查找其他 PPD 文件并将其安装到缓存中。此项目的目标就是开发出这样的工具。
Presto(自动打印配置):此项目的目标是提高 Solaris 可访问性(具体说来是指打印服务),即自动(或尽可能自动)查找直接连接的打印机、网络连接的打印机以及远程服务的打印机,并配置对这些打印机的访问权限。
您可以在 http:/sf.net/projects/openprinting 中找到有关 OpenPrinting 的详细信息。
要了解有关 OpenSolaris 打印社区和正在进行的项目的详细信息,请访问 http://www.opensolaris.org/os/community/printing/。
|