问题描述
我刚刚听说过这个错误 “Dirty COW”,它允许任何对文件具有读访问权限的用户也可以写入文件并获得管理访问权限。我如何防止这个错误?
最佳办法
古老的脏牛虫
自内核版本 2.6.22 以来,此错误一直存在。它允许具有读取访问权限的本地用户获得管理权限。已发出警告 ( Softpedia: Linux Kernels 4.8.3, 4.7.9 & 4.4.26 LTS Out to Patch “Dirty COW” Security Flaw ),并敦促用户升级到 Kernel Linux 内核 4.8.3、Linux 内核 4.7.9 和 Linux 内核 4.4.26 LTS。此链接具有误导性,因为 Ubuntu 不支持这些内核版本。
这个答案是为 Ubuntu 用户量身定制的,它告诉你:
-
推荐给 Ubuntu 用户的内核版本
-
如何显示您当前的内核版本
-
如何为 Ubuntu 支持的内核应用修复
-
如何为不受支持的 Ubuntu 内核应用修复
Ubuntu 用户 “Dirty COW” 推荐内核
Ubuntu 于 2016 年 10 月 20 日发布了安全更新,以修补所有受支持的 Ubuntu 版本使用的内核:Softpedia: Canonical Patches Ancient “Dirty COW” Kernel Bug in All Supported Ubuntu OSes
Canonical 敦促所有用户立即通过安装以下补丁来修补他们的系统:
-
linux-image-4.8.0-26 (4.8.0-26.28) 适用于 Ubuntu 16.10
-
linux-image-4.4.0-45 (4.4.0-45.66) 适用于 Ubuntu 16.04 LTS
-
linux-image-3.13.0-100 (3.13.0-100.147) 适用于 Ubuntu 14.04 LTS
-
linux-image-3.2.0-113 (3.2.0-113.155) 适用于 Ubuntu 12.04 LTS
-
linux-image-4.4.0-1029-raspi2 (4.4.0-1029.36)
Ubuntu 14.04 LTS 的 Xenial HWE 内核也更新到 linux-image-4.4.0-45 (4.4.0-45.66~14.04.1) 版本,Ubuntu 12.04 LTS 的 Trusty HWE 内核更新到 linux-image-3 版本。 -100(3.13.0-100.147~精确1)。
请按照 Canonical 提供的说明立即更新您的 Ubuntu 安装: https://wiki.ubuntu.com/Security/Upgrades 。
显示您当前的内核版本
要显示当前运行的内核版本,请使用 Ctrl
+ Alt
+ T
打开终端,然后键入:
uname -a
您启动时使用的内核版本显示如下:
Linux dell 4.8.1-040801-generic #201610071031 SMP Fri Oct 7 14:34:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
请记住,在安装带有补丁的新内核之后,您仍然可以从 Grub 引导旧内核版本。旧版本不会应用补丁,这个内核版本 4.8.1 就是这种情况。
再次记住 Ubuntu 不支持内核版本 4.8.1。
如何修复 Ubuntu 支持的内核
由于 Ubuntu 已经发布了该错误的修复程序,所有用户需要做的就是升级他们的系统。如果启用了每日安全更新,则内核升级已经完成。在上面的内核列表中检查您的内核版本。
如果 Ubuntu 没有自动升级你的内核版本,那么运行:
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
重新启动后,通过重复上一节的说明检查您当前的内核版本。
如何修复不受支持的 Ubuntu 内核
某些具有较新硬件的安装可能使用不受支持的内核,例如 4.8.1
或更高版本。如果是这样,您将需要手动升级内核。虽然上面的错误报告链接说使用内核 4.8.3
,但截至 2016 年 10 月 30 日,4.8.5
是最新的,这是如何安装它:
cd /tmp
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805_4.8.5-040805.201610280434_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-image-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
sudo dpkg -i *.deb
sudo reboot
重新启动后,通过重复两部分的说明来检查您当前的内核版本。