トラブル対策

パスワード変更に失敗する

掲載日:2013.03.29

概要

パスワード変更画面からのパスワード変更に失敗する場合があります。

  • エラーメッセージ
『パスワードの変更に失敗しました。』

※パスワード変更機能をご利用いただく場合の設定は、『管理者マニュアル』や『外部公開インタフェース資料』をご参照ください。

前提条件

  • 管理者設定の「パスワード変更機能」を有効へ設定している
  • Active! mailのパスワード変更コマンド「ampasswd」をActive! mailのサンプルスクリプト(ampasswd_local_sampleやampasswd_remote_sample)より、そのままコピーして利用している

詳細

Active! mailのパスワード変更画面からパスワード変更を行う際は、Active! mailのパスワード変更コマンド「ampasswd」を実行します。 「ampasswd」は環境に合わせて設定していただくものとなりますが、Active! mailのサンプルスクリプトでは、システム側のパスワードコマンド「passwd」でシステム側に登録されているユーザのパスワードを変更します。その為、システム側でパスワード文字列制限がある場合には、同制限によりActive! mailのパスワード変更が失敗する可能性があります。

パスワード変更できない場合の確認方法

先ず、サンプルスクリプト「ampasswd_local_sample」では、システム側のパスワードコマンド「passwd」を用いてパスワード変更を実施している為、Active! mail上でパスワード変更時にエラーとなった文字列がパスワードコマンド「passwd」でパスワード変更できるかをご確認ください。

  • パスワードコマンド「passwd」実行サーバから下記を実行
  • # su - apache -s /bin/bash
    $ passwd 該当ユーザ
※「su」で指定するユーザはActive! mailで設定している「HTTPサーバ実効ユーザ」となります。「HTTPサーバ実効ユーザ」は管理者画面の「システム環境確認」画面より確認してください。
尚、パスワードコマンド「passwd」実行時に『BAD PASSWORD』等のエラー応答があった場合、サンプルスクリプトではエラーと判断し、パスワード変更処理を中止し、上記のエラーメッセージを出力してパスワード変更に失敗します。 『BAD PASSWORD』エラー等が発生する事例として、下記のような場合を確認しています。事例と一致するか、確認をお願いします。
  • パスワード変更前と同じ文字列を指定した場合
  • パスワード文字列が短すぎる場合
  • パスワードが複雑ではない場合
  • ※辞書登録されているようなパスワードの場合
  • ユーザIDと同じ文字列が含まれる場合
次に、上記事例に一致せず、システム側のパスワードコマンド「passwd」を実行して、エラー無くパスワード変更できた場合には、サンプルスクリプト「ampasswd」をデバッグモードでコマンドラインから実行していただくことで、どの処理で失敗しているかを確認できます。
  • Webサーバから下記を実行
  • # su - apache -s /bin/bash
    $ /usr/local/activemail/sbin/ampasswd --email "当該ユーザのメールアドレス" --oldpass "変更前のパスワード" --newpass "新パスワード" debug
※「su」で指定するユーザはActive! mailで設定している「HTTPサーバ実効ユーザ」となります。「HTTPサーバ実効ユーザ」は管理者画面の「システム環境確認」画面より確認してください。

「ampasswd」をデバッグモードで実行した場合の出力結果


spawn /bin/sh
sh-4.1$ PS1=#%;export PS1
#%LANG=C
#%export LANG
#%su ユーザID
Password:
#%passwd
Changing password for user ユーザID
Changing password for パスワード
(current) UNIX password:
New password:
BAD PASSWORD: it is too short
New password:
BAD PASSWORD: it is too short
New password: can't read "result": no such variable
while executing
"if { $result == "success" } {
send_user "STATUS:SUCCESS"
} else {
send_user "STATUS:FAILURE"
}"
(file "/usr/local/activemail/sbin/ampasswd" line 84)
  • 上記は一例となります為、実際の応答結果とは異なる場合があります。
  • 記載例は、システム側から「パスワードが短すぎる(BAD PASSWORD: it is too short)」との応答があった場合となります。