前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Arch Linux sudo: PAM authentication error: Module is unknown [Solved!]

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

作者头像
RainMark
发布2019-09-10 19:47:59
4.3K0
发布2019-09-10 19:47:59
举报
文章被收录于专栏:RainMark 的文章

问题描述:

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

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

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

代码语言:javascript
复制
sudo: PAM authentication error: Module is unknown

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

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

解决办法:

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

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

具体做法:

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

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

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

代码语言:javascript
复制
# 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 安装过的软件包 ,如果你清理了,那就得费功夫找你原来版本的包了。)

代码语言:javascript
复制
# pacman -U libtirpc-0.3.2-2-x86_64.pkg.tar.xz

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

原创文章,欢迎任何形式的转载,但请注明出处!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-02-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档