使用 cups 在单独的文件中使用密码打印到 windows 域

djs*_*dog 3 printing samba windows cups cifs

到目前为止,我看到的每一份指南都解释了如何从 CUPS 打印到 Windows 打印服务器,指示将用户名和密码以纯文本形式放在 Web 界面 (localhost:631) 或/etc/cups/printers.conf

smb://user:password@hostname/printer
Run Code Online (Sandbox Code Playgroud)

问题是我的密码包含空格和特殊字符。当我尝试这样做时,在打印测试页时仍然会遇到 NT 身份验证失败。我可以通过 smbclient 连接:

smbclient -L //ourprintserver01 -Uourdomain\\myusername
Run Code Online (Sandbox Code Playgroud)

我试图创建一个/etc/samba/printing.auth文件,正确的usernamepassworddomain在它,因为我已经看到了一些教程,但仍不允许杯正确验证。有没有办法告诉CUPS使用这个文件,或者将密码、用户名和域保留在其他一些cups可以使用的文件中?

小智 5

如果您创建打印机,可以通过 web ui 或通过 lpadmin 使用带有特殊字符 % 编码的 URL,如下所示:

lpadmin -p fake -v smb://bob:pass%20word@rice/BLAH -P /tmp/foo.ppd
Run Code Online (Sandbox Code Playgroud)

然后密码将存储在 /etc/cups/printers.conf 文件中(该文件只能由 root 读取)并且不会显示在 Web UI 中。

不过要小心,如果你不小心输入了一个格式错误的 URL,那么 cups web-ui 将无法确定密码是哪一位,它会被显示出来。