![OSX:EPSON 打印机由 CUPS 控制时出现故障](https://linux22.com/image/658719/OSX%EF%BC%9AEPSON%20%E6%89%93%E5%8D%B0%E6%9C%BA%E7%94%B1%20CUPS%20%E6%8E%A7%E5%88%B6%E6%97%B6%E5%87%BA%E7%8E%B0%E6%95%85%E9%9A%9C.png)
我开发了一个应用程序,用于控制特定用户对打印机的访问。我使用 CUPS 和 lpadmin 命令来实现这一点
lpadmin -u allow:"+PRINT_USER_NAME+" -p "+printerName
lpadmin -u deny:"+PRINT_USER_NAME+" -p "+printerName
此命令似乎对所有打印机都有效,但这款 EPSON Stylus Pro 9800 打印机除外。即使允许用户打印,此错误消息也会出现在队列中
/Library/Printers/EPSON/InkjetPrinter2/Filter/rastertoescpII.app/Contents/MacOS/rastertoescpII failed
现在到了关键点,我认为这是关键。当用户被允许打印时,CUPS 控制面板会显示为允许,如下所示
但是,如果我将该用户从“允许和阻止”列表中完全删除,本质上就是说允许该用户打印,那么一切都会正常。因此,只有当用户位于 CUPS 控制的“允许”列表中时,才会出现错误消息。
所以我能想到两个选择:
1) 弄清楚为什么使用 CUPS 进行访问控制会导致此特定打印机出现此问题。
2) 了解如何(使用命令行)在不使用命令的情况下将用户从拒绝列表中删除lpadmin -u allow
。这应该会使该用户不再位于任何 CUPS 访问控制列表中,事实证明这种方法是有效的。
选项 #2 似乎是最简单的选项。请帮忙?
答案1
弄清楚了,当使用选项时,使用命令
lpadmin -u allow:all -p "+printerName
这实际上清除了批准和拒绝端的 CUPS 访问控制列表,从而给了我想要的结果。不过我很好奇为什么会发生这种情况。