标签 补丁 下的文章

1 Linux 中的 Rust 支持继续成熟

Linux 中的 Rust 支持正在不断走向成熟,并得到了思科、三星和 Canonical 等开发商和供应商的大力支持。Rust 不可能取代 C 语言在 Linux 内核中的地位,但 Rust 绝对会成为 Linux 开发的重要语言。当然,前进的道路并不平坦,比如,死锁在 Rust 中是安全的,但在 Linux 内核中却不安全,程序员们正在解决这些问题。此外,越来越多的人开始关注将 Rust 支持反向移植到 Linux 的长期支持(LTS)版本中。Rust 开发者也会打破一个禁止重复驱动的通用规则,因为没有人愿意重复造轮子,但一些维护者希望从自己已经熟悉的驱动程序开始简单的尝试。

消息来源:ZDnet
老王点评:一旦 Rust 支持进一步成熟,饱受各种安全漏洞影响的内核的很多部分都会逐渐用 Rust 改写。

2 微软庆祝 “补丁星期二” 20 周年

每个月的第二个周二,微软都会对其产品发布安全补丁。这一传统始于比尔·盖茨在 2002 年发表的 “ 可信计算 Trustworthy Computing ” 备忘录。在采用这种统一方法之前,微软的安全更新时断时续,给 IT 专业人员和组织及时部署关键补丁带来了巨大挑战。微软安全响应中心(MSRC)率先提出了为补丁发布制定可预测时间表的想法,从 “准备就绪即发布” 的模式转变为每周定期发布,最终转变为每月发布。

消息来源:微软
老王点评:不得不说,补丁星期二为安全实践带来了很好的示范,但是似乎这种实践在开源领域并不太适用,仍然采用的是“准备就绪即发布”模式。

3 亚马逊宣布推出 Olympus LLM

这个代号为 Olympus 的模型有 2 万亿个参数,可以使其成为目前正在训练的最大模型之一。OpenAI 的 GPT-4 模型据说有 1 万亿个参数。Amazon CEO 说,“客户希望把模型带到他们的数据中,而不是相反。而这些数据中的大部分都在 AWS 中。”

消息来源:路透社
老王点评:现在没有个自己的大模型,你都不好意思说自己是个顶级 IT 公司。

因没打补丁导致澳军用直升机坠毁

上个月一架澳大利亚军方的 MRH-90 直升机在例行的海上演习中失去动力坠落。MRH-90 是老旧的欧制直升机,即将退役。事故原因被认为是直升机未能打上重要软件补丁,该补丁将防止飞行员对发动机关闭再重新启动,而它的设计不允许这么做,它要求在飞行结束时引擎空转直至关闭。防止热启动的软件补丁早就存在许多年,但很多 MRH-90 并没有打上补丁。

消息来源:The Register
老王点评:瞧瞧,不打补丁的结果多可怕。

英特尔停止生产 ASIC 挖矿芯片

自从英特尔正式宣布其挖矿芯片 Blockscale ASIC 以来,仅仅过了一年,该公司就宣布其第一代 Blockscale 1000 系列芯片的寿命结束,而且没有宣布该芯片的任何后续世代。英特尔称,“公司更加关注 IDM 2.0 业务是终止 Blockscale ASIC 的原因”。但英特尔表示“会继续监测市场机会”。

消息来源:Tom's Hardware
老王点评:投机失败,现在芯片厂商最好的生意是生产 AI 芯片。

马斯克正在开发“最大限度地寻求真相的 AI”

在成立了 X.AI 公司之后,埃隆·马斯克说他正在开发一个 ChatGPT 的替代品,“最大限度地寻求真相的 AI”,它被称之为 TruthGPT。他称该人工智能试图理解宇宙的本质,他“认为这可能是通往安全的最佳途径,因为关心了解宇宙的人工智能不太可能消灭人类,因为我们是宇宙中有趣的一部分。”OpenAI 是他帮助创立的人工智能软件非营利组织,此后 OpenAI 开始运营一个营利性子公司。他暗示,OpenAI 的利润激励可能会干扰其创建的人工智能模型的道德。

消息来源:The Verge
老王点评:听起来脑洞大开,但是我估计马斯克最后悔的还是离开 OpenAI。

如果你运行的是大型 Linux 环境,那么你可能已经将 Red Hat 与 Satellite 集成了。如果是的话,你不必担心补丁合规性报告,因为有一种方法可以从 Satellite 服务器导出它。

但是,如果你运行的是没有 Satellite 集成的小型 Red Hat 环境,或者它是 CentOS 系统,那么此脚本将帮助你创建该报告。

补丁合规性报告通常每月创建一次或三个月一次,具体取决于公司的需求。根据你的需要添加 cronjob 来自动执行此功能。

bash 脚本 通常适合于少于 50 个系统运行,但没有限制。

保持系统最新是 Linux 管理员的一项重要任务,它使你的计算机非常稳定和安全。

以下文章可以帮助你了解有关在红帽 (RHEL) 和 CentOS 系统上安装安全修补程序的更多详细信息。

此教程中包含四个 shell 脚本,请选择适合你的脚本。

方法 1:为 CentOS / RHEL 系统上的安全修补生成补丁合规性报告的 Bash 脚本

此脚本只会生成安全修补合规性报告。它会通过纯文本发送邮件。

# vi /opt/scripts/small-scripts/sec-errata.sh

#!/bin/sh
/tmp/sec-up.txt
SUBJECT="Patching Reports on "date""
MESSAGE="/tmp/sec-up.txt"
TO="[email protected]"
echo "+---------------+-----------------------------+" >> $MESSAGE
echo "| Server_Name   |  Security Errata            |" >> $MESSAGE
echo "+---------------+-----------------------------+" >> $MESSAGE
for server in `more /opt/scripts/server.txt`
do
sec=`ssh $server yum updateinfo summary | grep 'Security' | grep -v 'Important|Moderate' | tail -1 | awk '{print $1}'`
echo "$server                $sec" >> $MESSAGE
done
echo "+---------------------------------------------+" >> $MESSAGE
mail -s "$SUBJECT" "$TO" < $MESSAGE

添加完上面的脚本后运行它。

# sh /opt/scripts/small-scripts/sec-errata.sh

你会看到下面的输出。

# cat /tmp/sec-up.txt

+---------------+-------------------+
| Server_Name   |  Security Errata  |
+---------------+-------------------+
server1
server2
server3                21
server4
+-----------------------------------+

添加下面的 cronjob 来每个月得到一份补丁合规性报告。

# crontab -e

@monthly /bin/bash /opt/scripts/system-uptime-script-1.sh

方法 1a:为 CentOS / RHEL 系统上的安全修补生成补丁合规性报告的 Bash 脚本

脚本会为你生成安全修补合规性报告。它会通过 CSV 文件发送邮件。

# vi /opt/scripts/small-scripts/sec-errata-1.sh

#!/bin/sh
echo "Server Name, Security Errata" > /tmp/sec-up.csv
for server in `more /opt/scripts/server.txt`
do
sec=`ssh $server yum updateinfo summary | grep 'Security' | grep -v 'Important|Moderate' | tail -1 | awk '{print $1}'`
echo "$server,  $sec" >> /tmp/sec-up.csv
done
echo "Patching Report for `date +"%B %Y"`" | mailx -s "Patching Report on `date`" -a /tmp/sec-up.csv [email protected]
rm /tmp/sec-up.csv

添加完上面的脚本后运行它。

# sh /opt/scripts/small-scripts/sec-errata-1.sh

你会看到下面的输出。

方法 2:为 CentOS / RHEL 系统上的安全修补、bugfix、增强生成补丁合规性报告的 Bash 脚本

脚本会为你生成安全修补、bugfix、增强的补丁合规性报告。它会通过纯文本发送邮件。

# vi /opt/scripts/small-scripts/sec-errata-bugfix-enhancement.sh

#!/bin/sh
/tmp/sec-up.txt
SUBJECT="Patching Reports on "`date`""
MESSAGE="/tmp/sec-up.txt"
TO="[email protected]"
echo "+---------------+-------------------+--------+---------------------+" >> $MESSAGE
echo "| Server_Name   |  Security Errata  | Bugfix |  Enhancement        |" >> $MESSAGE
echo "+---------------+-------------------+--------+---------------------+" >> $MESSAGE
for server in `more /opt/scripts/server.txt`
do
sec=`ssh $server yum updateinfo summary | grep 'Security' | grep -v 'Important|Moderate' | tail -1 | awk '{print $1}'`
bug=`ssh $server yum updateinfo summary | grep 'Bugfix' | tail -1 | awk '{print $1}'`
enhance=`ssh $server yum updateinfo summary | grep 'Enhancement' | tail -1 | awk '{print $1}'`
echo "$server                $sec               $bug             $enhance" >> $MESSAGE
done
echo "+------------------------------------------------------------------+" >> $MESSAGE
mail -s "$SUBJECT" "$TO" < $MESSAGE

添加完上面的脚本后运行它。

# sh /opt/scripts/small-scripts/sec-errata-bugfix-enhancement.sh

你会看到下面的输出。

# cat /tmp/sec-up.txt

+---------------+-------------------+--------+---------------------+
| Server_Name   |  Security Errata  | Bugfix |  Enhancement        |
+---------------+-------------------+--------+---------------------+
server01                                16
server02                  5             16
server03                  21           266             20
server04                                16
+------------------------------------------------------------------+

添加下面的 cronjob 来每三个月得到补丁合规性报告。该脚本计划在一月、四月、七月、十月的 1 号运行。

# crontab -e

0 0 01 */3 * /bin/bash /opt/scripts/system-uptime-script-1.sh

方法 2a:为 CentOS / RHEL 系统上的安全修补、bugfix、增强生成补丁合规性报告的 Bash 脚本

脚本会为你生成安全修补、bugfix、增强的补丁合规性报告。它会通过 CSV 文件发送邮件。

# vi /opt/scripts/small-scripts/sec-errata-bugfix-enhancement-1.sh

#!/bin/sh
echo "Server Name, Security Errata,Bugfix,Enhancement" > /tmp/sec-up.csv
for server in `more /opt/scripts/server.txt`
do
sec=`ssh $server yum updateinfo summary | grep 'Security' | grep -v 'Important|Moderate' | tail -1 | awk '{print $1}'`
bug=`ssh $server yum updateinfo summary | grep 'Bugfix' | tail -1 | awk '{print $1}'`
enhance=`ssh $server yum updateinfo summary | grep 'Enhancement' | tail -1 | awk '{print $1}'`
echo "$server,$sec,$bug,$enhance" >> /tmp/sec-up.csv
done
echo "Patching Report for `date +"%B %Y"`" | mailx -s "Patching Report on `date`" -a /tmp/sec-up.csv [email protected]
rm /tmp/sec-up.csv

添加完上面的脚本后运行它。

# sh /opt/scripts/small-scripts/sec-errata-bugfix-enhancement-1.sh

你会看到下面的输出。


via: https://www.2daygeek.com/bash-script-to-generate-patching-compliance-report-on-centos-rhel-systems/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出

Canonical 在 Ubuntu 14.04 LTS 系统中引入了 内核实时补丁服务 Kernel Livepatch Service 。实时补丁服务允许你安装和应用关键的 Linux 内核安全更新,而无需重新启动系统。这意味着,在应用内核补丁程序后,你无需重新启动系统。而通常情况下,我们需要在安装内核补丁后重启 Linux 服务器才能供系统使用。

实时修补非常快。大多数内核修复程序只需要几秒钟。Canonical 的实时补丁服务对于不超过 3 个系统的用户无需任何费用。你可以通过命令行在桌面和服务器中启用 Canonical 实时补丁服务。

这个实时补丁系统旨在解决高级和关键的 Linux 内核安全漏洞。

有关支持的系统和其他详细信息,请参阅下表。

Ubuntu 版本架构内核版本内核变体
Ubuntu 18.04 LTS64-bit x864.15仅 GA 通用和低电压内核
Ubuntu 16.04 LTS64-bit x864.4仅 GA 通用和低电压内核
Ubuntu 14.04 LTS64-bit x864.4仅 Hardware Enablement 内核

注意:Ubuntu 14.04 中的 Canonical 实时补丁服务 LTS 要求用户在 Trusty 中运行 Ubuntu v4.4 内核。如果你当前没有运行使用该服务,请重新启动到此内核。

为此,请按照以下步骤操作。

如何获取实时补丁令牌?

导航到 Canonical 实时补丁服务页面,如果要使用免费服务,请选择“Ubuntu 用户”。它适用于不超过 3 个系统的用户。如果你是 “UA 客户” 或多于 3 个系统,请选择 “Ubuntu customer”。最后,单击 “Get your Livepatch token” 按钮。

确保你已经在 “Ubuntu One” 中拥有帐号。否则,可以创建一个新的。

登录后,你将获得你的帐户密钥。

在系统中安装 Snap 守护程序

实时补丁系统通过快照包安装。因此,请确保在 Ubuntu 系统上安装了 snapd 守护程序。

$ sudo apt update
$ sudo apt install snapd

如何系统中安装和配置实时补丁服务?

通过运行以下命令安装 canonical-livepatch 守护程序。

$ sudo snap install canonical-livepatch
canonical-livepatch 9.4.1 from Canonical* installed

运行以下命令以在 Ubuntu 计算机上启用实时内核补丁程序。

$ sudo canonical-livepatch enable xxxxc4xxxx67xxxxbxxxxbxxxxfbxx4e

Successfully enabled device. Using machine-token: xxxxc4xxxx67xxxxbxxxxbxxxxfbxx4e

运行以下命令查看实时补丁机器的状态。

$ sudo canonical-livepatch status

client-version: 9.4.1
architecture: x86_64
cpu-model: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
last-check: 2019-07-24T12:30:04+05:30
boot-time: 2019-07-24T12:11:06+05:30
uptime: 19m11s
status:
- kernel: 4.15.0-55.60-generic
  running: true
  livepatch:
    checkState: checked
    patchState: nothing-to-apply
    version: ""
    fixes: ""

使用 --verbose 开关运行上述相同的命令,以获取有关实时修补机器的更多信息。

$ sudo canonical-livepatch status --verbose

如果要手动运行补丁程序,请执行以下命令。

$ sudo canonical-livepatch refresh

Before refresh:

kernel: 4.15.0-55.60-generic
fully-patched: true
version: ""

After refresh:

kernel: 4.15.0-55.60-generic
fully-patched: true
version: ""

patchState 会有以下状态之一:

  • applied:未发现任何漏洞
  • nothing-to-apply:成功找到并修补了漏洞
  • kernel-upgrade-required:实时补丁服务无法安装补丁来修复漏洞

请注意,安装内核补丁与在系统上升级/安装新内核不同。如果安装了新内核,则必须重新引导系统以激活新内核。


via: https://www.2daygeek.com/enable-canonical-kernel-livepatch-service-on-ubuntu-lts-system/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

当你更新系统时,根据你所在公司的安全策略,有时候可能只需要打上与安全相关的补丁。大多数情况下,这应该是出于程序兼容性方面的考量。那该怎样实践呢?有没有办法让 yum 只安装安全补丁呢?

答案是肯定的,可以用 yum 包管理器轻松实现。

在这篇文章中,我们不但会提供所需的信息。而且,我们会介绍一些额外的命令,可以帮你获取指定安全更新的详实信息。

希望这样可以启发你去了解并修复你列表上的那些漏洞。一旦有安全漏洞被公布,就必须更新受影响的软件,这样可以降低系统中的安全风险。

对于 RHEL 或 CentOS 6 系统,运行下面的 Yum 命令 来安装 yum 安全插件。

# yum -y install yum-plugin-security

在 RHEL 7&8 或是 CentOS 7&8 上面,这个插件已经是 yum 的一部分了,不用单独安装。

要列出全部可用的补丁(包括安全、Bug 修复以及产品改进),但不安装它们:

# yum updateinfo list available
Loaded plugins: changelog, package_upload, product-id, search-disabled-repos,
              : subscription-manager, verify, versionlock
RHSA-2014:1031 Important/Sec. 389-ds-base-1.3.1.6-26.el7_0.x86_64
RHSA-2015:0416 Important/Sec. 389-ds-base-1.3.3.1-13.el7.x86_64
RHBA-2015:0626 bugfix         389-ds-base-1.3.3.1-15.el7_1.x86_64
RHSA-2015:0895 Important/Sec. 389-ds-base-1.3.3.1-16.el7_1.x86_64
RHBA-2015:1554 bugfix         389-ds-base-1.3.3.1-20.el7_1.x86_64
RHBA-2015:1960 bugfix         389-ds-base-1.3.3.1-23.el7_1.x86_64
RHBA-2015:2351 bugfix         389-ds-base-1.3.4.0-19.el7.x86_64
RHBA-2015:2572 bugfix         389-ds-base-1.3.4.0-21.el7_2.x86_64
RHSA-2016:0204 Important/Sec. 389-ds-base-1.3.4.0-26.el7_2.x86_64
RHBA-2016:0550 bugfix         389-ds-base-1.3.4.0-29.el7_2.x86_64
RHBA-2016:1048 bugfix         389-ds-base-1.3.4.0-30.el7_2.x86_64
RHBA-2016:1298 bugfix         389-ds-base-1.3.4.0-32.el7_2.x86_64

要统计补丁的大约数量,运行下面的命令:

# yum updateinfo list available | wc -l
11269

想列出全部可用的安全补丁但不安装,以下命令用来展示你系统里已安装和待安装的推荐补丁:

# yum updateinfo list security all
Loaded plugins: changelog, package_upload, product-id, search-disabled-repos,
              : subscription-manager, verify, versionlock
  RHSA-2014:1031 Important/Sec. 389-ds-base-1.3.1.6-26.el7_0.x86_64
  RHSA-2015:0416 Important/Sec. 389-ds-base-1.3.3.1-13.el7.x86_64
  RHSA-2015:0895 Important/Sec. 389-ds-base-1.3.3.1-16.el7_1.x86_64
  RHSA-2016:0204 Important/Sec. 389-ds-base-1.3.4.0-26.el7_2.x86_64
  RHSA-2016:2594 Moderate/Sec.  389-ds-base-1.3.5.10-11.el7.x86_64
  RHSA-2017:0920 Important/Sec. 389-ds-base-1.3.5.10-20.el7_3.x86_64
  RHSA-2017:2569 Moderate/Sec.  389-ds-base-1.3.6.1-19.el7_4.x86_64
  RHSA-2018:0163 Important/Sec. 389-ds-base-1.3.6.1-26.el7_4.x86_64
  RHSA-2018:0414 Important/Sec. 389-ds-base-1.3.6.1-28.el7_4.x86_64
  RHSA-2018:1380 Important/Sec. 389-ds-base-1.3.7.5-21.el7_5.x86_64
  RHSA-2018:2757 Moderate/Sec.  389-ds-base-1.3.7.5-28.el7_5.x86_64
  RHSA-2018:3127 Moderate/Sec.  389-ds-base-1.3.8.4-15.el7.x86_64
  RHSA-2014:1031 Important/Sec. 389-ds-base-libs-1.3.1.6-26.el7_0.x86_64

要显示所有待安装的安全补丁:

# yum updateinfo list security all | grep -v "i"

  RHSA-2014:1031 Important/Sec. 389-ds-base-1.3.1.6-26.el7_0.x86_64
  RHSA-2015:0416 Important/Sec. 389-ds-base-1.3.3.1-13.el7.x86_64
  RHSA-2015:0895 Important/Sec. 389-ds-base-1.3.3.1-16.el7_1.x86_64
  RHSA-2016:0204 Important/Sec. 389-ds-base-1.3.4.0-26.el7_2.x86_64
  RHSA-2016:2594 Moderate/Sec.  389-ds-base-1.3.5.10-11.el7.x86_64
  RHSA-2017:0920 Important/Sec. 389-ds-base-1.3.5.10-20.el7_3.x86_64
  RHSA-2017:2569 Moderate/Sec.  389-ds-base-1.3.6.1-19.el7_4.x86_64
  RHSA-2018:0163 Important/Sec. 389-ds-base-1.3.6.1-26.el7_4.x86_64
  RHSA-2018:0414 Important/Sec. 389-ds-base-1.3.6.1-28.el7_4.x86_64
  RHSA-2018:1380 Important/Sec. 389-ds-base-1.3.7.5-21.el7_5.x86_64
  RHSA-2018:2757 Moderate/Sec.  389-ds-base-1.3.7.5-28.el7_5.x86_64

要统计全部安全补丁的大致数量,运行下面的命令:

# yum updateinfo list security all | wc -l
3522

下面根据已装软件列出可更新的安全补丁。这包括 bugzilla(bug 修复)、CVE(知名漏洞数据库)、安全更新等:

# yum updateinfo list security

或者

# yum updateinfo list sec

Loaded plugins: changelog, package_upload, product-id, search-disabled-repos,
              : subscription-manager, verify, versionlock

RHSA-2018:3665 Important/Sec. NetworkManager-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-adsl-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-bluetooth-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-config-server-1:1.12.0-8.el7_6.noarch
RHSA-2018:3665 Important/Sec. NetworkManager-glib-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-libnm-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-ppp-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-team-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-tui-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-wifi-1:1.12.0-8.el7_6.x86_64
RHSA-2018:3665 Important/Sec. NetworkManager-wwan-1:1.12.0-8.el7_6.x86_64

显示所有与安全相关的更新,并且返回一个结果来告诉你是否有可用的补丁:

# yum --security check-update
Loaded plugins: changelog, package_upload, product-id, search-disabled-repos, subscription-manager, verify, versionlock
rhel-7-server-rpms                                                                                                                            | 2.0 kB  00:00:00
--> policycoreutils-devel-2.2.5-20.el7.x86_64 from rhel-7-server-rpms excluded (updateinfo)
--> smc-raghumalayalam-fonts-6.0-7.el7.noarch from rhel-7-server-rpms excluded (updateinfo)
--> amanda-server-3.3.3-17.el7.x86_64 from rhel-7-server-rpms excluded (updateinfo)
--> 389-ds-base-libs-1.3.4.0-26.el7_2.x86_64 from rhel-7-server-rpms excluded (updateinfo)
--> 1:cups-devel-1.6.3-26.el7.i686 from rhel-7-server-rpms excluded (updateinfo)
--> openwsman-client-2.6.3-3.git4391e5c.el7.i686 from rhel-7-server-rpms excluded (updateinfo)
--> 1:emacs-24.3-18.el7.x86_64 from rhel-7-server-rpms excluded (updateinfo)
--> augeas-libs-1.4.0-2.el7_4.2.i686 from rhel-7-server-rpms excluded (updateinfo)
--> samba-winbind-modules-4.2.3-10.el7.i686 from rhel-7-server-rpms excluded (updateinfo)
--> tftp-5.2-11.el7.x86_64 from rhel-7-server-rpms excluded (updateinfo)
.
.
35 package(s) needed for security, out of 115 available
NetworkManager.x86_64                        1:1.12.0-10.el7_6            rhel-7-server-rpms
NetworkManager-adsl.x86_64                   1:1.12.0-10.el7_6            rhel-7-server-rpms
NetworkManager-bluetooth.x86_64              1:1.12.0-10.el7_6            rhel-7-server-rpms
NetworkManager-config-server.noarch          1:1.12.0-10.el7_6            rhel-7-server-rpms
NetworkManager-glib.x86_64                   1:1.12.0-10.el7_6            rhel-7-server-rpms
NetworkManager-libnm.x86_64                  1:1.12.0-10.el7_6            rhel-7-server-rpms
NetworkManager-ppp.x86_64                    1:1.12.0-10.el7_6            rhel-7-server-rpms

列出所有可用的安全补丁,并且显示其详细信息:

# yum info-sec
.
.
===============================================================================
  tzdata bug fix and enhancement update
===============================================================================
  Update ID : RHBA-2019:0689
    Release : 0
       Type : bugfix
     Status : final
     Issued : 2019-03-28 19:27:44 UTC
Description : The tzdata packages contain data files with rules for various
            : time zones.
            :
            : The tzdata packages have been updated to version
            : 2019a, which addresses recent time zone changes.
            : Notably:
            :
            : * The Asia/Hebron and Asia/Gaza zones will start
            :   DST on 2019-03-30, rather than 2019-03-23 as
            :   previously predicted.
            : * Metlakatla rejoined Alaska time on 2019-01-20,
            :   ending its observances of Pacific standard time.
            :
            : (BZ#1692616, BZ#1692615, BZ#1692816)
            :
            : Users of tzdata are advised to upgrade to these
            : updated packages.
   Severity : None

如果你想要知道某个更新的具体内容,可以运行下面这个命令:

# yum updateinfo RHSA-2019:0163

Loaded plugins: changelog, package_upload, product-id, search-disabled-repos, subscription-manager, verify, versionlock
rhel-7-server-rpms                                                                                                                            | 2.0 kB  00:00:00
===============================================================================
  Important: kernel security, bug fix, and enhancement update
===============================================================================
  Update ID : RHSA-2019:0163
    Release : 0
       Type : security
     Status : final
     Issued : 2019-01-29 15:21:23 UTC
    Updated : 2019-01-29 15:23:47 UTC       Bugs : 1641548 - CVE-2018-18397 kernel: userfaultfd bypasses tmpfs file permissions
            : 1641878 - CVE-2018-18559 kernel: Use-after-free due to race condition in AF_PACKET implementation
       CVEs : CVE-2018-18397
            : CVE-2018-18559
Description : The kernel packages contain the Linux kernel, the core of any
            : Linux operating system.
            :
            : Security Fix(es):
            :
            : * kernel: Use-after-free due to race condition in
            :   AF_PACKET implementation (CVE-2018-18559)
            :
            : * kernel: userfaultfd bypasses tmpfs file
            :   permissions (CVE-2018-18397)
            :
            : For more details about the security issue(s),
            : including the impact, a CVSS score, and other
            : related information, refer to the CVE page(s)
            : listed in the References section.
            :
            : Bug Fix(es):
            :
            : These updated kernel packages include also
            : numerous bug fixes and enhancements. Space
            : precludes documenting all of the bug fixes in this
            : advisory. See the descriptions in the related
            : Knowledge Article:
            : https://access.redhat.com/articles/3827321
   Severity : Important
updateinfo info done

跟之前类似,你可以只查询那些通过 CVE 释出的系统漏洞:

# yum updateinfo list cves

Loaded plugins: changelog, package_upload, product-id, search-disabled-repos,
              : subscription-manager, verify, versionlock
CVE-2018-15688 Important/Sec. NetworkManager-1:1.12.0-8.el7_6.x86_64
CVE-2018-15688 Important/Sec. NetworkManager-adsl-1:1.12.0-8.el7_6.x86_64
CVE-2018-15688 Important/Sec. NetworkManager-bluetooth-1:1.12.0-8.el7_6.x86_64
CVE-2018-15688 Important/Sec. NetworkManager-config-server-1:1.12.0-8.el7_6.noarch
CVE-2018-15688 Important/Sec. NetworkManager-glib-1:1.12.0-8.el7_6.x86_64
CVE-2018-15688 Important/Sec. NetworkManager-libnm-1:1.12.0-8.el7_6.x86_64
CVE-2018-15688 Important/Sec. NetworkManager-ppp-1:1.12.0-8.el7_6.x86_64
CVE-2018-15688 Important/Sec. NetworkManager-team-1:1.12.0-8.el7_6.x86_64

你也可以查看那些跟 bug 修复相关的更新,运行下面的命令:

# yum updateinfo list bugfix | less

Loaded plugins: changelog, package_upload, product-id, search-disabled-repos,
              : subscription-manager, verify, versionlock
RHBA-2018:3349 bugfix NetworkManager-1:1.12.0-7.el7_6.x86_64
RHBA-2019:0519 bugfix NetworkManager-1:1.12.0-10.el7_6.x86_64
RHBA-2018:3349 bugfix NetworkManager-adsl-1:1.12.0-7.el7_6.x86_64
RHBA-2019:0519 bugfix NetworkManager-adsl-1:1.12.0-10.el7_6.x86_64
RHBA-2018:3349 bugfix NetworkManager-bluetooth-1:1.12.0-7.el7_6.x86_64
RHBA-2019:0519 bugfix NetworkManager-bluetooth-1:1.12.0-10.el7_6.x86_64
RHBA-2018:3349 bugfix NetworkManager-config-server-1:1.12.0-7.el7_6.noarch
RHBA-2019:0519 bugfix NetworkManager-config-server-1:1.12.0-10.el7_6.noarch

要想得到待安装更新的摘要信息,运行这个:

# yum updateinfo summary
Loaded plugins: changelog, package_upload, product-id, search-disabled-repos, subscription-manager, verify, versionlock
rhel-7-server-rpms                                                                                                                            | 2.0 kB  00:00:00
Updates Information Summary: updates
    13 Security notice(s)
         9 Important Security notice(s)
         3 Moderate Security notice(s)
         1 Low Security notice(s)
    35 Bugfix notice(s)
     1 Enhancement notice(s)
updateinfo summary done

如果只想打印出低级别的安全更新,运行下面这个命令。类似的,你也可以只查询重要级别和中等级别的安全更新。

# yum updateinfo list sec | grep -i "Low"

RHSA-2019:0201 Low/Sec.       libgudev1-219-62.el7_6.3.x86_64
RHSA-2019:0201 Low/Sec.       systemd-219-62.el7_6.3.x86_64
RHSA-2019:0201 Low/Sec.       systemd-libs-219-62.el7_6.3.x86_64
RHSA-2019:0201 Low/Sec.       systemd-sysv-219-62.el7_6.3.x86_64

via: https://www.2daygeek.com/check-list-view-find-available-security-updates-on-redhat-rhel-centos-system/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:jdh8383 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习如何做出你的首个 Linux 内核贡献,以及在开始之前你应该知道什么。

Linux 内核是最大且变动最快的开源项目之一,它由大约 53,600 个文件和近 2,000 万行代码组成。在全世界范围内超过 15,600 位程序员为它贡献代码,Linux 内核项目的维护者使用了如下的协作模型。

本文中,为了便于在 Linux 内核中提交你的第一个贡献,我将为你提供一个必需的快速检查列表,以告诉你在提交补丁时,应该去查看和了解的内容。对于你贡献的第一个补丁的提交流程方面的更多内容,请阅读 KernelNewbies 的第一个内核补丁教程

为内核作贡献

第 1 步:准备你的系统。

本文开始之前,假设你的系统已经具备了如下的工具:

  • 文本编辑器
  • Email 客户端
  • 版本控制系统(例如:git)

第 2 步:下载 Linux 内核代码仓库。

git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git

复制你的当前配置:

cp /boot/config-`uname -r`* .config

第 3 步:构建/安装你的内核。

make -jX
sudo make modules_install install

第 4 步:创建一个分支并切换到该分支。

git checkout -b first-patch

第 5 步:更新你的内核并指向到最新的代码。

git fetch origin
git rebase origin/staging-testing

第 6 步:在最新的代码库上产生一个变更。

使用 make 命令重新编译,确保你的变更没有错误。

第 7 步:提交你的变更并创建一个补丁。

git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^

主题是由冒号分隔的文件名组成,跟着是使用祈使语态来描述补丁做了什么。空行之后是强制的 signed off 标记,最后是你的补丁的 diff 信息。

下面是另外一个简单补丁的示例:

接下来,从命令行使用邮件(在本例子中使用的是 Mutt)发送这个补丁:

mutt -H /tmp/0001-<whatever your filename is>

使用 get\_maintainer.pl 脚本,去了解你的补丁应该发送给哪位维护者的列表。

提交你的第一个补丁之前,你应该知道的事情

  • Greg Kroah-Hartmanstaging tree 是提交你的 第一个补丁 的最好的地方,因为他更容易接受新贡献者的补丁。在你熟悉了补丁发送流程以后,你就可以去发送复杂度更高的子系统专用的补丁。
  • 你也可以从纠正代码中的编码风格开始。想学习更多关于这方面的内容,请阅读 Linux 内核编码风格文档
  • checkpatch.pl 脚本可以帮你检测编码风格方面的错误。例如,运行如下的命令:perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • 你可以去补全开发者留下的 TODO 注释中未完成的内容:find drivers/staging -name TODO
  • Coccinelle 是一个模式匹配的有用工具。
  • 阅读 归档的内核邮件
  • 为找到灵感,你可以去遍历 linux.git 日志去查看以前的作者的提交内容。
  • 注意:不要与你的补丁的审核者在邮件顶部交流!下面就是一个这样的例子:

错误的方式:

Chris,
Yes let’s schedule the meeting tomorrow, on the second floor.

> On Fri, Apr 26, 2013 at 9:25 AM, Chris wrote:
> Hey John, I had some questions:
> 1. Do you want to schedule the meeting tomorrow?
> 2. On which floor in the office?
> 3. What time is suitable to you?

(注意那最后一个问题,在回复中无意中落下了。)

正确的方式:

Chris,
See my answers below...

> On Fri, Apr 26, 2013 at 9:25 AM, Chris wrote:
> Hey John, I had some questions:
> 1. Do you want to schedule the meeting tomorrow?
Yes tomorrow is fine.
> 2. On which floor in the office?
Let's keep it on the second floor.
> 3. What time is suitable to you?
09:00 am would be alright.

(所有问题全部回复,并且这种方式还保存了阅读的时间。)

想学习更多内容,阅读 KernelNewbies 的第一个内核补丁教程。之后如果你还有任何问题,可以在 kernelnewbies 邮件列表 或者 #kernelnewbies IRC channel 中提问。


via: https://opensource.com/article/18/8/first-linux-kernel-patch

作者:Sayli Karnik 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出