4. Windows マシンとのプリンタ共有方法

4.1. プリンタ共有の基礎

Figure 3. プリンタ共有のイメージ

Samba は nmbd デーモンとsmbd デーモンによって、Windows マシンとのファイル、プリンタ共有を実現します。 nmbd デーモンは Windows ネーミングサービスとして の機能を提供し, LAN 上の Windows マシンにあなたのマシン名を一斉配信し ます。

共有したい Linux プリンタごとに Windows のプリンタドライバをインストー ルする必要があります。Windows のプリンタドライバは、プリンタメーカーの Web サイトからダウンロードできます。

4.2. Samba の設定

プリンタへの匿名アクセス(anonymous access)を許可する場合、 リモートからのプリント指示を許可するためのユーザアカウントを作成する必要があります。
/usr/sbin/adduser --system --disabled-password smbprint

このコマンドは "smbprint" という名前のユーザをシステムに追加します。 "smbprint" のホームディレクトリ、 /home/smbprint がスプールディレクトリになるので、 ファイルのスプールに必要なディスクスペースがあることを確認してください。 また、"smbprint" に秘密ファイル、 ディレクトリへの読み書き権限を与えないよう注意してください。 CUPS をある特定のユーザからしかプリントできないよう制限設定した場合、 "smbprint" ユーザに共有したいプリンタへのアクセス権を与え なければなりません。

Samba の設定ファイル名は /etc/samba/smb.conf です。 "smbprint" というユーザ名で CUPS を設定した場合の設定ファイル例を以下に示します。
[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 = usersecurity = domain のような設定を行ってください。 アクセス制御に関する詳しい情報は Samba の man ページをご覧ください。

Samba 設定ファイルの編集ができたら、以下のコマンドで Samba を再起動してください。
/etc/init.d/samba restart

4.3. CUPS 設定

Windows のプリンタドライバは出力データをフォーマットしてから、 ネットワークにそのデータを送ります。(訳者追記:Windows から問題なく利用できるよう) 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>
Samba の設定ファイルと同様に、この設定では、あらゆるマシンからのプリンタへの接続を許可しているので、 信用のおけないネットワーク上のマシンでは避けたほうがよいでしょう。 プリンタへのアクセス制御の強化に関する詳しい情報は、cupsd.conf の man ページと CUPS のドキュメントをご覧ください。

最後に、以下のコマンドで CUPS を再起動します。
/etc/init.d/cupsys restart

これで Linux プリンタは LAN 上で Windows マシンと共有できます。Windows のプリンタ追加ウィザードでネットワークプリンタを追加し、テストページを 印刷してみてください。