帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 操作指南
  5. 实例
  6. 连接实例
  7. 连接常见问题
  8. SSH远程连接问题
  9. Linux系统的ECS实例修改密码失败,提示“passwd Module is unknown”怎么办?

Linux系统的ECS实例修改密码失败,提示“passwd Module is unknown”怎么办?

  • SSH远程连接问题
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

当您尝试使用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

现象二:通过云助手在线重置实例密码执行失败,提示如下信息:

image

可能原因

  1. PAM模块未安装或丢失:系统中缺少必要的PAM模块(如pam_unix.so或pam_pwquality.so);或模块文件被误删除或损坏。

  2. PAM配置文件错误:/etc/pam.d/目录下的配置文件(如 common-password 或 system-auth)引用了不存在的模块;或配置文件中的模块路径或参数错误。

  3. 密码策略配置问题:/etc/security/pwquality.conf文件未正确配置,导致pam_pwquality.so模块无法正常工作。

解决方案

步骤一:检查pam_unix.so是否存在

  1. 远程连接Linux实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例。

  2. 运行以下命令检查pam_unix.so模块是否存在。

    sudo find / -name "pam_unix.so"
    说明
    • 如果pam_unix.so存在,请检查pam_pwquality.so模块配置。

    • 如果pam_unix.so不存在,可能是系统库文件损坏或PAM相关包未安装,请重新安装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"

步骤二:检查pam_pwquality.so模块配置

pam_pwquality.so模块用于增强密码复杂性检查,包括最小长度、字符类型等。如果系统中启用了pam_pwquality.so,用户在修改密码时必须满足其定义的复杂性规则。

  1. 查看系统日志中是否有与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模块未安装,或者安装路径不正确。

  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未安装。

    说明
    • 如果您不需要强制密码复杂性检查(例如密码长度、字符类型等),可以直接注释掉或删除/etc/pam.d/common-password文件中与pam_pwquality.so相关的行。

    • 如果您需要密码复杂性检查,则需要安装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未安装且被引用,有以下两种方式。

    方式一:安装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"

    方式二:注释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文件中的规则正确。

步骤三:验证配置是否生效

  1. 尝试修改密码,检查是否生效。

    passwd
  2. 如果密码修改仍然失败,或者出现其他错误提示,请提交工单联系阿里云技术支持。

相关文章

Linux内核参数net.core.optmem_max设置过小导致无法远程连接实例 2025-04-01 11:59

net.core.optmem_max 是 Linux 内核中的一个网络参数,用于设定每个套接字所允许的最大缓冲区的大小。该参数直接影响网络应用程序在处理大量并发连接和高带宽流量时的性能。如果设置过小,可能导致网络性能下降、丢包增多和时延过高,从而影响远程连接实例的稳定性。本文将介绍如何调整该参数。

Linux实例中由于SELinux服务开启导致SSH远程连接异常 2025-04-01 11:59

本文介绍Linux实例中由于SELinux服务开启导致SSH远程连接异常时的解决方案。 问题描述 在SSH远程连接Linux实例时,即便密码正确输入后,在命令行或secure日志中也会出现如下错误信息。

Linux实例中,SSH登录或数据传输速度都很慢怎么办? 2025-04-01 11:59

本文介绍Linux系统的ECS实例中,SSH登录或数据传输速度都很慢的问题原因和解决方案。 问题现象 在Linux系统的ECS实例中,通过外网或内网使用SSH服务登录或数据传输时,速度很慢。 问题原因 该问题可能是ECS实例中,SS

Linux实例如何设置SSH客户端的会话连接保持时间 2025-04-01 11:59

概述 使用SSH客户端远程连接Linux系统的阿里云ECS实例,连接会话闲置一段时间后,基于安全考虑,SSH客户端会在超过特定时间后自动终止远程连接。若希望延长SSH客户端的会话连接保持时间,请参考本文进行操作。 详细信息 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾

Linux系统下如何保持进程在SSH客户端断开后仍继续运行? 2025-04-01 11:59

本文介绍在Linux系统的ECS实例内,当断开SSH客户端后,如何保持进程继续运行的解决方案。 使用场景 在Linux系统中,在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开SSH连接或关闭客户端软件,否则可能会导致执行中断。本文介绍两种保障程序在您退出登录后持续运行的方法。

Linux系统的ECS实例中,启动SSH服务提示“Failed to start OpenSSh server daemon”错误怎么办? 2025-04-01 11:59

本文介绍在Linux系统的ECS实例中,启动SSH服务提示“Failed to start OpenSSh server daemon”错误的原因和解决方案。 问题现象 在Linux系统的ECS实例中,SSH服务(sshd.service)无法启动,运行systemctl status sshd.s

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1