到目前为止,我所看到的所有指南都解释了如何从 CUPS 打印到 Windows 打印服务器,并指示将纯文本形式的用户名和密码放在 Web 界面 (localhost:631) 或/etc/cups/printers.conf
smb://user:password@hostname/printer
问题是我的密码包含空格和特殊字符。当我尝试执行此操作时,打印测试页时仍然出现 NT 身份验证失败的情况。我可以通过 smbclient 连接:
smbclient -L //ourprintserver01 -Uourdomain\\myusername
我尝试创建一个/etc/samba/printing.auth
包含正确的username
,的文件,password
正如domain
我在一些教程中看到的那样,但这仍然不允许 cups 正确进行身份验证。有没有办法告诉 CUPS 使用这个文件,或者将密码、用户名和域保留在cups可以使用的其他文件中?
答案1
如果您创建打印机,可以通过 Web UI 或通过 lpadmin 使用带有特殊字符 % 编码的 URL,如下所示:
lpadmin -p fake -v smb://bob:pass%20word@rice/BLAH -P /tmp/foo.ppd
那么密码将存储在 /etc/cups/printers.conf 文件中(只有 root 可读)并且将不是显示在 Web UI 中。
但要小心,如果您不小心输入了格式错误的 URL,则 cups web-ui 将无法找出哪一位是密码并将其显示出来。