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