SambaとCUPSと各種プリンター（Samba編）

[前回](http://qiita.com/yyano/items/e0c27eda5d8e70de66e0)からの続き

# 目標

1. プリンタはCUPSで管理する。
1. Samba経由でプリンタを共有する。
1. LAN内で使用するため、セキュリティはそれほど気にしない

# インストール＆設定 (Samba編)

1. `yum install samba` Sambaをインストール
2. `/etc/samba/smb.conf` を編集。下記はデフォルト値から追加/変更した箇所

```/etc/samba/smb.conf
# Windows共有するための最小設定
[global]
workgroup = WORKGROUP
netbios name = samba-test
min protocol = SMB2
map to guest = Bad User

# homesは使わない。
;[homes]
;       comment = Home Directories
;       browseable = no
;       writable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S

# プリンタドライバ置き場
[print$]
        path = /var/samba/Printer_drivers/
        comment = Printer drivers
        read only = yes
        write list = @lpadmin, root
        admin users = @lpadmin

# 誰でも書き込めるファイル共有
[public]
        path = /var/samba/Public/
        guest ok = yes
        public = yes
        writable = yes
        vfs objects = streams_xattr
```

1. Samba用ディレクトリを作成＆設定

```
# mkdir /var/samba
# mkdir /var/samba/Printer_drivers
# chown -R nobody:nobody /var/samba/Printer_drivers/
# chmod 0777 /var/samba/Printer_drivers/

# mkdir /var/samba/Public
# chown -R nobody:nobody /var/samba/Public/
# chmod 0777 /var/samba/Public/

```

1. サービス/デーモンを有効にする。
`systemctl enable smb`, `systemctl enable nmb`

1. SELinuxをオフにしてないことに気がついたので、SELinuxをオフにする

```diff:/etc/sysconfig/selinux
SELINUX=disabled
```

1. `reboot`して再起動。

* * * 

## Samba ユーザーの設定

1. `smbpasswd -a root` Sambaに管理者ユーザーを追加します。
1. Windowsのエクスプローラーにて `\\今回設定したサーバ\print$`にアクセスしてみる
2. ID/パスワードを聞かれる。管理者ユーザーに設定したID/パスワードを入力。
3. 環境別のディレクトリが見えればOK。   

## Firewalld (Part.2)
- ファイヤーウォールにSamba(Port:137-138, 139,445)の穴を開ける。
- コマンドを叩いてサービスを追加
 
```
# firewall-cmd --add-service=samba --permanent
# firewall-cmd --reload
```

## Windowsでのプリンタ共有
- Windowsのエクスプローラーで今回設定したサーバを選択。
- CUPSで指定したプリンタ([前回](http://qiita.com/yyano/items/e0c27eda5d8e70de66e0))が表示されています。

![image](https://qiita-image-store.s3.amazonaws.com/0/38845/9f0f4419-e5a8-ff6d-e631-495a6073348c.png)

- プリンタのアイコンを右クリック。「接続」を選択。
- 「ドライバーが見つかりません」警告が表示されます。 とりあえず、OK。  
![image](https://qiita-image-store.s3.amazonaws.com/0/38845/4c20f0da-3594-2728-89c2-549da47aee95.png)
- プリンタドライバーを手動で指定して、プリンタをインストールします。
- ここまででWindowsからLinux上のプリンタが使えるようになっています。

## Windowsでのプリンタサーバー設定
ここから、Windowsのプリンターサーバとしての設定。

1. ネットワークで今回設定したサーバの[リモートプリンターを表示する]を選択。
![image](https://qiita-image-store.s3.amazonaws.com/0/38845/9f0f4419-e5a8-ff6d-e631-495a6073348c.png)
1. プリンタを選択した状態で、右クリックしてメニューを表示[プロパティ]を選択。
![image](https://qiita-image-store.s3.amazonaws.com/0/38845/7d8d8876-afa7-e598-15e2-19d28117afb8.png)
1. 「はい」を選択。   
![image](https://qiita-image-store.s3.amazonaws.com/0/38845/74faf31d-35ff-c35d-2f00-46f2ee9dc8b0.png)
1. プリンタ用のドライバをアーキテクチャーごとに登録していきます。
1. ここでドライバを登録すれば、「ドライバーが見つかりません」警告が表示されなくなるはず。

# 終わりに
　手探り状態で、CUPS & SambaとWindowsのプリンタ設定をしていきました。CUPSの手順でつまるところとしては、各社のLinuxプリンタドライバをインストールするステップだと思います。各社ごとにやり方があるので 公開されているドキュメントを読んで、Step by Stepで対応していけばどうにかなることが多かったです。

　CUPS/Sampbaの設定が終わって、Windowsといざ連携といったところで、なかなかやりたいところまで連携することができませんでした。なにかパラメータが足りなかったりするのだろうと思いますが、Windows側でのログが追いかけきれなかったりというスキル的なところが原因です。

やりたいこと……

```
1. プリンタはCUPSで管理する。
1. Samba経由でプリンタを共有する。
1. LAN内で使用するため、セキュリティはそれほど気にしない
```
……はできるようになったので、このシリーズは完結です。




# 参考
- [Configuring Point'n'Print automatic printer driver deployment](https://wiki.samba.org/index.php/Configuring_Point%27n%27Print_automatic_printer_driver_deployment)
- [Setup a Samba print server](https://wiki.samba.org/index.php/Setup_a_Samba_print_server)