我在 Debian Wheezy 中安装了 sudo 1.8.5p2-1+nmu3+deb7u1,我需要更新它以修复 CVE-2021-3156 漏洞。不幸的是,Wheezy 不再有安全补丁,升级到 Stretch 也不是一个选择。
我无法从 Stretch 安装 sudo 包,因为它依赖于 libc6 (>= 2.17),而 Wheezy 中可用的版本是 2.13。
我还没有找到 Wheezy 的修补 sudo 包。您知道它是否存在以及在哪里可以找到它吗?我必须自己修补源代码吗?我下载了 sudo 1.8.5p2-1+nmu3+deb7u1 的源代码并检查了 sudo_1.8.19p1-2.1+deb9u3 的补丁,但源代码完全不同,我不知道如何修补代码。
答案1
我认为对您来说最简单的选择是构建 Debian 9 版本sudo
:
apt-get install devscripts libpam0g-dev libldap2-dev libsasl2-dev libselinux1-dev autoconf autotools-dev bison flex libaudit-dev
dget -u http://security.debian.org/pool/updates/main/s/sudo/sudo_1.8.19p1-2.1+deb9u3.ds
cd sudo-1.8.19p1
debian/rules binary
如果测试失败(我在 上测试失败/dev/console
),请禁用它们并再次构建:
sed -i '/build-simple check/d' debian/rules
debian/rules binary
您最终将在父目录中找到软件包,您可以使用dpkg -i
.
完成所有这些后,您可以删除构建依赖项:
apt-get purge devscripts libpam0g-dev libldap2-dev libsasl2-dev libselinux1-dev autoconf autotools-dev bison flex libaudit-dev
apt-get --purge autoremove
使用 Debian不稳定的最新源代码也可以完成同样的事情,按照阿尔乔姆的建议:
apt-get install devscripts libpam0g-dev libldap2-dev libsasl2-dev libselinux1-dev autoconf bison flex libaudit-dev zlib1g-dev
dget -u https://deb.debian.org/debian/pool/main/s/sudo/sudo_1.9.5p2-1.dsc
cd sudo-1.9.5p2/
debian/rules binary
(传统上,人们会使用apt-get build-dep
和dpkg-buildpackage -uc -us
,但如果不对包进行更多更改,这在这里不起作用 - 它有一些构建依赖项,在 Wheezy 中无法满足,但没有它们,包构建得很好。)
答案2
我建议简单地从 Debian Unstable 构建并安装软件包:
源文件:https://packages.debian.org/source/unstable/sudo
构建一个包:https://www.debian.org/doc/manuals/maint-guide/build.en.html
我提供最新和最好的功能的原因是:新软件包包含新的方便功能,例如对/etc/sudo.d/
您尚未意识到的漏洞的支持以及可能其他已修复的漏洞。