web-dev-qa-db-ja.com

CUPSプリントサーバー用のWindowsプリントドライバーをSambaに保存する

私のWindowsおよびLinux(Ubuntu)ワークステーションの両方に(Debian)プリントサーバーをセットアップしようとしています。

私が目指すもの:

  • プリンタはプリントサーバーのCUPSで構成されます。キューはここで作成および管理(一時停止、転送など)されます(IDはWeb GUI)。
  • WindowsおよびLinuxワークステーションは、プリントサーバーを使用して印刷します。プリンターは、IPアドレスを知っている必要はありません。
  • Windowsワークステーションは、Windowsドライバーを「標準」の方法(.exeのダブルクリック、プリンターとの直接通信)でインストールできたので、印刷設定(両面、カラー、丁合い、ステープル、小冊子、パンチ穴など)を設定できます。 )。
  • プリントドライバーは、プリントサーバー自体によってWindowsワークステーションに提供されます(Sambaはこれを Point'n'Print と呼びます)。
  • ユーザーパスワードなし(現時点では、将来変更される可能性があります)。

注:これ以降、特に指定のない限り、「CUPS」は、ビルドするプリントサーバーで実行されているCUPSデーモンを指します。

私が現在働いているもの:

  • Ipp://またはsocket://およびプリンターの製造元からのPPDファイル(または [〜#〜] hplip [〜#〜] )を使用して、プリンターをCUPSに追加しました。 CUPSからの印刷が機能します(Web GUIを介してテスト印刷ページ)。
  • Linuxワークステーションは、Ubuntuの「プリンターの追加」ウィザードを使用してローカルにプリンターを追加し、CUPSを介して共有されているプリンターを探すことができます。プリントサーバーのFQDN/IPを入力するだけです。
  • プリンタは、Windowsワークステーションから参照した\ print-server \に一覧表示されます。
  • プリンターはsmbclient -L print-server -NはLinuxワークステーションから実行しました。

現在機能していません:

  • "printmanagement.msc"を使用してWindowsプリンタードライバーをCUPSに追加することはできませんMMC(「アクセスが拒否されました」というエラーが表示されます。) Samba'sPoint 'n'Print は機能しません。

WindowsがSambaサーバーにドライバーをインストールするためにファイルを読み書きできないようにする認証の問題があることを理解しています。 Windowsワークステーションから\ print-server \にアクセスするときにSambaがユーザー/パスワードを要求するようにしましたが、UNIXルートパスワードも通常の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
  • [〜#〜] hplip [〜#〜] 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ネットワーク上のファイルとプリンターを共有しているので、どこかで何かが欠けていると確信しています...

4
CDuv

1。

したがって、あなたのfirst問題は次のようです:

現在機能していません:

  • "printmanagement.msc"を使用してWindowsプリンタードライバーをCUPSに追加できないMMC(「アクセスが拒否されました」というエラーが表示されます)したがって、SambaのPoint'n'Print動作しないでしょう。

Windowsクライアントは[〜#〜] cups [〜#〜]からプリンタードライバーを取得せず、CUPS自体がWindowsクライアントと直接通信できないことに注意してください。

これを実行できるのはSambaだけなので、WindowsクライアントはSambaからプリンタードライバーを取得します。 Sambaはクライアント用のWindowsプリントサーバーを装っており、Sambaは特別な共有も提供します(リストされている[print$] in smb.conf)クライアントがドライバを自動インストールするため。 (UNCパスを使用してみてください\\myserver\print$または\\myworkstation\print$Windowsエクスプローラで、プリンタを共有するすべてのホストからのドライバを表示します。]

Windowsユーザーがプリンターを管理し、ドライバーを構成/アップロードするには、特別な権限が必要です。この特権はMicrosoftによってSePrintOperatorPrivilegeと名付けられました。

Sambaは、Windowsクライアントがそのサービスを使用できるように、SMB Windowsネットワークプロトコルと手順のセットを実装しています。

したがって、Windowsプリントサーバーの場合と同様に、この特権を付与されたユーザーのみが、プリンタードライバーをSambaサーバーにアップロードして事前設定できます。

通常、特権をDomain Adminsグループに付与し、さらに、おそらくOur Printer Adminsと呼ばれる別のドメイングループを付与します。今私はあなたのドメイン名が[〜#〜] mydomain [〜#〜]であると仮定します。

指定されたユーザーグループにその権利を付与するには、次のコマンドを実行します。

  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.

もちろん、この特権を1人以上の個別のドメインユーザーに付与することもできます(上記の例: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サーバーにプリンタードライバーをアップロードしてインストールできるという前提条件が作成されました。


pdate:上記で引用したsmb.confをよく見てください... MYDOMAIN \をMYWORKGRP \に置き換えて、指定したコマンドを使用するか、完全にスキップして、 Sambaが認識しているユーザー名またはグループ名。一時的にguest ok = yes内部[print$]スタンザ。ドライバーが配置されたら、それをnoに戻すことを忘れないでください...)


2。

あなたのsecond問題は次のようです:

CUPSのデフォルトオプションがワークステーションのオプションと干渉するようです。CUPSではデフォルトで両面印刷をオフに設定していますが、ユーザーがその印刷設定のチェックボックスをオンにすると機能するようにします。

CUPSでユーザーの設定を使用するにはどこに行けばよいですか?

デフォルトではCUPSは"filter" Sambaから渡される印刷ジョブを行いません。それらを「生の」ジョブとして処理し、実際の印刷ハードウェアデバイスに渡すだけです。

したがって、ドライバーがWindows印刷クライアントに正しくインストールされている場合、CUPSローカル印刷用にCUPSに構成されている可能性のあるデフォルト設定に関係なく、クリックするジョブオプションはすべてプリンターで優先されます...

CUPSでユーザーの設定を「使用」することはできません。CUPSはそれらを通過させるだけです。

1
Kurt Pfeifle