Red Hat Training
A Red Hat training course is available for RHEL 8
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]
共有名はハードコーディングされており、変更はできません。CUPS サーバーが別のホストまたはポートで実行されている場合は、
printers
セクションで設定を指定します。cups server = printserver.example.com:631
多数のプリンターがある場合は、待機秒数を CUPS に接続されているプリンターの数よりも大きい値に設定します。たとえば、100 台のプリンターがある場合は、
[global]
セクションに次のように設定します。rpcd_spoolss:idle_seconds = 200
この設定が環境内でスケーリングされない場合は、
[global]
セクションでrpcd_spoolss
ワーカーの数も増やします。rpcd_spoolss:num_workers = 10
デフォルトでは、
rpcd_spoolss
は 5 つのワーカーを開始します。
/etc/samba/smb.conf
ファイルを検証します。# testparm
firewall-cmd
ユーティリティーを使用して必要なポートを開き、ファイアウォール設定を再読み込みします。# firewall-cmd --permanent --add-service=samba # firewall-cmd --reload
smb
サービスを再起動します。# systemctl restart smb
サービスを再起動すると、Samba は CUPS バックエンドに設定したすべてのプリンターを自動的に共有します。特定のプリンターのみを手動で共有する場合は、特定のプリンターの手動共有 を参照してください。
検証
印刷ジョブを送信します。たとえば、PDF ファイルを印刷するには、次のように入力します。
# smbclient -Uuser //sambaserver.example.com/printer_name -c "print example.pdf"
3.15.2. 特定のプリンターの手動共有
Samba をプリントサーバーとして設定している場合、Samba は、デフォルトで CUPS バックエンドで設定されたプリンターをすべて共有します。以下の手順では、特定のプリンターのみを共有する方法を説明します。
前提条件
- Samba がプリントサーバーとして設定されている。
手順
/etc/samba/smb.conf
ファイルを編集します。[global]
セクションで、以下の設定で自動プリンター共有を無効にします。load printers = no
共有するプリンターごとにセクションを追加します。たとえば、Samba で CUPS バックエンドで
example
という名前のプリンターをExample-Printer
として共有するには、以下のセクションを追加します。[Example-Printer] path = /var/tmp/ printable = yes printer name = example
各プリンターに個別のスプールディレクトリーは必要ありません。
[printers]
セクションに設定したのと同じ spool ディレクトリーを、プリンターのpath
パラメーターに設定できます。
/etc/samba/smb.conf
ファイルを検証します。# testparm
Samba 設定を再読み込みします。
# smbcontrol all reload-config