smbfs (Samba File System) の設定にはまる

投稿者: | 2015/02/24

Just a memorandum.  I noticed we need to specify a user name in capital in ~/.nsmbrc for smbfs.

ただの備忘録です。

本来、ファイルサーバー(NAS)に NFS サーバーの機能があれば楽なのですが、SMB (Samba) しかサポートしていないファイルサーバーを NetBSD などからマウントしたいとき、smbfs というファイルシステムクライアントを使うと便利です。最近の NetBSD には、mount_smbfs というコマンドが初めから用意されているようです。

しかしこのツール、次の点が分かりづらいです。

  • mount_smbfs のコマンドラインオプションを /etc/fstab で指定するにはどうするの? (mount_smbfs に限らず一般的な話題かもです)
  • SMB パスワードを /root/.nsmbrc に書いても、mount -a でパスワード訊かれちゃうんだけど

という訳で備忘録です。

まず前者ですが、mount_smbfs のコマンドラインオプションを /etc/fstab で指定するには、こうするようです。ここでは、-u1234 -g100 -N を指定したい場合です。

//fugafuga@10.0.0.1/dirname     /mnt/dirname   smbfs   rw,-u1234,-g100,-N      0 0

つまり、rw などのオプションに続けてカンマで区切り、- (ハイフン)で始めればいいんですね。知ってしまえばなんてことないのですが、知らないと悩みます。

次に SMB パスワードを .nsmbrc に書く方法です。まず第一に、どこのユーザーディレクトリに書いたらいいのか?  SMB のユーザーとは関係ないようなので、mount_smbfs を実行するユーザーで良いようです。つまり、NetBSD ならば /root。つまり、/root/.nsmbrc にこんなふうに書きます。

[10.0.0.1:FUGAFUGA]
password=himitsu

注意点は、ユーザー名を大文字で書かなくてはいけないということのようです(バージョンに依るかもですが)。ネットで情報を探すとヒントは見つかるのですが、明確な答えはなかなか見つかりませんでした。本当は、mount_smbfs にデバッグオプションとかあればいいんでしょうけどね。

ちなみにユーザーを小文字で書いたりすると正しく認証されないようで、次のようなエラーが出ます。

mount_smbfs: unable to open connection: syserr = Authentication error
mount_smbfs: lookup 80: Authentication error

無事に解決。。。