我与之合作的公司正在开发一个基于Laravel的web应用程序,使用Google平台基础设施。前端VM是安装了Apache服务器的Centos8操作系统。似乎一个开发人员运行了一个相当大规模的"dnf升级“,其中包括:内核、openssl、kerberos和其他软件包。升级之后,似乎ldconfig已经失去了理智:
[developer@webserver ~]$ sudo su - root
sudo: error in /etc/sudo.conf, line 19 while loading plugin "sudoers_policy"
sudo: unable to load /usr/libexec/sudo/sudoers.so: /lib64/libldap-2.4.so.2: undefined symbol: EVP_md4, version OPENSSL_1_1_0
sudo: fatal error, unable to load plugins "dnf“或”rpm“等其他命令也是如此:
[developer@webserver ~]$ rpm
rpm: symbol lookup error: /lib64/librpmio.so.8: undefined symbol: EVP_md2, version OPENSSL_1_1_0经过一些调查之后,我发现指定LD_LIBRARY_PATH变量的相同命令正在工作:
[developer@webserver ~]$ LD_LIBRARY_PATH=/lib64 rpm
RPM version 4.14.3
Copyright (C) 1998-2002 - Red Hat, Inc.
This program may be freely redistributed under the terms of the GNU GPL
......of课程,我不能用"sudo“命令做同样的技巧。
重要的事实是,VM仍然在运行,而且从来没有重新启动过(稍后我会为为什么这么说而欢呼)。
主要问题是我们不能使用根帐户,因为"sudo“不起作用,默认情况下,Google使用公共密钥身份验证作为耳聋方法(本地用户具有由finally..at生成的随机密码)。所以实际上,我甚至不能做一个"dnf重新安装“来尝试修复这些问题
我担心,一旦重新启动,每个服务都会因为不正确的依赖库路径而停止工作,所以我没有重新启动,而是创建了一个基于VM的映像,然后基于该映像创建了一个新的VM。正如我所想的:一旦启动了新的VM,每个服务都停止工作。我能够通过GCP网络接口的串行控制台读取日志。
一段片段:
...
Oct 27 20:20:30 webserver google_oslogin_nss_cache[783]: /usr/bin/google_oslogin_nss_cache: /lib64/libjson-c.so.4: no version information available (required by /usr/bin/google_oslogin_nss_cache)
Oct 27 20:20:30 webserver NetworkManager[778]: /usr/sbin/NetworkManager: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: EVP_md4, version OPENSSL_1_1_0
Oct 27 20:20:30 webserver google_oslogin_nss_cache[783]: /usr/bin/google_oslogin_nss_cache: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: EVP_md4, version OPENSSL_1_1_0
Oct 27 20:20:30 webserver sssd[771]: ldb: unable to dlopen /usr/lib64/ldb/modules/ldb/ldap.so : /lib64/libldap-2.4.so.2: undefined symbol: EVP_md4, version OPENSSL_1_1_0
...使用Google官方文档,我找到了VM属性的“启动脚本”部分,它可以在每次启动时启动,并且可以用来“更改”用户的密码。我知道,默认情况下,所有vm都禁用了根访问,因此我将其添加到vm的“自动化”脚本中:
#! /bin/bash
echo 'developer:PASSWORD' | chpasswd
echo 'root:PASSWORD' | chpasswd一旦重新启动,我尝试登录使用“串行控制台”选项的网页界面,但没有运气。我还使用了journalctl (作为普通用户)在日志中找到一些东西.但什么都没有。我认为这是"google_oslogin_nss_cache“错误的结果--没有办法运行该脚本。
在互联网上搜索时,我发现有人可以使用"gcloud计算ssh“命令直接以"root”身份登录。因此,我尝试使用同一个项目的另一个VM登录,同时使用我的google帐户用户和根user...but,这也是...no运气的方式。(我忘记提到我的google帐户有“项目所有者”角色,所以实际上我拥有所有必要的权限)
还有另一种方法来重置"root“密码而不用"sudo”,或者我必须从一开始就重新安装VM?
我很抱歉长时间的explanation....hope,一切都很清楚
谢谢
发布于 2022-10-29 12:47:58
所以..。实际上,这个问题被分为两个不同的问题:
/usr/lib64 64
https://stackoverflow.com/questions/74226880
复制相似问题