你好,游客 登录 注册 搜索
背景:
阅读新闻

Arch Linux sudo: PAM authentication error: Module is unknown [Solved!]

[日期:2017-05-23] 来源:cnblogs.com/rain-blog  作者:rain [字体: ]

问题描述:  

我的 Arch Linux 已经用了快半年多,由于 Arch Linux 的滚挂问题,我从没有直接升级过系统。软件版本以及库自然落后了一些。

就在我准备需要用到 NFS 时,挂载网络文件系统时由于 librpc 太旧而失败了。所以看来我得更新 librpc 了。用 yaourt -Ss 查看了一下源上的版本。

  最新的 NFS 需要 libtirpc.so.3 而我的却是 libtirpc.so.1 。最后安装了 libtirpc-1.0.1-2 后。悲剧发生了。任何用到 sudo , 以及 su 的地方,均出现如下错误:

sudo: PAM authentication error: Module is unknown

  我意识到,我一旦重启了将无法开机了。本来已经天晚,心想睡吧。明天再弄,先不关电脑就好。

结果,第二天发现屏幕已锁定,突然又明白了什么。果然尼码,认证失败。根本登不进去!真是悲剧。

解决办法:

  我参考 https://bbs.archlinux.org/viewtopic.php?pid=1578812 上别人的讨论。发现别人是更新系统导致的,虽然降了 libtirpc 的版本,但是其他依赖没有降下去。当然他是失败。

但是我不一样,我仅仅更新了 libtirpc ,而且当时我发现并没有安装任何的依赖软件包。所以我认为我只要降回原来 libtirpc 的版本。便能解决问题。

具体做法:

  重启,进入 Grub 引导界面,按 e 编辑内核启动参数。如图,在 linux 那行末尾添加 single 以单用户身份启动,进入电源模式:

 Arch Linux sudo: PAM authentication error: Module

  然后按 Ctrl + x 启动。启动后,请求输入 root 密码登录。此时可以成功登录 ( 暂时没深究过为什么 )。

登录后,就有一个 Shell 可用了,而且还是 root 账户。

# cd /var/cache/pacman/pkg
# ls -l | grep rpc 
librpcsecgss-0.19-8-x86_64.pkg.tar.xz
libtirpc-0.3.2-2-x86_64.pkg.tar.xz
libtirpc-1.0.1-2-x86_64.pkg.tar.xz
rpcbind-0.2.3-3-x86_64.pkg.tar.xz

  显然 libtirpc-0.3.2 是我之前合适的版本。(因为知道 Arch Linux 已滚挂,所以一直没清理 pacman 安装过的软件包 ,如果你清理了,那就得费功夫找你原来版本的包了。)

# pacman -U libtirpc-0.3.2-2-x86_64.pkg.tar.xz

  成功安装后,重启系统,问题便解决了。至于 NFS ,看来我还得好好思考下怎么解决。

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-05/144138.htm

linux
相关资讯       Arch Linux sudo 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款