第 9 章 使用 Samba 打印到使用 Kerberos 验证的 Windows 打印服务器

使用 samba-krb5-printing 包装器,登录到 Red Hat Enterprise Linux (RHEL)的活动目录(AD)用户可以使用 Kerberos 向活动目录(AD)进行身份验证,然后打印到将打印作业转发到 Windows 打印服务器的本地 CUPS 打印服务器。

此配置的好处在于,RHEL 上 CUPS 管理员不需要在配置中存储固定的用户名和密码。CUPS 使用发送打印作业的用户的 Kerberos ticket 验证 AD。

注意

红帽支持只支持从本地系统将打印作业提交到 CUPS,不支持在 Samba 打印服务器上重新共享打印机。

先决条件

  • 要添加到本地 CUPS 实例中的打印机在 AD 打印服务器上是共享的。
  • 您将 RHEL 主机作为 AD 的成员加入。
  • CUPS 安装在 RHEL 上,并且 cups 服务正在运行。
  • 打印机的 PostScript 打印机描述(PPD)文件存储在 /usr/share/cups/model/ 目录中。

流程

  1. 安装 samba-krb5-printingsamba-clientkrb5-workstation 软件包:

    # dnf install samba-krb5-printing samba-client krb5-workstation
  2. 可选: 作为域管理员授权并显示 Windows 打印服务器上共享的打印机列表:

    # smbclient -L win_print_srv.ad.example.com -U administrator@AD_KERBEROS_REALM --use-kerberos=required
    
    	Sharename       Type      Comment
    	---------       ----      -------
    	...
    	Example         Printer   Example
    	...
  3. 可选:显示 CUPS 模型列表以识别打印机的 PPD 名称:

    lpinfo -m
    ...
    samsung.ppd Samsung M267x 287x Series PXL
    ...

    在下一步中添加打印机时,需要 PPD 文件的名称。

  4. 在 CUPS 中添加打印机:

    # lpadmin -p "example_printer" -v smb://win_print_srv.ad.example.com/Example -m samsung.ppd -o auth-info-required=negotiate -E

    该命令使用以下选项:

    • -p printer_name 在 CUPS 中设置打印机的名称。
    • -v URI_to_Windows_printer 将 URI 设置为 Windows 打印机。使用以下格式:smb://host_name/printer_share_name.
    • -m PPD_file 设置打印机使用的 PPD 文件。
    • -o auth-info-required=negotiate 配置 CUPS ,以在将打印作业转发到远程服务器时使用 Kerberos 身份验证。
    • -e 启用打印机,CUPS 接受打印机的作业。

验证

  1. 以 AD 域用户身份登录到 RHEL 主机。
  2. 以 AD 域用户身份进行身份验证:

    # kinit domain_user_name@AD_KERBEROS_REALM
  3. 将文件输出到您添加到本地 CUPS 打印服务器的打印机:

    # lp -d example_printer file