我build立了一个Fedora 10服务器,我想从三个Windows Vista和两个XP工作站打印到一个连接的打印机。
经过多次手动阅读,我得到了这种情况:
罪犯是来自Vista商业工作站的IE7(和IE8)。 每次从该应用程序在该特定工作站上启动打印作业时,我都会在CUPS日志中看到“拒绝访问”错误。 从其他工作站的IE打印工作。 (WTF?!)
我目前的解决方法是首先打印到PDF文件,然后从同一工作站的Adobe Reader打印此PDF。
第二个问题是,我没有太多的Fedora / Linux的经验,所以这可能是一个noob问题。 对不起,如果是这样的话。
我没有使用Samba进行打印,我只是无法得到它的工作。 我使用的CUPS没有身份validation,即每个人都可以打印。 在工作站上,我将打印机添加为“networking打印机”,提供此URL https://myserver:631/printers/myprinter
编辑:我更新到Fedora 11,问题依然存在…
编辑2:一些更多的信息:
问题可能是发送到打印机的数据的格式。 您是否在Windows工作站上使用本地打印机驱动程序? 如果是这样,则可能需要启用“原始”打印,即将工作站的原始二进制打印代码发送到打印机。
您可能需要编辑cupsconfiguration文件并取消注释application/octet-stream以启用原始打印。 我不确定这是什么安全分歧。
另一件可能或可能不适用于您的工作是使用Windows客户端上的通用postscript驱动程序将打印机设置为postscript打印机。 但是,我很less得到这个工作正常。
你怎么暴露打印机…通过Samba我承担? 正如Shiny先生和New说的那样,您可能希望将打印机暴露为“原始”打印机,允许Windows设备使用正常的驱动程序与打印机通信。 这就是我一直将打印机从Linux服务器暴露给Windows客户端的方式。
为了debugging,你需要查看Samba日志以及CUPS日志。 首先检查Samba日志,看看是否可以看到从Windows机器到打印机的访问。 同时检查CUPS日志。 在任何一组日志中查找错误。
如果你启用了selinux,那么为了testing目的只执行命令:
setenforce permissive
完成后,重新启动Samba和CUPS并尝试访问。 如果这有所作为,那么您可能需要查看selinux审计日志以更改其中的某些权限。 假设你通常在执行模式下使用selinux,那么当你完成testing时,重新启用它:
setenforce enforcing