Samba をアップグレードしたところ,Samba サーバは起動しているのに認証が通らない。それは,アクセスするユーザがシステムユーザであり,Samba のパスワードデータベースに登録されていないのが原因だった。
サーバは Vine Linux 6.2, Samba 3.6.22, iptables 1.4.10,クライアントは Windows 7,アクセスしたいユーザは apache である。
Windows PC から Samba サーバに接続すると,ユーザとパスワードのダイアログは表示されるが,認証が通らない。
Island Life - sambaプチはまりメモ に原因と解決法が紹介されていた。原因は,Samba が独自に持っているパスワードデータベース /var/lib/samba/passdb.tdb にユーザが登録されていることが必要だが,ユーザ apache は UID 48 で,UID が 1000 より小さいユーザはシステムアカウントと認識されるため,passdb.tdb の構築の際に無視されたというのである。
passdb.tdb の中身を確認する。
ユーザ apache を登録する。
再度確認。
これで試したところ,認証が成功した。
Vine Linux を 4.2 から 6.2 にアップグレードしたタイミングで,Samba もアップグレードされた。上で出てきた警告「WARNING: The "idmap uid" option is deprecated」は,「smb.conf の記述の仕方が古い」のが原因である。Samba 3.6.0 から ID マッピングの方法が変更になったとのこと。
Samba 3.6.0 - ID Mapping Changes
As part of the changes, the default idmap configuration has been changed to be more coherent with the per-domain configuration. The parameters "idmap uid", "idmap gid" and "idmap range" are now deprecated in favour of the systematic "idmap config * : range" and "idmap config * : backend" parameters.
/etc/samba/smb.conf を見ると,
となっていた。これを次のように書き換える。
「idmap config * : backend = tdb」はデフォルトのため明示指定する必要はないとのこと (idmap_tdb)。
これで警告は出なくなる。
自宅に設置した Samba サーバへのアクセスを制限したい場合,いくつかの方法がある。
下の2つについては Samba and IPTables に方法が紹介されている。RH-Firewall-1-INPUT は,iptables で使用する INPUT チェーンと FORWARD チェーンを同時に記述するためのチェーンで,名前自体に意味はなく,任意につけていいものだとのことである (RH-Firewall-1-INPUTとは? 【OKWave】)。
/etc/sysconfig/iptables に次を追加した。
Master Archive Index
Total Entry Count: 1957