我有 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 现在对于所有者的用户名也更加详细。