配置 Samba 以允许使用 CUPS 打印机

配置 Samba 以允许使用 CUPS 打印机

samba 打印有问题。我在 Ubuntu 11.04 服务器上安装了 CUPS 打印机,运行良好。

当我尝试配置 samba 以允许 XP 计算机使用打印机时,打印失败。我可以从服务器安装 XP 的打印机驱动程序,并且打印机出现在 XP 打印机控制面板中。当我尝试从 XP 计算机打印测试页时,我在系统事件日志中收到此错误:

Jun 27 20:33:29 FatController smbd[3571]: [2012/06/27 20:33:29,  0] rpc_server/srv_netlog_nt.c:603(_netr_ServerAuthenticate3)
Jun 27 20:33:29 FatController smbd[3571]:   _netr_ServerAuthenticate3: netlogon_creds_server_check failed. Rejecting auth request from client JAMES machine account JAMES$

这是我的 smb.conf 文件:

[global]
server string = %h (Server)
workgroup = SODOR
encrypt passwords = true
security = user
os level = 255
preferred master = yes
domain master = yes
local master = yes
logon path = \\%L\profile\%U
logon drive = S:
logon home = \\%L\home\%U
domain logons = yes
map to guest = Never
guest ok = no
dns proxy = no
time server = yes
logon script = logon.bat
load printers = yes
printing = cups
printcap name = cups
nt acl support = no
interfaces = eth1 lo
bind interfaces only = yes
smb ports = 445

[netlogon]
comment = Net Log On
path = /home/samba/netlogon
guest ok = no
read only = yes
browseable = no

[profile]
comment = User Profiles
path = /home/samba/profiles
read only = no
create mask = 0600
directory mask = 0700
browseable = no
store dos attributes = yes

[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
guest ok = no
printable = yes

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
guest ok = no
read only = yes
write list = root, skizz

有人知道问题是什么以及如何解决它吗?

除上述错误外,我还收到此错误:

Jun 27 21:56:35 FatController smbd[3571]: [2012/06/27 21:56:35,  0] printing/print_cups.c:1027(cups_job_submit)
Jun 27 21:56:35 FatController smbd[3571]:   Unable to print file to `Edward' - client-error-not-authorized

我认为这更有意义。

答案1

  • 如果你不太喜欢使用 Samba,你可以使用以下方式共享打印机独立电力供应站

    将 Windows 客户端连接到 Linux 打印服务器的首选方法是使用 IPP。它是一种基于 HTTP 的标准打印机协议,允许您以各种方式利用端口转发、隧道等。配置非常简单,而且这种方式比使用 Samba 更不容易出错。自 Windows 2000 以来,Windows 原生支持 IPP。要配置服务器端,您需要在 中启用浏览功能/etc/cups/cupsd.conf,方法是添加行“BrowesAllow all”:

     Browsing On
     BrowseOrder allow,deny
     BrowseAllow @LOCAL
     BrowseAllow all
    

    在 Windows 计算机上,转到打印机控制面板并选择“添加新打印机”。接下来,选择提供 URL。对于 URL,请输入打印机的位置:(http://host_ip_address:631/printers/printer_name其中 host_ip_address 是 GNU/Linux 服务器的 IP 地址,printer_name 是所连接的打印机的名称)。

    此后,在 Windows 计算机上安装打印机的本机打印机驱动程序。如果 CUPS 服务器设置为使用其自己的打印机驱动程序,那么您只需为 Windows 客户端选择通用的 PostScript 打印机(例如“HP Color LaserJet 8500 PS”或“Xerox DocuTech 135 PS2”)。然后通过打印测试页来测试打印设置。

  • 如果必须使用 Samba 进行共享,您可以添加一个写入列表到smb.conf

    [printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = yes
    guest ok = no
    printable = yes
    create mode=0700
    write list=@adm root <username>
    

以上所有信息我均在wiki,里面有比我这里更多的信息。希望对你有帮助!

答案2

我在将打印机连接到运行 Ubuntu 12.04 的计算机并尝试从 Windows XP 计算机进行打印时也遇到了这个问题。我发现 samba 中有一个已知错误。

sudo add-apt-repository ppa:louis-bouchard/samba-lp967410
sudo apt-get update
sudo apt-get upgrade

然后我必须重新生成 samba 数据库。

sudo rm -f /var/lib/samba/registry.tdb
sudo rm -f /var/cache/samba/printing/*
sudo restart smbd
sudo restart mnbd

然后它就成功了。我与 Canonical 签订了支持合同,他们帮助解决了这个问题。

答案3

所有手册都说在共享选项下,您可能有read only = yes。事实证明,写入可能性是必需的(samba 错误?)。这就是彼得森放为write list=@adm root <username>

当我没有写权限时,下会出现大小为零的文件/var/spool/samba。当我以 root 身份映射共享时 - 我成功了。

最后我通过添加[printers]部分:

read only = no

我还有以下内容,以简化事情并使调试和故障排除更容易:

[global]
max protocol=NT1
smb ports=139

相关内容