开发者社区> 问答> 正文

登录 Linux 实例失败并报错:login: Module is unknown

使用管理终端或 实例账号密码远程连接并登录 Linux 实例时,无法成功登录,而且 secure 日志中出现类似以下报错信息:

login: Module is unknown. login: PAM unable to dlopen(/lib/security/pam_limits.so): /lib/security/pam_limits.so: cannot open shared object file: No such file or directory.

展开
收起
开发者说 2019-08-02 09:22:37 1350 0
1 条回答
写回答
取消 提交回答
  • 原因分析 每个启用 PAM 的应用程序,在 /etc/pam.d 目录中都有对应的同名配置文件。例如,login 命令的配置文件是 /etc/pam.d/login,可以在相应配置文件中配置具体的策略,如下所示:

    配置文件 说明 /etc/pam.d/login 管理终端登录的配置文件 /etc/pam.d/sshd SSH 登录的配置文件 /etc/pam.d/system-auth 系统全局配置文件 远程连接登录时,某些启用了 PAM 的应用程序加载模块失败,导致配置了相应策略的登录方式交互失败。这里主要查看 /etc/pam.d/sshd 和 /etc/pam.d/system-auth 路径,管理终端的 /etc/pam.d/login 配置文件出错时,您需要提交工单联系技术支持团队。

    解决方法 无法通过实例账号密码登录时 通过管理终端登录 Linux 实例。

    执行命令 cat filename 查看 PAM 配置文件,如 cat /etc/pam.d/login 和 cat /etc/pam.d/system-auth。

    检查配置文件是否有类似如下配置信息,如,本文检查到 /etc/pam.d/system-auth 配置文件中有如下配置信息。

    session required pam_limits.so image.png

    执行命令 ll /lib/security/pam_limits.so 检查 pam_limits.so 模块在系统中是否存在。 这一步检查 pam_limits.so 模块是否被错误地放置在 /lib/security 目录下,因为,64 位系统的 Linux 实例的正确路径应该为 /lib64/security。

    执行命令 vi filename 修改项目模块 pam_limits.so 的路径为正确路径,其中 filename 为您在第 3 步查看到的配置文件,如本示例中的 vi /etc/pam.d/system-auth。

    session required /lib64/security/pam_limits.so # 修改为正确路径 重新登录 Linux 实例。

    无法通过管理终端登录时 请提交工单联系阿里云。

    参考链接 您可以参阅文档云服务器 ECS Linux SSH 无法登录问题排查指引详细地排查无法 SSH 登录的故障。

    2019-08-02 09:24:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载