[root@master ~]# sudo yum update sudo: 在加载插件“sudoers_policy”时在 /etc/sudo.conf 第 19 行出错 sudo: 无法加载 /usr/libexec/sudo/sudoers.so:libssl.so.10: 无法打开共享对象文件: 没有那个文件或目录 sudo: 致命错误,无法加载插件
时间: 2025-05-17 14:13:32 浏览: 79
### 解决 `sudo` 命令因缺少 `libssl.so.10` 导致无法加载插件的问题
当遇到 `sudo` 提示无法加载 `/usr/lib/sudo/sudoers.so` 插件并指出缺失 `libssl.so.1.1` 或其他 OpenSSL 库文件时,通常是因为系统的 OpenSSL 版本不匹配或库路径未正确设置。以下是针对该问题的解决方案。
#### 方法一:重新安装或更新 OpenSSL
如果系统中的 OpenSSL 版本过旧或者损坏,可以尝试重新安装最新版本的 OpenSSL 来解决问题:
对于基于 Debian 的发行版(如 Ubuntu),执行以下命令:
```bash
sudo apt update && sudo apt install --reinstall openssl libssl-dev
```
对于基于 Arch 的发行版(如 Manjaro),执行以下命令:
```bash
sudo pacman -Syyu openssl
```
这一步会确保系统中安装了最新的 OpenSSL 及其开发库[^2]。
#### 方法二:手动编译并安装 OpenSSL
如果默认仓库中的 OpenSSL 不满足需求,可以选择从官方源码编译安装最新版本的 OpenSSL:
1. 下载 OpenSSL 源码:
```bash
wget https://www.openssl.org/source/openssl-latest.tar.gz
tar -xzvf openssl-latest.tar.gz
cd openssl-*
```
2. 编译并安装:
```bash
./config shared --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make && sudo make install
```
3. 更新动态链接器缓存:
```bash
echo '/usr/local/openssl/lib' | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
```
完成上述步骤后,检查新版本是否生效:
```bash
/usr/local/openssl/bin/openssl version
```
此时应显示已安装的新版本 OpenSSL。
#### 方法三:创建软链接恢复兼容性
某些情况下,程序可能依赖特定版本的 OpenSSL 库(如 `libssl.so.1.1`)。可以通过创建软链接的方式让这些程序找到所需的库文件:
假设当前系统中有 `libssl.so.3` 文件而无 `libssl.so.1.1`,则可运行如下命令建立软链接:
```bash
sudo ln -sf /path/to/existing/libssl.so.x.y.z /usr/lib/libssl.so.1.1
sudo ln -sf /path/to/existing/libcrypto.so.x.y.z /usr/lib/libcrypto.so.1.1
```
其中 `/path/to/existing/*` 是实际存在的更高版本 OpenSSL 动态库位置。此方法仅适用于两者 ABI 兼容的情况[^1]。
#### 验证修复效果
最后重启终端或计算机以使更改生效,并测试 `sudo` 是否恢复正常工作状态。
---
###
阅读全文
相关推荐


















