离线sudo升级

Sudo权限绕过漏洞(CVE-2019-14287)
Sudo缓冲区溢出漏洞(CVE-2021-3156)
根据安全漏洞CVE-2021-3156, 受影响的 Sudo 版本:
Sudo 版本 1.7.7 到 1.7.10p9、1.8.2 到 1.8.31p2 和 1.9.0 到 1.9.5p1 受到影响。
sudo官网:https://www.sudo.ws/
sudo下载地址:https://www.sudo.ws/getting/download/
查看本机sudo版本号

sudo --version

备份相关文件

mkdir /etc/bak_sudo
find /etc/ -maxdepth 1 -name "sudo*" -exec cp -r {} /etc/bak_sudo/ \;
cp /usr/bin/sudo /usr/bin/sudo_bak_1823
cp -r /usr/libexec/sudo /usr/libexec/sudo_bak_1823

安装编译新的sudo

 tar -xf sudo-1.9.5p2.tar.gz
 cd sudo-1.9.5p2/
 ./configure --prefix=/opt/sudo  --libexecdir=/usr/libexec  --with-secure-path  --with-all-insults  --with-env-editor  --docdir=/usr/share/doc/sudo-1.9.5p2 --with-passprompt="[sudo] password for %p: "
make && make install

替换旧的版本的库文件和二进制命令

ln -sfv libsudo_util.so.0.0.0 /usr/libexec/sudo/libsudo_util.so.0
ln -sfv /opt/sudo/bin/sudo /usr/bin/

如果升级后sudo不可用,可先回退之前版本

 mv /usr/bin/sudo /usr/bin/sudo_bak_195
 mv /usr/libexec/sudo /usr/libexec/sudo_bak_195
 mv /usr/bin/sudo_bak_182  /usr/bin/sudo
 mv /usr/libexec/sudo_bak_182 /usr/libexec/sudo

环境缺少gcc依次安装如下软件包即可
gcc离线包下载地址:https://download.csdn.net/download/Dhjie_king/89425292

正常安装如下rpm包解决GCC
#--force 即使覆盖属于其它包文件也强制安装。
#--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强制安装。
rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-862.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-222.el7.x86_64.rpm  --nodeps --force
rpm -ivh glibc-devel-2.17-222.el7.x86_64.rpm    --nodeps --force
rpm -ivh cpp-4.8.5-28.el7.x86_64.rpm    --nodeps --force
rpm -ivh gcc-4.8.5-28.el7.x86_64.rpm    --nodeps --force

单机升级脚本

#!/bin/bash
 
#检查是否有gcc编译
check=$(yum list installed |grep -E  "gcc\.x86_64|gcc\-c\+\+\.x86_64|libgcc\.x86_64"|wc -l)
[[ ${check} -lt 3 ]] && echo "环境缺少gcc,请安装 gcc.x86_64 gcc-c++.x86_64 gcc-c++.x86_64 后再次执行此脚本。" && exit
 
#备份sudo相关文件
[[ -d /etc/bak_sudo ]] || mkdir /etc/bak_sudo
find /etc/ -maxdepth 1 -name "sudo*" -exec cp -r {} /etc/bak_sudo/ \;
 
#备份两个文件,后面升级失败的话,可以回退这个两个文件即可
cp /usr/bin/sudo /usr/bin/sudo_bak_182                         
cp -r /usr/libexec/sudo /usr/libexec/sudo_bak_182
 
#编译安装新的sudo
tar -xf sudo-1.9.5p2.tar.gz
cd sudo-1.9.5p2/
./configure --prefix=/opt/sudo  --libexecdir=/usr/libexec  --with-secure-path  --with-all-insults  --with-env-editor  <br>--docdir=/usr/share/doc/sudo-1.9.5p2 --with-passprompt="[sudo] password for %p: "
make && make install
 
#替换旧的版本的库文件和二进制命令
ln -sfv libsudo_util.so.0.0.0 /usr/libexec/sudo/libsudo_util.so.0
ln -sfv /opt/sudo/bin/sudo /usr/bin/

回滚脚本(如果升级后sudo不可用,可先回滚)

#!/bin/bash
mv /usr/bin/sudo /usr/bin/sudo_bak_195
mv /usr/libexec/sudo /usr/libexec/sudo_bak_195
mv /usr/bin/sudo_bak_182  /usr/bin/sudo
mv /usr/libexec/sudo_bak_182 /usr/libexec/sudo
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值