https://docs.huihoo.com/solaris/10/simplified-chinese/html/820-5488/printconcept-42.html#scrolltoc
本节介绍此 Oracle Solaris 发行版中新增的打印功能和更改的打印功能。
使用打印命令的特权要求
由于在 Oracle Solaris 发行版中设计了开放标准打印 API (Print API, PAPI) 实现,因此要与打印服务交互,不再需要提升的特权来运行应用程序、工具包和打印命令。
因此,以下打印命令不再是安装的 SUID 根:
-
/usr/bin/lp
-
/usr/bin/lpstat
-
/usr/bin/cancel
-
/usr/bin/lpmove
-
/usr/{ucb|bin}/lpr
-
/usr/{ucb|bin}lpq
-
/usr/{ucb|bin}/lprm
-
/usr/lib/print/printd
以前,上述命令是安装的 SUID root,因为这些命令需要提升的特权才能实现以下目的:
-
打开保留端口
-
分配连续的作业 ID 号
-
在 /var/spool/print 目录中处理文件
此功能现在已在小型帮助应用程序 /usr/lib/print/lpd-port 中进行了本地化。因此,任何使用 RFC-1179 PAPI 支持的应用程序不再需要提升的特权。lpd-port 帮助应用程序包含在保留端口上传递 RFC-1179 协议请求以及分配连续的作业 ID 号所需的最低支持。尽管帮助应用程序是安装的 SUID 根,但除非需要提升的特权,否则所有提升的特权都会被放弃。如有必要,会为必需的操作提升特权,然后再永久放弃提升的特权(如果不再需要提升的特权)。在 Oracle Solaris 发行版中,此过程是通过使用特权来完成的。在其他平台上,此过程是通过使用 setuid、seteuid 或 setreuid 函数来完成的。
如果您不希望在网络上共享本地打印机,则可以安全地禁用打印网络侦听程序。如果您运行的是 Oracle Solaris 发行版或通用 UNIX 打印系统 (Common UNIX Printing System, CUPS) 服务器,则在使用 Inernet 打印协议 (Internet Printing Protocol, IPP) 与这些服务器通信时,lpstat 命令可提供有关远程打印队列和打印作业及其功能的更多信息。
如果 IPP 正在使用中而且具有正确的授权,则可以对远程打印队列和打印作业执行以下操作:
-
accept
-
reject
-
enable
-
disable
-
move job
-
modify job
此外,如果 IPP 正在使用中,您现在还可以在打印服务器上的队列之间移动打印请求,并远程修改打印请求。
有关更多信息,请参见 privileges(5) 手册页。有关逐步操作过程,请参见使用 Internet 打印协议时管理网络上的打印机(任务列表)。
PPD 文件管理实用程序
Solaris 10 5/08:PPD 文件管理器 /usr/sbin/ppdmgr 是一个实用程序,可管理在打印子系统中使用的 PostScript 打印机描述 (PostScript Printer Description, PPD) 文件。如果使用 ppdmgr 实用程序或带有 -n 选项的 lpadmin 命令将 PPD 文件添加到系统,则会自动更新 PPD 文件信息的高速缓存。此高速缓存由 Oracle Solaris Print Manager 使用。
有关更多信息,请参见使用 PPD 文件管理实用程序管理 PPD 文件(任务列表)和 ppdmgr(1M) 手册页。
版权所有 © 2006, 2011, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |