“医生,我还有救吗?” - 修复误删audit导致的PAM认证出错
哎你怎么死了
清空小金库拥有了一直眼馋的51nb x62,作subnote之用。在朋友的安利下安装了AOSC。
x62能够使用x6* 原配的滑动式指纹识别器,生物识别对于把密码长度设置成十个以上混合字符的我是必要的,但是前阵子太忙(忙着摸鱼),并没有折腾。
2024年11月25日,这是一个月黑风高的晚上,我装起了fprintd
, 试图启用指纹认证。但也许是和aosc采用的最新kernel中的某些东西打架,只能录入指纹而不能进行认证。这是因为无法使用pam-auth-update
。
- 非常邪门的,无论是用包管理工具还是手动安装,都装不上这玩意,也许还是各种依赖项可乐曼妥思了。
- 遂尝试手动更改配置文件,依旧不行。
以上内容对于本篇blog并不重要,直接促成了这个网页中的文字垃圾的事件是:万策尽的本epic big brain开始手动编译一些工具。在这个过程中反手
1 |
|
当场头部以下截肢了。
尸检报告
可喜可贺,可喜可贺。现在我们只要涉及到用户认证相关操作,就会得到PAM 认证出错:模块未知
.所以很显然此时:
- 无法使用任何需要管理员权限的功能,su不了do了。
- 当然也无法登录系统
所以这位icu中的病人自然只要关机就会断气
然后我关机了。
- 啊啊,只能说依我看这时候就算不关机也没什么办法,不能通过任何方式安装软件包,
oma undo
这种防呆机制也没用,rollback也还是要安装的啊
(心肺苏生法)
亘古不变的真理就是缺啥补啥。所以让我们来重新安装 PAM 和 SUDO 相关的包。
经过一番冲浪,参考过网友的使用双系统的补救方法 后,遂采用相近思路:
挂载系统盘
- 创建一个AOSC安装介质插上,u盘启动,然后选择急救
- 进入 LiveKit,打开终端
- 用
lsblk
找到硬盘中系统的根分区(/dev/sda1
或类似,这里就以这个为例) - 挂载系统盘根分区为
/mnt
1
sudo mount /dev/sda1 /mnt
把我们接下来在/mnt
下操作时要访问的、当前救援环境里的东西挂载入虚拟文件系统。
- 现在livekit的
/dev
、/proc
和/sys
目录被绑定到/mnt
目录下对应的子目录1
2
3sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
进入 chroot
环境, 把我们挂载为/mnt
的分区映射为虚拟环境的根分区/
1
sudo chroot /mnt
重装
好了,现在我们可以在被隔离出来的chroot环境里重新安装 PAM 和 SUDO了
- 先联网
- 肌肉记忆之更新包索引, 不知为何我没能成功更新,也许是网络抽风了重装
1
apt update
1
apt install --reinstall libpam0g sudo
最后退出chroot,解除挂载,重启
1
2
3
4
5
6exit
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt
sudo reboot
嗯…活了。
依旧存在的问题
现在这套系统基本运行良好,但是还有两个问题亟待解决:
- ax210网卡睡眠唤醒后必死,只能用蓝牙而wifi不工作。该问题几天前已报告
- 指纹还是用不了,bruh
(完)