Samba の共有フォルダとスキャナを連携

普段使っていたスキャナが新しくなって,スキャン結果を SMB プロトコルで PC に転送できるようになった.Windows 上で共有フォルダを作っておいて,スキャナ側で PC の IP アドレスやら共有フォルダ名やらを設定すれば,そこに勝手に文書が入る仕組みである.便利なんだけど,どうしても抵抗あるのが,Windows のユーザ名とパスワードをスキャナに登録しないといけない点.どんな形式で保存されているのかも謎なのに,共有のスキャナにそんなもの入力したくない.



そこで,PC-UNIX 上の Samba で共有フォルダを作って,Windows 共有フォルダの代わりにしてやることにした.そのフォルダには専用のユーザ名とパスワードを用意し,最悪の場合「捨てアカウント」にする覚悟はしておく.気持悪さは否めないけど,普段メインで使っているアカウント情報を入れるよりはずっとましだ.



ちなみにこの PC-UNIX (ちなみに FreeBSD) は VMware 上で動いているもので,LAN と bridge 接続しているので,スキャナから直接叩ける.



まず,FreeBSD 上で新しくアカウントを作る.仮に scanner としておく./home/scanner をスキャン結果置場とする.smbpasswd で scanner に Samba のパスワードを設定.



次に smb.conf に項目を追加する.もしかすると設定の必要ない項目もあるかも.というか,[global] 部分でデフォルト値をどう設定しているかにも依存するけど.

[scanner]
        comment = Scanned Documents for %h
        path = /home/scanner
        browsable = yes
        read only = no
        map archive = no
        force user = scanner
        force group = scanner
        create mode = 0664
        force create mode = 0660
        force directory mode = 0775

それから,hosts allow にスキャナの IP アドレスを追加しておく.で,

/usr/local/etc/rc.d/samba.sh restart

で samba を再起動.



スキャナ側に必要な情報を登録して,普通にスキャン.設定が成功していれば,/home/scanner に文書が入るはず.あとは FreeBSD 内でアクセスするなり,ホスト OS である Windows から Samba 経由でアクセスするなりすれば OK.うまくいかないときは,smb.conf で log level = 10 とかにして大量のログを読めばなんとかなるかも.