1.

1.

我正在尝试为我的 Windows 和 Linux (Ubuntu) 工作站设置 (Debian) 打印服务器。

我的目标是:

  • 打印机在打印服务器的 CUPS 上配置。队列在此处创建和管理(暂停、转移等)(id. web GUI)。
  • Windows和Linux工作站使用打印服务器进行打印:它们不需要知道打印机的IP地址。
  • Windows 工作站能够设置打印设置(双面打印、颜色、校对、装订、小册子、打孔等),就像以“标准”方式安装 Windows 驱动程序一样(双击 .exe,直接与打印机通信) )。
  • 打印驱动程序由打印服务器本身提供给 Windows 工作站(Samba 称之为即刻打印)。
  • 没有用户密码(目前,将来可能会更改)。

注意:从现在开始,除非另有说明,“CUPS”将指在我打算构建的打印服务器上运行的 CUPS 守护进程。

我目前所做的工作:

  • 使用 ipp:// 或 socket:// 以及来自打印机制造商(或高压激光等离子体处理)。从 CUPS 打印可以工作(通过 Web GUI 测试打印页)。
  • Linux 工作站可以使用 Ubuntu“添加打印机”向导在本地添加打印机,以查找通过 CUPS 共享的打印机:只需键入打印服务器 FQDN/IP。
  • 打印机列在从 Windows 工作站浏览的 \print-server\ 上。
  • smbclient -L print-server -N打印机通过Linux 工作站运行来列出。

目前不工作:

  • 无法使用“printmanagement.msc”MMC 将 Windows 打印机驱动程序添加到 CUPS(我收到“访问被拒绝”错误)。所以桑巴舞即刻打印不管用。

据我所知,身份验证存在问题,导致 Windows 无法读取/写入文件以在 Samba 服务器上安装驱动程序。我设法让 Samba 在从 Windows 工作站访问 \print-server\ 时要求输入用户/密码,但 UNIX root 密码和普通 UNIX 用户都不起作用。

目前工作很奇怪:

  • 如果我在从 \print-server\ 添加打印机时手动向 Windows 工作站提供打印机驱动程序(因为“Point'n'Print”不起作用),则并不总是考虑用户/工作站打印设置。

    似乎 CUPS 默认选项会干扰工作站的选项:我在 CUPS 上默认关闭双面打印,但我希望在用户勾选打印设置上的复选框时它可以工作。

    我应该去哪里让 CUPS 使用用户的设置?

  • 我有一些编码问题:一些打印页面具有不寻常且随机的字母间距。

    是否有一些设置可以提高任何文档(PDF、Word、图像等)的兼容性?

环境:

  • 不涉及 Windows 域:没有 Active Directory,根本没有 Microsoft/Samba 主/辅助域控制器。
  • Debian v8.2“杰西”
  • Samba v4.1(全新安装,无其他共享)
  • CUPS v1.7
  • Windows 工作站:Windows 7 和 8
  • Linux 工作站:Ubuntu 14.04
  • 打印机有:Xerox 和 HP
  • 高压激光等离子体处理v3.14.6

smb.conf(所有包的默认设置):

[global]
   workgroup = MYWORKGRP
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
[homes]
   comment = Home Directories
   browseable = no
   read only = yes
   create mask = 0700
   directory mask = 0700
   valid users = %S
[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no

据我所知,许多人使用 Samba 在 Windows 网络上共享文件和打印机,所以我很确定我在某个地方遗漏了一些东西......

答案1

1.

所以你的第一的问题似乎是这样的:

目前不工作:

  • 无法使用“printmanagement.msc”MMC 将 Windows 打印机驱动程序添加到 CUPS(我收到“访问被拒绝”错误)。所以桑巴舞即刻打印不管用。

请注意,Windows 客户端不会从计算机辅助系统,并且CUPS本身不能直接与Windows客户端通信。

只有 Samba 可以做到这一点,因此 Windows 客户端将从以下位置检索其打印机驱动程序桑巴舞。 Samba 为客户端充当 Windows 打印服务器,并且 Samba 还将提供特殊的共享(列出[print$]smb配置文件)供客户端自动安装驱动程序。(您应该尝试使用 UNC 路径 \\myserver\print$ 或者 \\myworkstation\print$ 在 Windows 资源管理器中查看共享打印机的任何主机的驱动程序。)

Windows 用户需要特殊权限才能管理打印机和配置/上传驱动程序。这个特权是SePrintOperatorPrivilege由微软命名的。

Samba 实现了 SMB 组 Windows 网络协议和过程,以便 Windows 客户端可以使用其服务。

因此,只有被授予此权限的用户才能将打印机驱动程序上传并预配置到 Samba 服务器,就像 Windows 打印服务器的情况一样。

通常,您希望将权限授予域管理员组,另外,也许是您可能调用过的另一个域组我们的打印机管理员。我现在假设您的域名是我的域名

要授予指定用户组该权限,请执行以下命令:

  net rpc rights grant "MYDOMAIN\Domain Admins" \
     SePrintOperatorPrivilege -U "MYDOMAIN\administrator"

  net rpc rights grant "MYDOMAIN\Our Printer Admins" \
     SePrintOperatorPrivilege -U "MYDOMAIN\administrator"

  net rpc rights grant "MYDOMAIN\User54321" \
     SePrintOperatorPrivilege -U "MYDOMAIN\administrator"

在每种情况下,系统都会提示您提供域管理员密码:

  Enter MYDOMAIN\administrator's password:

如果您知道此密码并且一切正常,您将看到此确认信息:

  Successfully granted rights.

当然,您MYDOMAIN\User54321也可以将此权限授予一个或多个单独的域用户(上面的示例:)。但不建议这样做。最好将权限授予一组而不是个人帐户。这使您能够通过更新组成员身份来添加和撤销权限。

要列出具有SePrintOperatorPrivilege授予权限的所有用户和组,请输入:

  net rpc rights list privileges SePrintOperatorPrivilege\
     -U "MYDOMAIN\administrator"

您应该看到以下输出:

  SePrintOperatorPrivilege:
     BUILTIN\Administrators
     MYDOMAIN\Domain Admins
     MYDOMAIN\Our Printer Admins
     MYDOMAIN\User54321

您现在已经创建了上面列出的用户可以将打印机驱动程序上传并安装到您的 Samba 服务器的先决条件。


更新:只是仔细查看了上面引用的 smb.conf...将我给出的命令的 MYDOMAIN\ 替换为 MYWORKGRP\,或者完全跳过它,只使用 Samba 已知的用户名或组名。您也可以暂时尝试一下guest ok = yes[print$]节。no一旦你的驱动程序就位,不要忘记将其设置回原来的位置...)


2.

你的第二问题似乎是:

似乎 CUPS 默认选项会干扰工作站的选项:我在 CUPS 上默认关闭双面打印,但我希望在用户勾选打印设置上的复选框时它可以工作。

我应该去哪里让 CUPS 使用用户的设置?

CUPS 默认情况下不“筛选”打印作业由 Samba 移交。它将它们作为“原始”作业进行处理,然后将它们传递到真正的打印硬件设备。

因此,如果驱动程序正确安装在 Windows 打印客户端上,则打印机应遵循他们单击的任何作业选项,无论可能配置到 CUPS 中以进行 CUPS 本地打印的默认设置如何...

您不能“让”CUPS 使用用户的设置——CUPS 只会传递它们。

相关内容