WindowsからSAMBAに特定のユーザーが接続できなくなった


突然、一部のユーザーのみSAMBAに接続できなくなった。具体的には、Windowsでサーバーに接続しようとすると、ネットワークパスワードを入力するようにメッセージが出て、パスワードを入力しても接続できない。


とりあえず、Linuxサーバーを再起動してみたのだが、最悪なことに、さらに接続できないユーザーが増えてしまい、サーバーが使えなくなってしまった。正直、あせったのだが、原因がわからない。最初に障害を報告してきたユーザーに状況を聞いても、席を外して、戻ってきて、接続しようとしたら、接続できなくなってしまったということだけ。


次に、samba.confやsambaの再起動などをしてみたのだが、復旧しない。解決の手助けになったのは、一部のコンピュータのみサーバーに接続できているのがわかったことだった。ユーザーアカウントのネットワークパスワードを確認して、接続できていないコンピュータに同じ設定をしてみたところ、接続できることがわかった。


調べてみると、あるユーザー権限でsambaに接続すると、接続できないことがわかったので、原因はわからないまま、それ以外のユーザーで設定することで、一時的に対応することにした。


その後、使えないユーザー権限でないといろいろと不具合が出てきたので、ネットなどでいろいろと情報を調べた結果、SAMBAパニックを起こして、特定のユーザーのみ接続できなくなっているのではないかと思い、下記のコマンドで、そのユーザーを有効化してみることにした。

# smbpasswd -e ユーザー名


ユーザーは、有効になったのだが、そのユーザー権限では、接続できない状況は変わらず、次に、ユーザーの状態を調べるために、下記のコマンドを入力した。

# pdbedit -u ユーザー名 -v


その結果、下記のような項目が表示されたのだが、

Unix username:
NT username:
Account Flags: [U ]
User SID:
Primary Group SID:
Full Name:
Home Directory:
HomeDir Drive:
Logon Script:
Profile Path:
Domain:
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time:
Kickoff time:
Password last set:
Password can change:
Password must change:
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF


Logon timeを見ると、「0」になっているので、接続できているコンピュータはないことがわかったのだが、気になったのは、「Password can change」、「Password last set」の2つの項目。この2つの項目の時刻を見てみると・・・。障害の起きた時刻とほぼ同じ・・・。


つまり、今回の障害の原因は、誰かがsambaの特定ユーザーのパスワードを変更してしまったことだったとは・・・。


とりあえず、下記のコマンドでパスワードを変更した。

# smbpasswd ユーザー名


下記のメッセージが表示される新しいパスワードを要求されるので、新しいパスワードを2回入力した。

New SMB password:
Retype new SMB password:
Password changed for user ユーザー名.
Password changed for user ユーザー名.


パスワード変更後、接続テストをしてみると、当然ながら、うまく接続できた。