head>第十八章. Linux上的PaperCut NG

第十八章. Linux上的PaperCut NG

目录

安装过程
手动提取
安装步骤
在Linux的打印队列上并入
高级的配置与日志
备份与系统管理
用户目录与鉴定
标准的Unix
Samba/Windows域
定制
Unix打印审批管理客户端命令行Command-Line
安装打印审批管理客户端命令行Command-Line
从Linux服务器移除PaperCut NG
Linux常见问题解答

此章节补充描述了Linux快速启动指南(请查看“快速启动指南(对于Linux)”部分)。它对Linux安装程序、目录的设计和工具提供了深入的说明。

在此章节里实际上是技术方面的信息,它期望有优先经验的读者使用:

安装过程

Linux版本的PaperCut NG是提供一个作为硬盘写预补偿自我安装的程序。安装程序设计了与所有Linux的主要分配共同完成的工作。由于一些安装种类和管理员参数的选择,通常一些配置的指南是有必要的。此节描述了安装程序的详细内容和一些可利用的另外选项可提供给系统管理员。

手动提取

Linux版本的PaperCut NG提供了自我提取、自我安装的存档。存档是用gzip简单的压缩 tar存档,并按设定的脚本标题自我提取。提取完成之后,命名为install的安装脚本开始执行安装程序。一些系统管理员可以像检查存档内容一样,并尽可能的自身优先安装实际的安装程序。自我提取安装器获取了许多命令行参数。将提取存档文件的 -e参数到当前的工作目录准备检查。更多的选项和文件通过--help选项利用。

  Usage: pcng-setup.sh [-e|-i|-l] [-v] [-n] [list ...]
     -e      Extract the files and then exit without installing.
     -i      Install after extracting the files (default).
     -l      List the contents of the archive and exit without extracting.
     -v      Verbose. Print the names of the files as they are extracted.
     list    The list of files to extract."
               

安装步骤

即使主要的安装程序被完成,在没有特权身份下的用户帐户被称为 papercut,大多数管理员将要了解安装程序是什么。主要的步骤概括如下:

提取

第一阶段用安装程序提取存档文件到/tmp或通过一个可变的 TEMDIR环境定义位置 。命令行command-line程序 targunzip都是在这个阶段使用的。

安装

被命名的安装脚本提取完成之后,所谓的install脚本将显示EULA和接受安装请求。之后,脚本将决定安装的位置。这是papercut用户的主目录。主目录通过可变的HOME环境决定或如果没有设置,结果将是 getpwnam()

之后文件将被复制到papercut用户的主目录。当心现有的数据overwrite或配置文件是已经升级过的版本。

许可

确保被默认的安装是安全的,许可适用于关键的文件。以下的应用程序领域是受限制的,仅papercut 用户可以使用:

AreaComments

~/server/server.properties

Contains server configuration including the default admin password.

~/server/data

This directory contains application data including database files. Some of this data may contain sensitive information.

~/server/bin/linux-i686

This directory contains a setuid-root binary. Even though the binary is no use to an end-user or hacker, good security practice stipulates that we should only allow the papercut user access to this directory.

表格 18.1. 安全的应用程序范围

核查许可并通过运行脚本随时安装再运用:

    ~/server/bin/linux-i686/setperms
    ~/providers/print/linux-i686/setperms

防火墙

PaperCut NG应用程序服务器 (pc-app程序)使用端口9191。此端口对基于管理访问、客户端访问和其它服务的浏览器适用。确保了任何防火墙或本地IP过滤软件如:iptables 被设置为允许本地网络通信访问此端口。

导入任务级

一小部分安装程序需要以 root 帐户来运行。任务的导入执行包括:

  • 设置authpam状态作为setuid-root。此状态是用于校验密码的。

  • 安装一个CUPS后端。通过在CUPS库文件/后端目录设置一个系统链接来完成。

  • 设立SYSV风格的启动脚本,即使系统使用此导入程序。通过设置以下的系统链接来完成:

        /etc/init.d/
        /etc/rc3.d/
        /etc/rc5.d/
        and so on...
                            

如果在安装期间管理员决定不运行导入任务级,那么任务可以被执行的设定脚本运行安装:

    ~/server/bin/linux-i686/roottasks
    ~/providers/print/linux-i686/roottasks
                    

选择一个管理员可以查看的脚本和用手动方式更改其需求。

在Linux的打印队列上并入

PaperCut NG能够并入CUPS 和Samba并基于打印队列进行监控。配置和并入的方法在以下有解释说明:

CUPS的配置概要

如果通过CUPS管理和控制打印队列,那么每个打印机上的装置URI就应该被修改以便papercut的终端与打印程序结合。此方法既可以通过CUPS的网络界面完成配置又可以自动编辑CUPS打印机的配置文件。

  1. 打开printers.conf (如:/etc/cups/printers.conf )

  2. 每台打印机的装置URI都使用“papercut:”的前缀。例如:

  3. DeviceURI socket://192.168.1.200:9100

    将变成:

    DeviceURI papercut:socket://192.168.1.200:9100

  4. 重新启动CUPS以便新的配置被检测(如:/etc/init.d/cupsd reload )

CUPS并入的解释说明

CUPS,通常是UNIX打印系统,在Linux服务器上管理打印机是一种最流行的系统。CUPS使用命令链接受筛选并在终端以一个工作流的形式并入。PaperCut NG 衔接着此工作流,在打印任务通过物理意义上的打印机硬件之前便被拦截。

真的CUPS终端通过wrap和proxy完成拦截。CUPS调度PaperCut NG终端的任务程序。如果打印任务被批准,那么打印文档将被送到CUPS的终端。如果打印任务被拒绝,那么打印文档将被删除而不再进行。PaperCut NG的通常在安装期间默认设置为标准安装。

设置PaperCut NG的proxy是一个相对简单的任务。所有的管理员都需要在现有的DeviceURI上使用papercut:的前缀。例如以下的输入:

DeviceURI socket://192.168.1.200:9100

将变成:

DeviceURI papercut:socket://192.168.1.200:9100

打印机将使用PaperCut NG记录第一次的打印事件。

PaperCut NG CUPS体系结构

PaperCut NG的CUPS终端是一个本地的二进制编译。在PaperCut NG文档里涉及了一个Print Provider组件,提供打印事件的信息到应用程序服务器。负责打印任务的分析及将信息传递到应用程序服务器的组件。基于网络服务的指令,通过XML-RPC来传递。这意味着在同一个系统服务器上,应用程序服务器的组件甚至不需要终端。

Samba配置的概要

使用Samba如果打印队列暴露在网络工作站(Samba Website)上,那么不同于CUPS的是只使用一个打印系统(如:BSD,LPRNC,SYSV等),smb.conf需要一些额外的配置。“打印命令”需要使用PaperCut NG命令来代替。

  1. 打开 smb.conf (如:/etc/samba/smb.conf )

  2. 在 [globals]里插入此行:

    打印命令=/home/papercut/providers/print/linux-i686/samba-print-provider -u "%u" -J "%J" -h "%h" -m "%m" -p "%p" -s "%s" -a "[standard print command]" & (重点: 以上信息应该显示在单独的一行,注意最后一行的使用。)

    [standard print command]此命令通常是对打印的调度。以下列出了打印机通常使用的命令的典型实例:

    表格 18.2. 标准的打印命令

    更多有关标准打印命令的信息可在您系统安装的Samba文档中查看。

Samba并入的解释说明

Samba是通常提供文件和打印共享到Windows系统并且是受欢迎的解决方案。一个主要的原因对于它的普及避免了Microsoft Windows服务器许可所需要的花费!

Samba显示了本地设立Linux/Unix打印机作为网络共享的Windows打印机。通过包装纸下面的打印系统来完成 – 通常是CUPS或LPR/LPD。在LPR情况下,Samba调用标准的IP命令行程序执行打印。PaperCut NG通过wrapping或 proxying "print command"进行操作。更多有关Samba与可利用的潜在打印系统是如何操作的信息在Samba文档里。

在Samba配置文件smb.conf里典型的条款是定义了PaperCut NG打印命令将是如何包装的:

 print command=/home/papercut/providers/print/linux-i686/samba-print-provider
    -u "%u" -J "%J" -h "%h" -m "%m" -p "%p" -s "%s" 
    -a "[standard print command]" &

 (重点:上述的信息应该出现在第一行。使用的注意事项在最后一行。)

[standard print command]是在正常的被请求的打印命令里。

%u, %p, 等是Samba的置换变量。这些用诸如:用户名,打印机名等内容来代替,并且通常用于PaperCut NG的报表和日志。

打印机使用PaperCut NG网络界面注册之后,将接收第一份打印工作。

PaperCut NG Samba体系结构

PaperCut NG Samba打印命令包是一个本地的编译执行。PaperCut NG文档涉及Print Provider。它是对分析打印工作和传递应用程序服务器成分信息负责。通过XML-PRC基于网络服务的调用来传递。这就意味着后端甚至不需要在相同的系统主机上传递应用服务器成分。