當您嘗試使用passwd
命令修改Linux系統的ECS執行個體密碼時,出現passwd: Module is unknown
和passwd: password unchanged
的錯誤提示,這通常意味著系統中與密碼管理相關的PAM(Pluggable Authentication Modules)配置出現了問題,或者某些必要的PAM模組缺失或配置不正確。PAM是Linux系統中用於系統管理使用者認證的模組。
問題現象
現象一:使用passwd
命令修改Linux系統的ECS執行個體密碼失敗,提示如下資訊:
passwd: Module is unknown
passwd: password unchanged
現象二:通過雲助手線上重設執行個體密碼執行失敗,提示如下資訊:
可能原因
PAM模組未安裝或丟失:系統中缺少必要的PAM模組(如
pam_unix.so
或pam_pwquality.so
);或模組檔案被誤刪除或損壞。PAM設定檔錯誤:
/etc/pam.d/
目錄下的設定檔(如common-password
或system-auth
)引用了不存在的模組;或設定檔中的模組路徑或參數錯誤。密碼原則配置問題:
/etc/security/pwquality.conf
檔案未正確配置,導致pam_pwquality.so
模組無法正常工作。
解決方案
步驟一:檢查pam_unix.so
是否存在
遠端連線Linux執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入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的核心模組,負責基本的使用者認證和密碼管理功能。
重新安裝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"
步驟二:檢查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_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
步驟三:驗證配置是否生效
嘗試修改密碼,檢查是否生效。
passwd
如果密碼修改仍然失敗,或者出現其他錯誤提示,請提交工單聯絡阿里雲支援人員。