![ldconfig --> sudo: 你在 passwd 数据库中不存在](https://linux22.com/image/204231/ldconfig%20--%3E%20sudo%3A%20%E4%BD%A0%E5%9C%A8%20passwd%20%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%E4%B8%8D%E5%AD%98%E5%9C%A8.png)
好吧,我犯了一个错误,我正在努力修复它:
我正在寻找一个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 ldconfig
或su ldconfig
编辑/写入/etc/ld.so.config
。我还尝试使用我的主目录中的本地版本来使用标志和缓存文件ldconfig
,-f
我-C
似乎没有恢复我的特权。
作为记录,我的/etc/passwd
文件是 ,-rw-r--r-- root root
并且/etc
是drwxr-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 业力刚刚上升。