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.
考えられる原因
-
PAM モジュールが未インストールまたは欠落:
pam_unix.soやpam_pwquality.soなどの必要な PAM モジュールが欠落、削除、または破損しています。 -
PAM 設定ファイルの誤り:
/etc/pam.d/ディレクトリ内の PAM 設定ファイル (common-passwordやsystem-authなど) が、存在しないモジュールを参照しているか、モジュールのパスやパラメータに誤りがあります。 -
パスワードポリシー設定の誤り:
/etc/security/pwquality.confファイルの設定が正しくないため、pam_pwquality.soモジュールが正常に動作しません。
ソリューション
ステップ 1: pam_unix.so の確認
-
Linux インスタンスに接続します。
詳細については、「ワークベンチを使用した Linux インスタンスへのログイン」をご参照ください。
-
pam_unix.soモジュールが存在するかどうかを確認します。sudo find / -name "pam_unix.so"説明-
pam_unix.soが存在する場合は、ステップ 2: pam_pwquality.so 設定の確認に進みます。 -
pam_unix.soが存在しない場合は、親パッケージが欠落しているか、システムライブラリファイルが破損している可能性があります。PAM パッケージを再インストールしてください。pam_unix.soモジュールは、基本的なユーザー認証とパスワード管理を処理するコア PAM モジュールです。
-
-
必要な PAM パッケージを再インストールします。
-
Ubuntu/Debian
sudo apt-get update sudo apt-get install --reinstall libpam-modules -
CentOS/RHEL/Alibaba Cloud Linux
sudo yum reinstall pam
-
-
次のコマンドを再度実行して、
pam_unix.soが存在することを確認します。sudo find / -name "pam_unix.so"
ステップ 2: pam_pwquality.so 設定の確認
pam_pwquality.so モジュールは、最小文字数や文字の種類などのパスワードの複雑さのチェックを強化するために使用されます。システムで pam_pwquality.so が有効になっている場合、ユーザーはパスワードを変更する際に、定義された複雑さのルールを満たす必要があります。
-
システムログで
pam_pwquality.soに関連するエラーメッセージ (Module is unknownやpam_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モジュールがインストールされていないか、インストールパスが正しくないことが原因と考えられます。
-
-
次のコマンドを実行して、
pam_pwquality.soがインストールされているかどうかを確認します。sudo find / -name "pam_pwquality.so"出力が次のような場合、モジュールはインストールされています:
/usr/lib/x86_64-linux-gnu/security/pam_pwquality.so -
-
ステップ 3: 修正の検証
パスワードを再度変更して、修正を検証します:
passwd