古いSambaサーバのOSをアップグレードしたらいろいろはまった。3.xになって も2.x時代の設定を使っていたつけが顕在化したらしい。
3.xでの変更点
3.xでは標準のパスワードファイルの形式と場所が変更されている。
/etc/smbpasswd
/var/lib/samba/passdb.tdb
また管理者用にpdbeditコマンドが提供されている。管理者権限が必要だけれ ど、smbpasswdよりも汎用で強力。
設定を確認する
testparmコマンドでsmb.confから設定を抜き出して、認証DBにtdbsamが指定さ れていることを確認する。
% testparm -s /etc/samba/smb.conf
...
passdb backend = tdbsam
...
%
古いsmbpasswdファイルからpassdb.tdbを作る
/etcや/var/backupsにあるsmbpasswd.bakを作業用にコピー。
% sudo cp /etc/smbpasswd.bak /var/lib/samba/smbpasswd.txt
pdbeditで変換する。
% sudo pdbedit -i smbpasswd:/var/lib/samba/smbpasswd.txt \
-e tdbsam:/var/lib/samba/smbpasswd.tdb
エラーが出たら不具合を直して再試行。今回は単にまずい行を削除した。
% sudo vi /var/lib/samba/smbpasswd.txt
(remove invalid users)
% sudo rm /var/lib/samba/smbpasswd.tdb
(try again)
パスワードファイルを置き換える。
% sudo /etc/init.d/samba stop
% sudo mv /var/lib/samba/passdb.tdb{,.bak}
% sudo mv /var/lib/samba/{smbpasswd,passdb}.tdb
% sudo /etc/init.d/samba restart
logonできるかテストする。
% smbclient --debuglevel=3 //192.168.0.x/jdoe -U jdoe
(jdoe's smb password)
smb: \> exit
%
トラブルシュート
本当にそのユーザが登録されているか確認。
% sudo pdbedit -u jdoe -v
登録されていなければ登録する。
% sudo pdbedit -a -u jdoe
参考
@IT:Samba 3.0の全貌 改訂版[後編](3/3) / たかはしもとのぶ
多様な認証データベースのサポート
http://www.atmarkit.co.jp/flinux/special/samba3b/samba06.html
Other Articles
- 13 Oct 2017: 『テスト駆動開発』
- 19 Oct 2016: 『新装版 達人プログラマー 職人から名匠への道』
- 19 Aug 2016: 『プログラミングElixir』
- 20 Oct 2015: Migrating from git-media to git-lfs
- 04 Oct 2015: Git Large File Storageクライアントのインストール
- 12 Aug 2015: isbn.rb
- 22 Apr 2015: 「なるのか、なすのか?」(To Be Or To Do?)