Samba 使用 nmbd 和 smbd 守护进程与 Windows PC 共享文件和打印机。nmbd 充当 Windows 命名服务,向 LAN 上的 Windows PC 广播您的计算机名称。smbd 接受来自 Windows PC 的文件和打印机请求 图 3。
您需要为要共享的每个 Linux 打印机下载并安装 Windows 打印机驱动程序。Windows 打印机驱动程序可以在您的打印机制造商的网站上找到。
如果您允许匿名访问您的打印机,您将需要为远程打印作业创建一个用户帐户
/usr/sbin/adduser --system --disabled-password smbprint |
此命令将名为 "smbprint" 的用户添加到您的系统。请确保在/home/smbprint,"smbprint" 用户的主目录中有足够的磁盘空间来假脱机文件。检查 "smbprint" 用户是否没有权限在您的系统上读取或修改敏感文件和目录。如果您已配置 CUPS 以限制系统上特定用户进行打印,则必须允许 "smbprint" 用户访问您要共享的打印机。
Samba 配置文件是/etc/samba/smb.conf。以下是设置为将 CUPS 与 "smbprint" 用户一起使用的示例配置文件
[global] printcap name = cups printing = cups security = share [printers] browseable = yes printable = yes public = yes create mode = 0700 guest only = yes use client driver = yes guest account = smbprint path = /home/smbprint |
请注意,此配置将允许任何可以建立网络连接到您的计算机的人进行打印,并且不建议用于不受信任网络上的计算机,例如直接连接到互联网的计算机。如果您需要实施访问控制,请设置 security = user 或 security = domain,并阅读 Samba 手册页以获取更多信息。
将上述设置添加到 Samba 配置文件后,您必须使用以下命令重启 Samba
/etc/init.d/samba restart |
Windows 打印机驱动程序在通过网络发送输出之前对其进行格式化。您必须配置 CUPS 以接受预格式化的输出,方法是从/etc/cups/mime.convs:
application/octet-stream application/vnd.cups-raw 0 - |
中取消注释以下行。 还要从/etc/cups/mime.types:
application/octet-stream |
中取消注释以下行。现在必须告知 CUPS 允许来自网络上其他计算机的连接。将以下行添加到/etc/cups/cupsd.conf:
<Location /printers> AuthType None Order Deny,Allow Deny From None Allow From All </Location> |
最后,使用以下命令重启 CUPS
/etc/init.d/cupsys restart |
您的 Linux 打印机现在应该已共享到 LAN 上的 Windows PC。按照将网络打印机添加到 Windows PC 的常用步骤操作,并记住打印测试页。