passwd
コマンドを使用してLinuxシステムでECSインスタンスのパスワードを変更しようとすると、passwd: Module is unknown
やpasswd: password unchanged
などのエラーメッセージが表示されることがあります。 これらのメッセージは通常、パスワード管理のためのプラグイン可能認証モジュール (PAM) 構成の問題、またはPAMモジュールの欠落または不適切な構成を示しています。 PAMは、Linuxシステムでユーザー認証を管理するために不可欠です。
問題の内容
シナリオ1: Linuxシステムを使用したECSインスタンスのパスワード変更がpasswd
コマンドを使用して失敗し、エラーメッセージが表示されます。
passwd: Module is unknown
passwd: password unchanged
シナリオ2: Cloud Assistantオンラインパスワードのリセットが失敗し、エラーメッセージが表示されます。
考えられる原因
PAMモジュールがインストールされていない、または欠落している:
pam_unix.so
やpam_pwquality.so
などの重要なPAMモジュールがないか、これらのモジュールファイルが誤って削除または破損している可能性があります。PAM設定ファイルエラー:
/etc/pam.d/
ディレクトリ内の設定ファイル (common-password
やsystem-auth
など) は、存在しないモジュールを参照している場合があります。パスワードポリシー設定の問題:
/etc/security/pwquality.conf
ファイルが正しく設定されていないため、pam_pwquality.so
モジュールが誤動作する可能性があります。
ソリューション
ステップ1: pam_unix.so
が存在するかどうかを確認する
Linuxインスタンスにリモート接続します。
特定の操作については、「SSHプロトコルを使用したWorkbenchツールを使用したLinuxインスタンスへのログイン」をご参照ください。
次のコマンドを実行して、
pam_unix.so
モジュールの存在を確認します。sudo find / -name "pam_unix.so"
説明pam_unix.so
が存在する場合は、pam_pwquality.soモジュール設定の確認に進みます。pam_unix.so
がない場合は、システムライブラリファイルの破損またはPAM関連パッケージのアンインストールが原因である可能性があります。 PAMパッケージを再インストールします。pam_unix.so
モジュールは、基本的なユーザー認証およびパスワード管理機能に不可欠です。
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
が有効になっている場合、ユーザーはパスワードを変更するときに定義された複雑さのルールを満たす必要があります。
Module is unknown
やpam_chauthtok() failed
など、pam_pwquality.so
に関連するエラーメッセージがないかシステムログを調べます。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_puquality.so): /lib/security/pam_puquality.so: cannot open shared object file: No such file or directory PAM adding faulty module: pam_puquality.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
それでもパスワードの変更に失敗した場合、またはその他のエラーメッセージが表示された場合は、チケットを起票または
Alibaba Cloudテクニカルサポートにお問い合わせください。