Samba資料一覧

SambaパスワードとUNIXパスワードを同期する

2009/1/29更新

対応バージョン: 3.3.0

Sambaパスワードが変更された際にUNIXパスワードを同期させるにはsmb.confに以下の設定を行う。

unix password sync

UNIXパスワード同期機能を有効化する。

デフォルトはno。

unix password sync = yes

passwd program

UNIXパスワード変更コマンドを指定する。

%uマクロにはユーザ名が入る。

Fedora 10の場合)

passwd program = /usr/bin/passwd %u

passwd chat

passwdコマンドとのやり取りをチャットスクリプトとして記述する。文字列が少しでも間違っているとパスワード変更が失敗するので注意すること。

*(ワイルドカード)を用いるとより汎用的な定義ができる。
.(ピリオド)は無視されるのでチャットスクリプトには記述しなくてよい。
%nマクロにはパスワードが入る。

Fedora 10の場合)

passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*

実際には以下のようなやり取りが発生する。

Changing password for user <アカウント>.
New UNIX password: <パスワード>
Retype new UNIX password: <パスワード>
passwd: all authentication tokens updated successfully.

passwd chat debug

上記やり取りのデバッグを有効にする。

passwd chat debug = yes

debug level

デバッグレベルを100以上にすることでパスワードがlog.smbdに記録される。

debug level = 100

注意点

Sambaパスワードを変更するにはsmbpasswdコマンドを使用するが、rootで実行するとローカルのパスワードファイル(/usr/local/samba/private/smbpasswd)が直接変更されるので上記の機能が有効にならない。

従って同コマンドは一般ユーザで実行し、Sambaサーバとのやり取りが発生する形で使用する。

% /usr/local/samba/bin/smbpasswd -U foo