パスワード変更時に「/usr/share/cracklib/pw_dict: error reading header」エラーが出たときの対処メモ
普段作業用に使っているVMのパスワードがなぜか変更できなくなったので、
そのとき調査したことと、復旧で行ったことをメモしておきます。
環境はCentOS6.6の64ビット版です。
起きたこと
passwd コマンドを使って、パスワードを変更しようとしたところ、以下のようなメッセージが出ました。
# passwd ユーザー root のパスワードを変更。 新しいパスワード: /usr/share/cracklib/pw_dict: error reading header PWOpen: 成功です
調べた
参考リンクを元に環境を調べたところ、cracklibの辞書ファイルが0バイトになっていたため、辞書ファイルが壊れてしまったと推測。
# cd /usr/share/cracklib/ # ls -la 合計 264 drwxr-xr-x. 2 root root 4096 7月 21 12:13 2014 . drwxr-xr-x. 78 root root 4096 5月 31 16:24 2016 .. -rw-r--r--. 1 root root 1024 6月 25 15:39 2011 cracklib-small.hwm -rw-r--r--. 1 root root 235109 6月 25 15:39 2011 cracklib-small.pwd -rw-r--r--. 1 root root 12416 6月 25 15:39 2011 cracklib-small.pwi -rw-r--r--. 1 root root 360 6月 25 15:39 2011 cracklib.magic -rw-r--r--. 1 root root 0 1月 27 16:55 2015 pw_dict.hwm -rw-r--r--. 1 root root 0 1月 27 16:55 2015 pw_dict.pwd -rw-r--r--. 1 root root 0 1月 27 16:55 2015 pw_dict.pwi
直す
該当するファイルが含まれるRPMパッケージを確認すると「cracklib-dicts」であることが分かったので、これをインストールしなおすことにしました。
# rpm -qf /usr/share/cracklib/pw_dict.hwm cracklib-dicts-2.8.16-4.el6.x86_64
パッケージの依存関係に「pam」があったので、強制再インストールにすることにしました。
# rpm -q --whatrequires cracklib-dicts pam-1.1.1-20.el6.x86_64 # yumdownloader cracklib-dicts # rpm -Uvh --force cracklib-dicts-2.8.16-4.el6.x86_64.rpm
cracklib-dictsパッケージの再インストールを行った結果、パスワード変更ができるようになりました。
# passwd ユーザー root のパスワードを変更。 新しいパスワード: 新しいパスワードを再入力してください: passwd: 全ての認証トークンが正しく更新できました。
今日はこんなところで。