在 Linux NICE DCV 服务器上配置打印机 - NICE DCV
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Linux NICE DCV 服务器上配置打印机

NICE DCV 允许您打印到本地重定向的打印机或虚拟 NICE DCV 打印机。

如果您使用支持的 Linux 发行版,您必须配置 NICE DCV 服务器以支持打印。

如果您使用 Windows NICE DCV 服务器,则无需进行额外的配置。

在 Linux NICE DCV 服务器上启用打印机重定向
  1. 在您的服务器上安装 CUPS 服务。

    • Amazon Linux 2、RHEL 和 CentOS

      $ sudo yum install cups
    • Ubuntu

      $ sudo apt-get install cups
    • SUSE Linux Enterprise

      $ sudo zypper install cups
  2. dcv 用户添加到打印机管理员组中。打印机管理员组的名称可能因操作系统而异。例如,如果您的打印机管理员组命名为 lpadmin,请运行以下命令:

    $ usermod -a -G lpadmin dcv
  3. 确保在 cups 配置文件的 SystemGroup 参数中引用了打印机管理员组。例如,如果您的打印机管理员组命名为 lpadmin,请使用文本编辑器打开 /etc/cups/cups-files.conf 并查找以下行。

    SystemGroup lpadmin

    如果在配置文件中出现该行,则说明安装已完成。继续下一步。

    如果在配置文件中未出现该行,请按以下格式手动添加该行,然后保存并关闭该文件。

    SystemGroup printer_admin_groupname
  4. (仅限 SUSE Linux Enterprise)确保打印机管理员组有权读取 cups 本地证书。该证书位于以下目录中:/var/run/cups/certs/。例如,如果您的打印机管理员组命名为 lpadmin,请运行以下命令:

    $ sudo chgrp -R lpadmin /var/run/cups/certs/ && chmod g+x /var/run/cups/certs
  5. 重新启动 cups 服务。

    $ sudo systemctl restart cups
  6. 停止重新启动 NICE DCV 服务器。

解决打印机问题

SUSE Linux Enterprise 和 RHEL 8 可能会禁止连接到打印机插槽。如果您运行这两种操作系统之一并遇到打印问题,请检查日志文件以确定这是否为问题原因。

使用文本编辑器打开 /var/log/audit/audit.log,并检查日志是否具有类似下面的行:

type=AVC msg=audit(1617716179.487:504): avc: denied { connectto } for pid=33933 comm="dcvcupsbackend" path=002F636F6D2F6E696365736F6674776172652F6463762F637570732F636F6E736F6C65 scontext=system_u:system_r:cupsd_t:s0-s0:c0.c1023 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=unix_stream_socket permissive=0

如果在日志文件中出现类似的行,则操作系统禁止访问打印机插槽。

要解决该问题,您必须创建一个允许访问打印机插槽的 CUPS 策略。为此,请执行以下步骤:

  1. 创建所需的策略文件。使用常用的文本编辑器创建一个名为 cupsd_policy 的新文件,并添加以下内容。

    #============= cupsd_t ============== allow cupsd_t unconfined_t:unix_stream_socket connectto;
  2. 安装该策略。

    $ ausearch -c 'dcvcupsbackend' --raw | audit2allow -M dcv-printer-policy
    $ semodule -X 300 -i dcv-printer-policy.pp