ldconfig --> sudo: 你在 passwd 数据库中不存在

ldconfig --> sudo: 你在 passwd 数据库中不存在

好吧,我犯了一个错误,我正在努力修复它:

我正在寻找一个libGL.so链接项目的链接,并在构建时安装的(与柯南相关的)包中找到了它。默认系统/usr/lib64/libGL.so.1似乎没有被选中(不同版本/依赖项?)

所以我转向ld.so.config添加包含 的文件夹libGL.so,就在唯一的另一行下方:

include /etc/ld.so.config.d/*
/hfs/xyz/conan-package-123/../usr/lib64/   # the line I added

然后我跑了

sudo ldconfig

然后出现了一系列以下形式的错误

"ldconfig: /hfs/xyz/conan-package-123/../usr/lib64/libGL.so is not a symbolic link"

链接仍然不起作用,但更糟糕的是,我似乎失去了 sudo 权限,并且不能再运行sudo ldconfigsu ldconfig编辑/写入/etc/ld.so.config。我还尝试使用我的主目录中的本地版本来使用标志和缓存文件ldconfig-f-C似乎没有恢复我的特权。

作为记录,我的/etc/passwd文件是 ,-rw-r--r-- root root并且/etcdrwxr-xr-x root root,并且pwck

wck: Permission denied.
pwck: cannot lock /etc/passwd; try again later.

我应该为此重新启动一些服务吗?否则那就是真正的陷阱 22. 我能做什么?

答案1

我的 VNC 超时后,问题变得更糟,因为 VNC 连接会放弃连接。我被锁在门外了!

显然,整个认证过程突然中断了。我的推理是 sulogin-shell 正在从 ld.so.cache 中获取带有 libc 版本的链接代码,这会与已加载的其他版本发生冲突。它会在启动过程的早期阶段抱怨 sulogin 版本冲突并且无法加载加密 cgp 模块。

唯一的选择是前往物理机现场并尝试查看发生了什么情况。经过一番挖掘,我找到了如何侵入我的 RHEL8 系统。

  • 重启并按shift进入GRUB
  • 选择启动配置文件并按“e”进行编辑(其他救援选项不起作用)
  • init=/bin/bash在加载内核的行末尾添加,这会给你一个根提示符
  • 显然你也可以放在rw前面(我后来了解到)
  • 按“ctrl-x”启动该更改
  • 这会让你进入某种带有提示的假root模式
  • mount /proc
  • mount -o rw,remount /将条目重新装载/etc/fstab为读/写
  • 现在您可以再次更改文件和文件夹!我(重新)移动了坏的/etc/ld.so.cache并重写了/etc/ld.so.conf文件,不包含有问题的路径。然后我去寻找/usr/sbin/ldconfig并重建缓存。
  • sync确保所有更改都写入磁盘
  • umount
  • 冷重启,瞧,登录提示再次正常出现。

之后 sudo 也再次正常工作。

是的,对我来说,我的 Linux 业力刚刚上升。

相关内容