lprm / cancel 都无法取消打印作业

lprm / cancel 都无法取消打印作业

我有 2 个打印作业想要取消:

Tux # lpq
photosmart_7200 is not ready
Rank    Owner   Job     File(s)                         Total Size
1st     unknown 190     unknown                         8192 bytes
2nd     unknown 191     unknown                         8192 bytes

由一些非 root 本地主机用户(但是 lp 和 lpadmin 组的成员)创建,将任何 ASCII 文本通过管道传输到lp。)

然而 :

Tux # lprm -
lprm: Forbidden
Tux # cancel -a
cancel: cancel-job failed: Forbidden

不用说我通过 cups 的浏览器界面得到了相同的结果, /var/log/cups_error.log 说:

E [21/Sep/2022:08:41:10 +0200] [Client 9] Returning HTTP Interdit for Cancel-Job (ipp://localhost/jobs/190) from localhost
E [21/Sep/2022:08:47:00 +0200] [Client 14] Returning HTTP Interdit for Cancel-Job (ipp://localhost/jobs/191) from localhost

这些作业及其 d 文件和关联的控制文件位于 /var/spool/cups 中:

Tux /var/spool/cups # ls -ails
878712 4 -rw------- 1 root lp   1032  6 juin   15:18 c00190
878713 4 -rw------- 1 root lp    940  6 juin   15:18 c00191
878714 4 -rw------- 1 root lp    832  6 juin   15:18 c00192
891424 4 -rw------- 1 root lp    954 17 sept.  22:42 c00193
891442 4 -rw------- 1 root lp    954 17 sept.  22:42 c00194
891435 4 -rw------- 1 root lp    954 17 sept.  22:42 c00195
878708 8 -rw-r----- 1 root lp   7288  6 juin   15:17 d00190-001
878711 8 -rw-r----- 1 root lp   7288  6 juin   15:18 d00191-001
885657 4 drwxrwx--T 2 root lp   4096 29 août  08:32 tmp

在 linux-5.4 下运行 cups-2.4.2(最有可能在运行 cups-2.3.3 时创建的作业)

那么,为什么这些命令实际上不能取消作业,我如何才能礼貌地(避免在假脱机目录中对它们进行 rm 操作)取消这些作业。
另外,能否解释一下这些工作的所有者是如何被举报的“未知“通过lpq字符串控制文件显示有效的用户名?

答案1

好吧,@meuh 的评论指出了一个更广泛的问题,我在 cups 配置文件中进行了更多研究,特别是/etc/cups/cupsd.conf其中定义了有关作业取消的策略:

<Limit … Cancel-Jobs…>
    AuthType Default
    Require @OWNER @SYSTEM
    Order deny,allow
</Limit>

然后查找 @SYSTEM 的定义,可以在 /etc/cups/cups-files.conf 中找到:

# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
# This cannot contain the Group value for security reasons...
SystemGroup lpadmin

默认情况下,SystemGroup 显示为 lpadmin 组!

由于我一直以 root 身份运行取消命令,并且 root 组未在 SystemGroup 列表中列出,并且 root 用户不是 lpadmin 组的成员……我面临的禁止答案只不过是:合乎逻辑。

通过将 root 用户添加到 lpadmin 组解决了该问题。
lpq 现在对于所有者的用户名也更加详细。

相关内容