19、Linux 打印系统 CUPS 与 LPRng 配置全解析

Linux 打印系统 CUPS 与 LPRng 配置全解析

1. CUPS 配置

CUPS(通用 Unix 打印系统)的配置文件存放在 /etc/cups 目录下,具体文件及其描述如下表所示:
| Filename | Description |
| — | — |
| classes.conf | 不同打印机类别的配置 |
| client.conf | 指定客户端的特定选项列表 |
| cupsd.conf | 配置 CUPS 服务器 cupsd |
| printers.conf | 打印机配置 |

其中, classes.conf printers.conf client.conf 文件可通过 Web 界面进行管理,而 printers.conf 文件包含已安装的不同打印机的配置信息。当然,你也可以手动编辑这些文件。

1.1 cupsd.conf 文件

CUPS 服务器通过 cupsd.conf 文件进行配置,该配置需手动编辑,无法通过 Web 界面完成。安装 CUPS 时,会安装一个带有注释的 cupsd.conf 文件,其中列出了每个选项,但大多数选项都被注释掉了,注释行以 # 符号开头,每个选项都有详细的文档说明。服务器配置采用 Apache Web 服务器语法,由一组指令组成,部分指令可以将其他指令分组到块中。

1.2 CUPS 指令

某些指令可用于对特定位置设置访问控制,这些位置可以是打印机或资源,如管理工具或假脱机目录。位置控制通过 Location 指令实现, Allow From Deny From 指令可允许或拒绝特定主机的访问。CUPS 支持 Basic Digest 两种认证形式,在 AuthType 指令中指定。 Basic 认证使用用户名和密码,例如使用 Web 界面时,会提示输入 root 用户和 root 用户密码; Digest 认证使用存储在 CUPS /etc/cups/passwd.md5 文件中的用户名和密码信息,使用 MD5 版本的用户名和密码进行认证。 AuthClass 指令指定允许访问的类, System 类包括 root、sys 和 system 用户。以下是 /admin 资源(管理工具)的 Location 指令示例:

<Location /admin>
AuthType Basic
AuthClass System
## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>
2. CUPS 命令行打印客户端

当打印作业放入打印队列后,可使用多种打印客户端管理打印机上的打印作业,如适用于 LPRng 的 Klpq、适用于 CUPS 的 Gnome 打印管理器和 CUPS 打印机配置工具,还可以使用一些命令行打印客户端,对应的 LPRng 也有同名应用程序,包括 lpr lpc lpq lprm 命令。打印机系统切换器可在不同系统间切换,使用这些客户端可以打印文档、列出打印队列、重新排序和删除打印作业。对于网络连接,CUPS 命令提供 -E 加密选项,用于加密通过网络发送的打印作业和打印信息。以下是各种打印机命令的详细说明:
| Printer Management | Description |
| — | — |
| Gnome Print Manager | Gnome 打印队列管理工具(CUPS) |
| CUPS Configuration Tool | 管理和配置 CUPS |
| lpr options file-list | 打印文件;将文件复制到打印机的假脱机目录,并放入打印队列依次打印。
- -P printer :在指定打印机上打印文件。 |
| lpq options | 显示打印队列中的打印作业。
- -P printer :显示指定打印机的队列。
- -l :显示详细列表。 |
| lpstat options | 显示打印机状态。 |
| lprm options printjob-id or printer | 从打印队列中删除打印作业。可通过 lpq 列出的作业编号识别特定打印作业。
- -P printer :删除指定打印机的所有打印作业。 |
| lpc | 管理打印机。在 lpc> 提示符下,可输入命令检查打印机状态并执行其他操作。 |

2.1 lpr 命令

lpr 客户端提交作业, lpd 依次处理并将其放入相应的打印队列。 lpr 以文件名为参数,如果未指定打印机,则使用默认打印机, -P 选项可指定特定打印机。示例如下:

$ lpr preface
$ lpr -P myepson report
2.2 lpc 命令

使用 lpc 可以启用或禁用打印机、重新排序打印队列以及重新执行配置文件。在 shell 提示符下输入 lpc 命令,会出现 lpc> 提示符,在此可输入 lpc 命令管理打印机和重新排序作业。 status 命令后跟打印机名称,可显示打印机是否就绪、有多少打印作业等信息; stop start 命令可停止和启动打印机。示例如下:

# lpc
lpc> status myepson
myepson:
printer is on device 'parallel'
queuing is enabled
printing is enabled
1 entry in spool area
2.3 lpq 和 lpstat 命令

可以使用 lpq lprm 命令管理打印队列。 lpq 命令列出当前打印队列中的打印作业,使用 -P 选项和打印机名称可列出特定打印机的作业,指定用户名可列出该用户的打印作业, -l 选项可显示每个作业的详细信息,若要获取特定作业的信息,可在 lpq 中使用该作业的 ID 号。使用 lpstat 可检查打印机的状态。示例如下:

# lpq
myepson is ready and printing
Rank  Owner  Jobs  File(s)  Total Size
active  chris  1  report  1024
2.4 lprm 命令

lprm 命令可从队列中删除打印作业,在作业打印前将其删除。 lprm 命令的许多选项与 lpq 相同,使用作业编号可删除特定作业,使用 -P 选项和打印机名称可删除指定打印机的所有打印作业,不带选项的 lprm 命令删除当前正在打印的作业。示例如下:

# lprm 1
3. CUPS 管理工具

CUPS 提供了一些命令行管理工具,如 lpadmin lpoptions lpinfo enable disable accept reject enable disable 命令可直接启动和停止打印队列, accept reject 命令可启动和停止特定作业, lpinfo 提供打印机信息, lpoptions 可设置打印选项, lpadmin 可执行添加打印机和更改配置等管理任务。

3.1 lpadmin 命令

lpadmin 命令可用于设置默认打印机或为打印机配置各种选项。使用 -d 选项可指定特定打印机为默认目标,示例如下:

lpadmin -d myepson

使用 -p 选项可指定要设置各种选项的打印机,以下示例设置打印机描述信息:

lpadmin -p myepson -D Epson550

某些选项可控制每个用户的打印作业配额, job-k-limit 设置每个用户允许的作业大小, job-page-limit 设置作业的页面限制, job-quota-period 限制指定时间范围内的作业数量。以下命令为每个用户设置 100 页的页面限制:

lpadmin -p myepson -o job-page-limit=100

用户访问控制通过 -u 选项和允许或拒绝列表确定,允许访问的用户列在 allow: 条目之后,拒绝访问的用户列在 deny: 条目之后。示例如下:

lpadmin -p myepson -u allow:chris deny:aleina,larisa

使用 all none 可允许或拒绝所有用户的访问,也可结合特定用户访问创建例外情况。以下示例允许除 justin 之外的所有用户访问:

lpadmin -p myepson -u allow:all deny:justin
3.2 lpoptions 命令

lpoptions 命令可设置打印选项,控制打印作业的打印方式,例如设置特定打印机使用的颜色或页面格式。所有用户的默认设置由 root 用户在 /etc/cups/lpoptions 文件中维护,每个用户可创建自己的配置,保存到 .lpoptions 文件中。 -l 选项列出打印机的当前选项, -p 选项指定打印机,也可使用 -d 选项设置要使用的默认打印机。示例如下:

lpoptions -p myepson -l

使用 -o 选项和选项名称及值可设置打印机选项,使用 -r 选项可删除打印机选项。例如,要在纸张两面打印,可将 sides 选项设置为 two-sided

lpoptions -p myepson -o sides=two-sided

若要删除该选项,使用 -r

lpoptions -p myepson -r sides

若要显示可用选项列表,可查看 CUPS 软件手册( www.cups.org )中的标准打印选项。

3.3 enable 和 disable 命令

enable 命令启动打印机, disable 命令停止打印机。使用 -c 选项可取消打印机队列中的所有作业,使用 -r 选项可广播一条消息解释关闭原因。示例如下:

disable myepson
3.4 accept 和 reject 命令

accept reject 命令可控制特定打印机的打印队列访问, reject 命令阻止打印机接受作业, accept 命令允许新的打印作业。示例如下:

reject myepson
3.5 lpinfo 命令

lpinfo 命令是一个实用工具,可让你了解系统上可用的 CUPS 设备和驱动程序。使用 -v 选项获取设备信息,使用 -m 选项获取驱动程序信息。示例如下:

lpinfo -m
4. LPRng 打印服务器

LPRng 是 Berkeley 行式打印机守护程序(LPD) lpd 及其相关 lpr 应用程序的增强版本,具有广泛的功能,包括安全措施和访问远程打印机的能力,许多命令与标准 Unix 系统上的 LPD 使用的命令相同。Linux 打印机服务器程序称为 lpd ,即行式打印机守护程序,打印机安装后在 lpd 下运行, lpd 处理本地和远程来源的打印作业,它可管理各种类型的打印机,如激光打印机、喷墨打印机、PostScript 打印机和点阵打印机。LPRng 还提供了一个配套的 IFHP 过滤器包,为 PostScript、PCL 和文本打印机等提供硬件级支持(详见 www.astart.com/lprng )。

4.1 lpd 守护程序

lpd 守护程序在 Linux 系统安装期间进行安装和配置,通过 /etc/rc.d/init.d 目录中的 lpd 启动脚本作为独立进程运行。你可以使用 service 命令对该脚本进行启动、停止和重启操作:

service lpd restart

lpd 使用两个配置文件: lpd.conf lpd.perms lpd.conf 包含一般的 lpd 配置命令, lpd.perms 用于设置规则,可限制对 lpd 服务器的访问,可拒绝特定主机、用户或网络的访问。

4.2 LPRng 打印客户端

可使用多种 LPRng 打印客户端管理打印机上的打印作业,如 Klpq 和一些命令行打印客户端(如 lpr lpq )。Klpq 是一个 KDE 桌面实用程序,称为打印作业管理工具,使用 Klpq 可列出打印机的打印作业、删除打印作业、将打印作业移到队列顶部,还可禁用打印机的打印功能。若要自动更新打印队列列表,可在 Options 菜单中设置更新频率。

4.3 printcap 文件

/etc/printcap 文件保存了连接到系统的每个打印机的条目,打印条目包含打印机的假脱机目录路径名和打印机端口的设备名称等信息。打印条目中的第一个字段是打印机的可能名称列表,这些名称可自行定义,使用 | 符号分隔,在输入各种打印机命令或选项(如 -P 选项)时,使用这些名称来识别打印机,它们也用于许多初始化脚本中的特殊 shell 变量,如 PRINTER 变量。

名称列表后面的字段为打印机设置不同的字段,字段之间用冒号分隔,使用 = 符号赋值。其中, lp 字段设置为打印机使用的设备名称, sd 字段设置为假脱机目录的路径名, if 字段设置为该打印机使用的特定过滤器。部分字段具有布尔值,只需列出字段名而不赋值,表示值为 “true”。你可以在 printcap 手册页( man printcap )中找到完整的 printcap 字段列表。以下是一个 printcap 条目的示例:

myprinter|myepson:\
:sh:\
:ml=0:\
:mx=0:\
:sd=/var/spool/lpd/myprinter:\
:lp=/dev/lp0:\
:lpd_bounce=true:\
:if=/usr/share/printconf/mf_wrapper:

若要安装远程(网络或远程主机连接的)打印机,需在打印机的 /etc/printcap 文件条目中添加远程主机和设备的条目。 :rm 条目标识控制远程打印机的远程主机, :rp 条目指定远程打印机的设备名称。例如,远程打印机位于 rabbit.mytrek.com ,名为 lp1

:rm=rabbit.mytrek.com
:rp=lp1
5. LPRng 配置
5.1 lpd.conf 文件

LPRng 允许对 lpd 服务器进行配置,设置全局默认值或控制打印机访问,只需管理两个配置文件,且这两个文件都有大量注释,发行版通常会提供这两个文件的基本版本,具有丰富的功能,可创建功能强大且复杂的服务器。

lpd 打印服务器的一般配置在 /etc/lpd.conf 文件中处理,可指定适用于所有打印机和打印管理的功能,这些功能更像是默认功能,任何功能都可在打印机的 printcap 条目中被覆盖。安装 LPRng 时, lpd.conf 文件包含大量配置参数,这些参数都被注释掉,以 # 符号开头,每个参数前都有注释说明,条目本身列出了参数的默认值,以 default 开头。例如, connect_timeout 参数的条目如下:

# Purpose: connection timeout for remote printers
# default connect_timeout=10 (INTEGER)

若要创建自己的超时条目,最好在下面添加自己的条目,新条目中没有前面的 # default 字样。此时,远程打印机的连接超时设置为 20,该设置可被打印机的 printcap 文件条目覆盖:

# Purpose: connection timeout for remote printers
# default connect_timeout=10 (INTEGER)
connect_timeout=20

参数也可以是可开启或关闭的标志,关闭标志用 @ 符号表示。例如, allow_user_logging 参数是一个标志,允许用户请求登录信息,默认情况下是关闭的,以下示例将其打开:

# Purpose: allow users to request logging info using lpr -mhost%port
# default allow_user_logging@ (FLAG off)
allow_user_logging
5.2 LPRng 访问控制:lpd.perms 文件

LPRng 提供访问控制规则,用于控制远程用户如何访问打印服务器以及其所控制的打印机。这些规则放在 lpd.perms 文件中,可拒绝特定主机或用户的打印服务。规则由一个操作和一组键组成,键指定要满足的条件,若条件满足,则执行相关操作。每个规则有一个操作和一个或多个键,若有多个键,所有条件都必须满足操作才会执行。例如,指定主机的 IP 地址作为键,还需指定请求的服务类型,如打印或连接请求,操作通常是 ACCEPT REJECT 。键作为标志或变量使用,指定主机时,使用赋值运算符将地址赋给 HOST 键,对于用户使用 USER ,对于 IP 地址使用 IFIP ,服务类型由 SERVICE 键指定,对于打印请求,赋值为 lpd 代码 P 。以下示例指定一个主机作为键,并拒绝来自该地址的任何请求:

REJECT SERVICE=P HOST=192.168.0.57

lpd.perms 文件由一组规则组成,按顺序评估,直到找到匹配项。 DEFAULT 操作规则应是最后一条规则,通常用于接受任何请求,即未被前面规则匹配的任何请求都将被接受。通常,会设置规则拒绝特定请求,如特定主机的请求,大多数请求不会匹配这些规则,会落入 DEFAULT 操作,从而被接受。

通过以上对 CUPS 和 LPRng 打印系统的详细介绍,你可以根据自己的需求进行灵活配置和管理,以满足不同的打印需求。无论是本地打印还是远程打印,都能在这些系统的支持下高效完成。希望这些内容能帮助你更好地理解和使用 Linux 打印系统。

Linux 打印系统 CUPS 与 LPRng 配置全解析

6. 配置流程总结与对比

为了更清晰地了解 CUPS 和 LPRng 的配置过程,下面通过流程图和表格进行总结对比。

6.1 配置流程图
graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B{选择打印系统}:::decision
    B -->|CUPS| C(配置 /etc/cups 目录下文件):::process
    C --> D(使用 CUPS 管理工具和客户端):::process
    B -->|LPRng| E(配置 lpd 守护程序):::process
    E --> F(配置 lpd.conf 和 lpd.perms 文件):::process
    F --> G(使用 LPRng 打印客户端):::process
    D --> H([结束]):::startend
    G --> H
6.2 配置对比表格
打印系统 配置文件 主要管理工具 访问控制方式
CUPS classes.conf、client.conf、cupsd.conf、printers.conf lpadmin、lpoptions、lpinfo、enable、disable、accept、reject Location 指令,Allow From 和 Deny From 控制主机访问,AuthType 控制认证方式
LPRng lpd.conf、lpd.perms lpr、lpc、lpq、lprm lpd.perms 文件设置规则,通过键值对控制主机、用户和服务访问
7. 常见问题及解决方法

在使用 CUPS 和 LPRng 打印系统时,可能会遇到一些常见问题,下面列举并给出解决方法。

7.1 打印作业无法提交
  • 可能原因 :打印机未正确配置、打印队列已满、打印机服务未启动。
  • 解决步骤
    1. 检查打印机配置,使用 lpstat lpc status 命令查看打印机状态。
    2. 若打印队列已满,使用 lprm 命令删除不必要的打印作业。
    3. 确保打印机服务已启动,对于 CUPS 可使用 systemctl start cups ,对于 LPRng 可使用 service lpd start
7.2 远程打印机无法访问
  • 可能原因 :网络连接问题、访问控制规则限制、远程打印机服务未启动。
  • 解决步骤
    1. 检查网络连接,确保本地和远程主机网络畅通。
    2. 查看 CUPS 的 Location 指令或 LPRng 的 lpd.perms 文件,确认是否有访问限制。
    3. 确保远程打印机服务已启动。
7.3 打印质量问题
  • 可能原因 :打印机驱动程序不兼容、打印选项设置错误。
  • 解决步骤
    1. 检查打印机驱动程序,使用 lpinfo -m 查看可用驱动,更新到合适的驱动。
    2. 使用 lpoptions 命令检查和调整打印选项,如纸张大小、分辨率等。
8. 最佳实践建议

为了更好地使用 CUPS 和 LPRng 打印系统,以下是一些最佳实践建议。

8.1 安全配置
  • 对于 CUPS,使用 Digest 认证方式提高安全性,避免使用 Basic 认证时密码明文传输。
  • 在 LPRng 的 lpd.perms 文件中设置严格的访问控制规则,拒绝不必要的主机和用户访问。
8.2 性能优化
  • 定期清理打印队列,避免队列过长影响打印效率。
  • 合理设置打印机的作业配额,防止个别用户占用过多资源。
8.3 备份与恢复
  • 定期备份 CUPS 的 /etc/cups 目录和 LPRng 的 lpd.conf lpd.perms 文件,以便在出现问题时能够快速恢复。
9. 总结

本文详细介绍了 Linux 系统中 CUPS 和 LPRng 两种打印系统的配置和管理方法。通过对配置文件、管理工具、打印客户端的介绍,以及常见问题的解决方法和最佳实践建议,希望能帮助你更好地理解和使用这两种打印系统。

在实际应用中,你可以根据自己的需求选择合适的打印系统。CUPS 具有更友好的 Web 界面和丰富的管理工具,适合大多数用户;LPRng 则提供了强大的安全措施和远程访问能力,适用于对安全性和远程打印有较高要求的场景。

无论你选择哪种打印系统,都可以通过合理的配置和管理,实现高效、稳定的打印服务。希望本文能为你在 Linux 打印系统的使用中提供有价值的参考。

以下是一个简单的总结表格,对比 CUPS 和 LPRng 的特点:
| 特点 | CUPS | LPRng |
| — | — | — |
| 配置文件位置 | /etc/cups | lpd.conf 和 lpd.perms |
| 管理工具 | lpadmin、lpoptions 等 | lpr、lpc 等 |
| 安全措施 | 多种认证方式 | 访问控制规则 |
| 适用场景 | 通用打印需求 | 远程打印和高安全需求 |

通过以上内容,你可以全面了解 Linux 打印系统的配置和管理,根据实际情况进行灵活运用,满足不同的打印需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值