3.15. プリントサーバーとしての Samba の設定
Samba をプリントサーバーとして設定すると、ネットワーク上のクライアントが Samba を使用して印刷できます。さらに、Windows クライアントは、(Samba サーバーが設定されている場合は) Samba サーバーからドライバーをダウンロードすることもできます。
このセクションの一部は、Samba Wiki に公開されているドキュメント Setting up Samba as a Print Server に掲載されています。ライセンスは、CC BY 4.0 にあります。著者および貢献者は、Wiki ページの history タブを参照してください。
前提条件
Samba が、以下のいずれかのモードで設定されている。
3.15.1. Samba でのプリントサーバーのサポートの有効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、プリントサーバーサポートは Samba で有効になっていません。Samba をプリントサーバーとして使用するには、Samba を適切に設定する必要があります。
印刷ジョブとプリンター操作には、リモートプロシージャコール (RPC) が必要です。デフォルトでは、Samba は RPC を管理するためにオンデマンドで rpcd_spoolss サービスを開始します。最初の RPC 呼び出し中、または CUPS でプリンターリストを更新するときに、Samba は CUPS からプリンター情報を取得します。これには、プリンターごとに約 1 秒かかる場合があります。そのため、プリンターが 50 台を超える場合は、rpcd_spoolss 設定を調整してください。
前提条件
プリンターが CUPS サーバーで設定されている。
CUPS でプリンターを設定する方法は、プリントサーバーの CUPS Web コンソール (https://print_server_host_name:631/help) で提供されているドキュメントを参照してください。
手順
/etc/samba/smb.confファイルを編集します。[printers]セクションを追加して、Samba で印刷バックエンドを有効にします。[printers] comment = All Printers path = /var/tmp/ printable = yes create mask = 0600[printers] comment = All Printers path = /var/tmp/ printable = yes create mask = 0600Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要[printers]共有名はハードコーディングされており、変更はできません。CUPS サーバーが別のホストまたはポートで実行されている場合は、
[printers]セクションで設定を指定します。cups server = printserver.example.com:631
cups server = printserver.example.com:631Copy to Clipboard Copied! Toggle word wrap Toggle overflow 多数のプリンターがある場合は、待機秒数を CUPS に接続されているプリンターの数よりも大きい値に設定します。たとえば、100 台のプリンターがある場合は、
[global]セクションに次のように設定します。rpcd_spoolss:idle_seconds = 200
rpcd_spoolss:idle_seconds = 200Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定が環境内でスケーリングされない場合は、
[global]セクションでrpcd_spoolssワーカーの数も増やします。rpcd_spoolss:num_workers = 10
rpcd_spoolss:num_workers = 10Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、
rpcd_spoolssは 5 つのワーカーを開始します。
/etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow firewall-cmdユーティリティーを使用して必要なポートを開き、ファイアウォール設定を再読み込みします。firewall-cmd --permanent --add-service=samba firewall-cmd --reload
# firewall-cmd --permanent --add-service=samba # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow smbサービスを再起動します。systemctl restart smb
# systemctl restart smbCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを再起動すると、Samba は CUPS バックエンドに設定したすべてのプリンターを自動的に共有します。特定のプリンターのみを手動で共有する場合は、特定のプリンターの手動共有 を参照してください。
検証
印刷ジョブを送信します。たとえば、PDF ファイルを印刷するには、次のように入力します。
smbclient -Uuser //sambaserver.example.com/printer_name -c "print example.pdf"
# smbclient -Uuser //sambaserver.example.com/printer_name -c "print example.pdf"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.15.2. 特定のプリンターの手動共有 リンクのコピーリンクがクリップボードにコピーされました!
Samba をプリントサーバーとして設定している場合、Samba は、デフォルトで CUPS バックエンドで設定されたプリンターをすべて共有します。以下の手順では、特定のプリンターのみを共有する方法を説明します。
前提条件
- Samba がプリントサーバーとして設定されている。
手順
/etc/samba/smb.confファイルを編集します。[global]セクションで、以下の設定で自動プリンター共有を無効にします。load printers = no
load printers = noCopy to Clipboard Copied! Toggle word wrap Toggle overflow 共有するプリンターごとにセクションを追加します。たとえば、Samba で CUPS バックエンドで
exampleという名前のプリンターをExample-Printerとして共有するには、以下のセクションを追加します。[Example-Printer] path = /var/tmp/ printable = yes printer name = example[Example-Printer] path = /var/tmp/ printable = yes printer name = exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各プリンターに個別のスプールディレクトリーは必要ありません。
[printers]セクションに設定したのと同じ spool ディレクトリーを、プリンターのpathパラメーターに設定できます。
/etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba 設定を再読み込みします。
smbcontrol all reload-config
# smbcontrol all reload-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow