(注:記事は執筆時の情報に基づいており,現在では異なる場合があります)

SambaとLinuxパスワードの同期

図1●(2)および(4),(5)の場合のUNIX PASSWORD SYNCの設定例
図2●/etc/pam.d/system-authの変更
図3●(3)の場合のUNIX PASSWORD SYNCの設定例
写真3●authconfigコマンドの実行例

 先に示した(2)~(5)のユーザー管理方法では,Linux/UNIXのパスワードとSambaのパスワードが2重(正確には,SambaのパスワードにはLANMANハッシュとNTハッシュの2種類が含まれるので,計3種類)に存在するため,ユーザーがパスワードを変更するときには同期して変更されるように対処することが重要である((1)と(6)では平文パスワードを使用するため問題にならない)。

 このために,SambaにはUNIX PASSWORD SYNCというパラメータが用意されている。これを使えば,Samba/Windowsのパスワードを変更すると,自動的にLinux/UNIXのパスワードも変更されるように指定できる。(2)および(4),(5)の場合のUNIX PASSWORD SYNCの設定例を図1[拡大表示]に示した。

 ただし,Linux/UNIX自体にはOSのパスワードが変更されたときにSambaのパスワードも変更させる機能はないので,ユーザーにpasswdコマンドを使用しないよう徹底させるか,ln(シンボリック・リンクの作成)コマンドもしくはmv(名前変更)コマンドでpasswdコマンドをsmbpasswdコマンドに置き換えておくと良いだろう。

 なお,(2)の場合は,UNIX PASSWORD SYNCの指定によるもののほか,pam_smbpassを利用する方法もある。これは,Sambaに--withpam_smbpassオプションを付けてコンパイルしたときに生成されるPAMモジュールを使って,パスワードだけ/etc/passwd(shadow)ではなく,/etc/samba/smbpasswdを利用するもの。この場合,UNIX PASSWORD SYNCの設定は不要だが,PAMの設定が必要になる。例えば図2[拡大表示]のように/etc/pam.d/system-authを変更する必要がある。その場合も,passwdコマンドでパスワードを変更しても有効にならないので,必ずsmbpasswdコマンドで変更する。

 (3)のLDAP機能を利用する場合は,smbldap-passwd.plコマンドが自動的にパスワードをすべて変更してくれるので問題ないが,Windowsクライアントからのパスワード変更でも同期されるようにするには,UNIX PASSWORD SYNCの設定が必要である(図3[拡大表示])。

ユーザー管理機構を切り換える

 Linux/UNIXでは,標準では/etc/passwdファイルを使ったユーザー管理を行う。ただし,Red Hat LinuxやMIRACLE LINUXでは,使用するユーザー管理機構をauthconfigコマンドにより変更できる。authconfigは,先に述べた/etc/nsswitch.confや/etc/pam.d/を自動的に変更するコマンドであり,NISやLDAP認証,Kerberos5認証の設定が簡単にできる(写真3[拡大表示])。

 次回は,Sambaが動かないときに,その原因を探る有効な方策を紹介する予定である。

(ミラクル・リナックス 小田切 耕司)


(次回に続く)