使用需要身份验证的Samba打印机进行命令行打印


9

是否可以通过在命令行上提供凭据(例如,使用lpr)来打印到需要身份验证的Samba打印机?

我设法将凭据存储在GNOME密钥环中,当我通过桌面会话登录时,可以使用打印lpr

有没有一种方法可以:

  • 提供凭证给 lpr
  • 验证队列中的作业

远程登录(SSH)时?

编辑

我知道可以为所有用户存储一组凭据(直接在打印机URI中的CUPS中),但是我们需要每个用户使用自己的凭据进行身份验证。


它不使用pritcap吗?
mikeserv

@mikeserv printcap做什么?
Matteo 2014年

您可以在没有gnome或Display Manager的情况下启动密钥环。为此:eval $(/ usr / bin / gnome-keyring-daemon --start --components = gpg,pkcs11,secrets,ssh)#您可能也需要这样做:export GNOME_KEYRING_CONTROL GNOME_KEYRING_PID GPG_AGENT_INFO SSH_AUTH_SOCK
phoss

@ edvinas.me密钥环已开始使用,但仍无改善
Matteo

Answers:


8

客户端

您可以smbclient用来打印文件。我可以像这样通过Samba打印到我的一台打印机:

$ smbclient -U <user> //server/printer -c "print <filename>"

$ smbclient -U sam //bart/mfc-8480dn -c "print hello_printer.txt"
Enter sam's password: 
Domain=[BUBBA] OS=[Unix] Server=[Samba 3.0.33-3.39.el5_8]
putting file hello_printer.txt as hello_printer.txt (0.2 kb/s) (average 0.2 kb/s)

管理员

我还在标题为“ Lion Kerberos printing ”的线程中找到了此示例。有两种方法。

方法1-打印机已安装

$ sudo lpadmin -p PRINTERNAME -o auth-info-required=negotiate

方法2-添加打印机

$ sudo lpadmin -p PRINTERNAME -E -v smb://PRINTSERVER/PRINTQUEUE \
    -m Generic.ppd -L "LOCATION" -o auth-info-required=negotiate

在任何一种情况下,一旦您运行了上述命令之一,您就应该能够lpr -P PRINTERNAME在配置SMB打印机之后执行操作。

注意1:您可能需要将用户名和域添加到该smb://行。但是我没有测试该设施。此外,该-U <username>开关还允许覆盖您的用户名。

注意2:此方法将创建一个具有凭据缓存的打印机,该凭据可能不是您想要的,但是将允许lpr在不包含凭据的情况下将打印内容发送到SMB打印机。

参考文献


这将允许从命令行设置身份验证,但是问题是从命令行打印时lpr无法进行身份验证。作业将仅停留在队列中。
Matteo 2014年

@Matteo-查看更新。
slm

smbclient奇迹般有效。感谢更新。
Matteo 2014年

@Matteo-我翻转了方法,使smbclient为第一个,因为它实际上是您Q的A,但是保留了lpadmin详细信息,以防有人想要创建更永久的SMB打印机条目。
slm

注意!上面给出的smbclient版本假定文件是文本文件进行打印。如果以此方式打印PDF,则打印机将一页一页一页地弹出PDF源代码。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.