输入密码之前所有用户的 Debian “登录错误”

输入密码之前所有用户的 Debian “登录错误”

我想我现在的系统已经死了,但我不知道如何恢复。

我正在使用此处概述的标准方法从 Buster 更新到 Bookworm -https://wiki.debian.org/DebianUpgrade

开始升级后,出现错误/usr/bin/perl: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory并停止升级。赶紧搜索解决方案,发现这个答案解决它,所以开始执行它。

当尝试运行时sudo cp -av lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/,我遇到了一个奇怪的 sudo 错误,类似于cannot escalate, is your account locked?我不知道确切的错误。我以为快速重启就能解决问题,但这就是问题开始的地方。

计算机启动后,我尝试通过 SSH 连接到计算机,但始终出现连接被拒绝的情况。我大部分时间都在无头运行,所以这显然是一个坏兆头。我把它从平常所在的位置取下来,然后将其插入显示器以了解发生了什么。

机器启动正常,但在登录提示符处,每当我输入用户名时,我都会Login incorrect在提示输入密码之前立即得到提示。我尝试过root,也得到了Login incorrect

我尝试启动 debian 恢复,但遇到了同样的错误。无论我做什么,我都无法登录系统。

这是登录提示之前的日志屏幕截图。

启动日志

我尝试从 USB 驱动器启动进入救援模式,并且能够在系统上收到提示。尝试journalctl只会给我“未找到日志文件”。

我能找到的唯一值得注意的是/var/log/auth.log,即;

PAM unable to dlopen(pam_unix.so): /lib/security/pam_unix.so: cannot open shared object file: No such file or directory
PAM adding faulty module: pam_unix.so
FAILED LOGIN (1) on `/dev/tty1` for `root`, Authentication Failure

有谁知道我如何从此时恢复系统?我完全不知道该怎么办。我所能看到的只是USB救援模式提示符,因此我的操作相对有限。

谢谢

答案1

刚从这种状态中恢复过来,我就是这么做的;

  • 使用 Debian Live 安装程序启动,然后进入恢复。
  • 在恢复中加载现有安装
  • 安装所有相关的驱动器,在我的情况下/var/usr没有安装,所以导致了一些问题。
  • 以下信息在这里,

跑步

cd /tmp  
apt download libcrypt1  
dpkg-deb -x libcrypt1_1%3a4.4.33-2_amd64.deb  .  
cp -av lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/
apt --fix-broken install
  • 由于 PAM 的损坏状态已解决,因此重新启动、登录现在可以使用
  • 结束sudo apt full-upgrade

这使我的系统恢复到完全可用、正常运行和升级的状态。看起来它在升级过程中破坏了 libcrypt,因此在升级中崩溃,然后由于 libcrypt 被破坏而导致登录中断。

请注意,我还遇到了一个问题,即内核由于 原因而未升级aufs-dkms,但在删除该问题后,它升级得很好。我还在使用 v3.16,显然这个问题已经有一段时间了!

答案2

所以,不知何故,你的libcrypto.so系统不能与系统的其他部分一起工作。也许升级中断了?也许这是手动修补和排除的东西?很难猜测。

无论如何,大多数系统工具都涉及 libcrypt(它包含密码散列例程等),因此所有允许您进行身份验证的可执行文件目前都无法正常工作。

无论如何,解决方案通常是启动 Debian live USB 记忆棒,然后将包含的软件包重新安装libcrypto.so到功能失调的主系统中。这涉及安装原始系统的根目录(例如,在 /target 上),然后执行类似的操作

apt-get download libpam-modules libcrypt1
sudo dpkg -i --root=/target libpam-modules*.deb librypt1*.deb

相关内容