すべてのプロダクト
Search
ドキュメントセンター

:Linux ECS インスタンスでの「passwd: Module is unknown」エラーのトラブルシューティング

最終更新日:Jun 21, 2026

passwd コマンドを使用して Linux ECS インスタンスのパスワードを変更する際に、passwd: Module is unknown および passwd: password unchanged というエラーが表示されることがあります。これらのエラーは通常、プラガブル認証モジュール (PAM) の設定に問題があることを示しており、PAM モジュールの欠落や設定ミスが原因です。PAM は、Linux システムがユーザー認証を管理するために使用するフレームワークです。

症状

passwd コマンドが失敗し、次のメッセージが返されます。

passwd: Module is unknown
passwd: password unchanged

クラウドアシスタントを使用してオンラインでインスタンスのパスワードをリセットしようとすると失敗し、次のメッセージが返されます。

Key pair [t-zjk5191zbypjytc] has been removed
chpasswd: (user root) pam_chauthtok() failed, error:
Module is unknown
chpasswd: (line 1, user root) password not changed
Password reset failed.

考えられる原因

  1. PAM モジュールが未インストールまたは欠落: pam_unix.sopam_pwquality.so などの必要な PAM モジュールが欠落、削除、または破損しています。

  2. PAM 設定ファイルの誤り: /etc/pam.d/ ディレクトリ内の PAM 設定ファイル (common-passwordsystem-auth など) が、存在しないモジュールを参照しているか、モジュールのパスやパラメータに誤りがあります。

  3. パスワードポリシー設定の誤り: /etc/security/pwquality.conf ファイルの設定が正しくないため、pam_pwquality.so モジュールが正常に動作しません。

ソリューション

ステップ 1: pam_unix.so の確認

  1. Linux インスタンスに接続します。

    詳細については、「ワークベンチを使用した Linux インスタンスへのログイン」をご参照ください。

  2. pam_unix.so モジュールが存在するかどうかを確認します。

    sudo find / -name "pam_unix.so"
    説明
    • pam_unix.so が存在する場合は、ステップ 2: pam_pwquality.so 設定の確認に進みます。

    • pam_unix.so が存在しない場合は、親パッケージが欠落しているか、システムライブラリファイルが破損している可能性があります。PAM パッケージを再インストールしてください。pam_unix.so モジュールは、基本的なユーザー認証とパスワード管理を処理するコア PAM モジュールです。

  3. 必要な PAM パッケージを再インストールします。

    • Ubuntu/Debian

      sudo apt-get update
      sudo apt-get install --reinstall libpam-modules
    • CentOS/RHEL/Alibaba Cloud Linux

      sudo yum reinstall pam
  4. 次のコマンドを再度実行して、pam_unix.so が存在することを確認します。

    sudo find / -name "pam_unix.so"

ステップ 2: pam_pwquality.so 設定の確認

pam_pwquality.so モジュールは、最小文字数や文字の種類などのパスワードの複雑さのチェックを強化するために使用されます。システムで pam_pwquality.so が有効になっている場合、ユーザーはパスワードを変更する際に、定義された複雑さのルールを満たす必要があります。

  1. システムログで pam_pwquality.so に関連するエラーメッセージ (Module is unknownpam_chauthtok() failed など) を確認します。

    • Ubuntu/Debian:

      sudo tail -f /var/log/auth.log
    • CentOS/RHEL/Alibaba Cloud Linux:

      sudo tail -f /var/log/secure
      説明

      たとえば、次のようなエラーメッセージが返されることがあります:

      PAM unable to dlopen(pam_pwquality.so): /lib/security/pam_pwquality.so: cannot open shared object file: No such file or directory
      PAM adding faulty module: pam_pwquality.so

      このログは、システムが pam_pwquality.so モジュールの読み込みに失敗したことを示しています。これは、pam_pwquality.so モジュールがインストールされていないか、インストールパスが正しくないことが原因と考えられます。

  2. 次のコマンドを実行して、pam_pwquality.so がインストールされているかどうかを確認します。

    sudo find / -name "pam_pwquality.so"

    出力が次のような場合、モジュールはインストールされています:

    /usr/lib/x86_64-linux-gnu/security/pam_pwquality.so
  3. pam_pwquality.so がインストールされている場合:

    1. PAM 設定ファイル (/etc/pam.d/common-password/etc/pam.d/system-auth など) が pam_pwquality.so を正しく参照していることを確認します。

      Ubuntu/Debian

      1. 次のコマンドを実行して、/etc/pam.d/common-password ファイルの内容を確認します。

        sudo cat /etc/pam.d/common-password | grep -v "#"
      2. 次の行が存在し、正しいことを確認します:

        password [success=1 default=ignore] pam_unix.so obscure sha512
        password requisite pam_deny.so
        password required pam_permit.so
        password requisite pam_pwquality.so retry=3 minlen=10 minclass=3
      3. 設定が正しくない場合は、/etc/pam.d/common-password ファイルを編集します:

        sudo vi /etc/pam.d/common-password

        次の行を追加または更新します:

        password requisite pam_pwquality.so retry=3 minlen=10 minclass=3

        ファイルを保存して終了します。

      CentOS/RHEL/Alibaba Cloud Linux

      1. 次のコマンドを実行して、/etc/pam.d/system-auth ファイルの内容を確認します。

        sudo cat /etc/pam.d/system-auth | grep -v "#"

        次の行が存在し、正しいことを確認します:

        password   sufficient   pam_unix.so sha512 shadow nullok try_first_pass use_authtok
        password   required     pam_deny.so
        password   requisite    pam_pwquality.so try_first_pass local_users_only retry=3
      2. 設定が正しくない場合は、/etc/pam.d/system-auth ファイルを編集します:

        sudo vi /etc/pam.d/system-auth

        次の行を追加または更新します:

        password requisite pam_pwquality.so try_first_pass local_users_only retry=3

        ファイルを保存して終了します。

    2. 次のコマンドを実行して、/etc/security/pwquality.conf ファイルの内容を確認します。

      sudo cat /etc/security/pwquality.conf

      次の設定が存在し、正しいことを確認します:

      minlen = 10
      minclass = 3
      retry = 3
      説明
      • minlen = 10:パスワードの最小文字数は 10 文字です。

      • minclass = 3:パスワードには、少なくとも 3 つの文字クラス (小文字、大文字、数字、特殊文字) の文字を含める必要があります。

      • retry = 3:ユーザーはパスワードの入力を 3 回まで試行できます。

  4. pam_pwquality.so がインストールされていない場合:

    説明
    • パスワードの複雑さのチェック (パスワードの長さや文字の種類など) を強制する必要がない場合は、pam_pwquality.so に関連する行を /etc/pam.d/common-password ファイル内でコメントアウトまたは削除できます。

    • パスワードの複雑さのチェックを強制する必要がある場合は、libpam-pwquality をインストールする必要があります。

    PAM 設定ファイルが pam_pwquality.so を参照しているかどうかを確認します。

    Ubuntu/Debian

    次のコマンドを実行して、/etc/pam.d/common-password ファイルを確認します。

    sudo cat /etc/pam.d/common-password | grep "pam_pwquality.so"

    出力が次のような場合、pam_pwquality.so が参照されています:

    password requisite pam_pwquality.so retry=3 minlen=10 minclass=3

    CentOS/RHEL/Alibaba Cloud Linux

    次のコマンドを実行して、/etc/pam.d/system-auth ファイルを確認します。

    sudo cat /etc/pam.d/system-auth | grep "pam_pwquality.so"

    出力が次のような場合、pam_pwquality.so が参照されています:

    password requisite pam_pwquality.so try_first_pass local_users_only retry=3

    pam_pwquality.so が参照されているがインストールされていない場合は、次のいずれかの方法を選択します。

    方法 1: pam_pwquality.so のインストール

    1. 適切なコマンドを実行して、pam_pwquality.so モジュールをインストールします。

      • Ubuntu/Debian

        sudo apt-get update
        sudo apt-get install libpam-pwquality
      • CentOS/RHEL/Alibaba Cloud Linux

        sudo yum install pam_pwquality
    2. インストールが完了したら、次のコマンドを再度実行して、pam_pwquality.so が存在することを確認します。

      sudo find / -name "pam_pwquality.so"

    方法 2: pam_pwquality.so 関連設定のコメントアウト (回避策)

    問題をすぐに解決できない場合は、一時的に pam_pwquality.so の行をコメントアウトして、パスワードの複雑さのチェックをバイパスできます。

    1. PAM 設定ファイルを開きます。

      • Ubuntu/Debian:

        sudo vi /etc/pam.d/common-password
      • CentOS/RHEL/Alibaba Cloud Linux:

        sudo vi /etc/pam.d/system-auth
    2. 次の行を見つけます:

      password requisite pam_pwquality.so retry=3 minlen=10 minclass=3
    3. 行の先頭に番号記号 (#) を追加して、コメントアウトします。

      # password requisite pam_pwquality.so retry=3 minlen=10 minclass=3
    4. ファイルを保存して終了します。

    重要
    • pam_pwquality.so をコメントアウトすると、パスワードの複雑さのルールが無効になり、システムのセキュリティが低下する可能性があります。このチェックは、テスト環境または特定のユースケースでのみ無効にすることを推奨します。

    • パスワードの複雑さのチェックを再度有効にするには、pam_pwquality.so の行のコメントアウトを解除し、/etc/security/pwquality.conf ファイルのルールが正しいことを確認してください。

ステップ 3: 修正の検証

パスワードを再度変更して、修正を検証します:

passwd