Paul W. Frields 发布的文章

前几天在 dhcp-client 中发现并披露了一个严重的安全漏洞。此 DHCP 漏洞会对你的系统和数据造成高风险,尤其是在使用不受信任的网络,如非你拥有的 WiFi 接入点时。

动态主机控制协议(DHCP)能让你的系统从其加入的网络中获取配置。你的系统将请求 DHCP 数据,并且通常是由路由器等服务器应答。服务器为你的系统提供必要的数据以进行自我配置。例如,你的系统如何在加入无线网络时正确进行网络配置。

但是,本地网络上的攻击者可能会利用此漏洞。使用在 NetworkManager 下运行的 dhcp-client 脚本中的漏洞,攻击者可能能够在系统上以 root 权限运行任意命令。这个 DHCP 漏洞使你的系统和数据处于高风险状态。该漏洞已分配 CVE-2018-1111,并且有 Bugzilla 来跟踪 bug

防范这个 DHCP 漏洞

新的 dhcp 软件包包含了 Fedora 26、27 和 28 以及 Rawhide 的修复程序。维护人员已将这些更新提交到 updates-testing 仓库。对于大多数用户而言,它们应该在这篇文章的大约一天左右的时间内在稳定仓库出现。所需的软件包是:

  • Fedora 26: dhcp-4.3.5-11.fc26
  • Fedora 27: dhcp-4.3.6-10.fc27
  • Fedora 28: dhcp-4.3.6-20.fc28
  • Rawhide: dhcp-4.3.6-21.fc29

更新稳定的 Fedora 系统

要在稳定的 Fedora 版本上立即更新,请使用 sudo 运行此命令。如有必要,请在提示时输入你的密码:

sudo dnf --refresh --enablerepo=updates-testing update dhcp-client

之后,使用标准稳定仓库进行更新。要从稳定的仓库更新 Fedora 系统,请使用以下命令:

sudo dnf --refresh update dhcp-client

更新 Rawhide 系统

如果你的系统是 Rawhide,请使用以下命令立即下载和更新软件包:

mkdir dhcp && cd dhcp
koji download-build --arch={x86_64,noarch} dhcp-4.3.6-21.fc29
sudo dnf update ./dhcp-*.rpm

在每日的 Rawhide compose 后,只需运行 sudo dnf update 即可获取更新。

Fedora Atomic Host

针对 Fedora Atomic Host 的修复程序版本为 28.20180515.1。要获得更新,请运行以下命令:

atomic host upgrade -r

此命令将重启系统以应用升级。


via: https://fedoramagazine.org/protect-fedora-system-dhcp-flaw/

作者:Paul W. Frields 选题:lujun9972 译者:geekpi 校对:wxy

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

字体可帮助你通过设计以创意的方式表达你的想法。无论给图片加标题、编写演示文稿,还是设计问候语或广告,字体都可以将你的想法提升到更高水平。很容易仅仅为了它们的审美品质而爱上它们。幸运的是,Fedora 使安装字体变得简单。以下是如何做的。

全系统安装

如果你在系统范围内安装字体,那么它可以让所有用户使用。此方式的最佳方法是使用官方软件库中的 RPM 软件包。

开始前打开 Fedora Workstation 中的 “Software” 工具,或者其他使用官方仓库的工具。选择横栏中选择 “Add-ons” 类别。接着在该类别中选择 “Fonts”。你会看到类似于下面截图中的可用字体:

当你选择一种字体时,会出现一些细节。根据几种情况,你可能能够预览字体的一些示例文本。点击 “Install” 按钮将其添加到你的系统。根据系统速度和网络带宽,完成此过程可能需要一些时间。

你还可以在字体细节中通过 “Remove” 按钮删除前面带有勾的已经安装的字体。

个人安装

如果你以兼容格式:.ttf、 otf 、.ttc、.pfa 、.pfb 或者 .pcf 下载了字体,则此方法效果更好。这些字体扩展名不应通过将它们放入系统文件夹来安装在系统范围内。这种类型的非打包字体不能自动更新。它们也可能会在稍后干扰一些软件操作。安装这些字体的最佳方法是安装在你自己的个人数据目录中。

打开 Fedora Workstation 中的 “Files” 应用或你选择的类似文件管理器应用。如果你使用 “Files”,那么可能需要使用 Ctrl+H 组合键来显示隐藏的文件和文件夹。查找 .fonts 文件夹并将其打开。如果你没有 .fonts 文件夹,请创建它。 (记住最前面的点并全部使用小写。)

将已下载的字体文件复制到 .fonts 文件夹中。此时你可以关闭文件管理器。打开一个终端并输入以下命令:

fc-cache

这将重建字体缓存,帮助 Fedora 可以找到并引用它。你可能还需要重新启动需要使用新字体的应用程序,例如 Inkscape 或 LibreOffice。你重新启动后,新的字体应该就可以使用了。


照片由 Raphael Schaller 发布在 Unsplash 中。


作者简介:

Paul W. Frields 自 1997 年以来一直是 Linux 用户和爱好者,并于 2003 年 Fedora 发布不久后加入项目。他是 Fedora 项目委员会的创始成员之一,并从事文档、网站发布、倡导、工具链开发和维护软件工作。他于 2008 年 2 月至 2010 年 7 月在红帽担任 Fedora 项目负责人,现任红帽公司工程部经理。他目前和他的妻子和两个孩子一起住在弗吉尼亚州。


via: https://fedoramagazine.org/add-fonts-fedora/

作者:Paul W. Frields 译者:geekpi 校对:wxy

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

一个不幸的事实是,所有的软件都有 bug,一些 bug 会导致系统崩溃。当它出现的时候,它经常会在磁盘上留下一个被称为“ 核心转储 core dump ”的数据文件。该文件包含有关系统崩溃时的相关数据,可能有助于确定发生崩溃的原因。通常开发者要求提供 “ 回溯 backtrace ” 形式的数据,以显示导致崩溃的指令流。开发人员可以使用它来修复 bug 以改进系统。如果系统发生了崩溃,以下是如何轻松生成 回溯 backtrace 的方法。

从使用 coredumpctl 开始

大多数 Fedora 系统使用自动错误报告工具(ABRT)来自动捕获崩溃文件并记录 bug。但是,如果你禁用了此服务或删除了该软件包,则此方法可能会有所帮助。

如果你遇到系统崩溃,请首先确保你运行的是最新的软件。更新通常包含修复程序,这些更新通常含有已经发现的会导致严重错误和崩溃的错误的修复。当你更新后,请尝试重现导致错误的情况。

如果崩溃仍然发生,或者你已经在运行最新的软件,那么可以使用有用的 coredumpctl 工具。此程序可帮助查找和处理崩溃。要查看系统上所有核心转储列表,请运行以下命令:

coredumpctl list

如果你看到比预期长的列表,请不要感到惊讶。有时系统组件在后台默默地崩溃,并自行恢复。快速查找今天的转储的简单方法是使用 -since 选项:

coredumpctl list --since=today

“PID” 列包含用于标识转储的进程 ID。请注意这个数字,因为你会之后再用到它。或者,如果你不想记住它,使用下面的命令将它赋值给一个变量:

MYPID=<PID>

要查看关于核心转储的信息,请使用此命令(使用 $MYPID 变量或替换 PID 编号):

coredumpctl info $MYPID

安装 debuginfo 包

在核心转储中的数据以及原始代码中的指令之间调试符号转义。这个符号数据可能相当大。与大多数用户运行在 Fedora 系统上的软件包不同,符号以 “debuginfo” 软件包的形式安装。要确定你必须安装哪些 debuginfo 包,请先运行以下命令:

coredumpctl gdb $MYPID

这可能会在屏幕上显示大量信息。最后一行可能会告诉你使用 dnf 安装更多的 debuginfo 软件包。用 sudo 运行该命令以安装:

sudo dnf debuginfo-install <packages...>

然后再次尝试 coredumpctl gdb $MYPID 命令。你可能需要重复执行此操作,因为其他符号会在回溯中展开。

捕获回溯

在调试器中运行以下命令以记录信息:

set logging file mybacktrace.txt
set logging on

你可能会发现关闭分页有帮助。对于长的回溯,这可以节省时间。

set pagination off

现在运行回溯:

thread apply all bt full

现在你可以输入 quit 来退出调试器。mybacktrace.txt 包含可附加到 bug 或问题的追踪信息。或者,如果你正在与某人实时合作,则可以将文本上传到 pastebin。无论哪种方式,你现在可以向开发人员提供更多的帮助来解决问题。


作者简介:

Paul W. Frields

Paul W. Frields 自 1997 年以来一直是 Linux 用户和爱好者,并于 2003 年在 Fedora 发布不久后加入 Fedora。他是 Fedora 项目委员会的创始成员之一,从事文档、网站发布、宣传、工具链开发和维护软件。他于 2008 年 2 月至 2010 年 7 月加入 Red Hat,担任 Fedora 项目负责人,现任红帽公司工程部经理。他目前和妻子和两个孩子住在弗吉尼亚州。


via: https://fedoramagazine.org/file-better-bugs-coredumpctl/

作者:Paul W. Frields 译者:geekpi 校对:wxy

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

一些 Fedora 用户把大部分甚至是所有时间花费在了命令行终端上。 终端可让您访问整个系统,以及数以千计的强大的实用程序。 但是,它默认情况下一次只显示一个命令行会话。 即使有一个大的终端窗口,整个窗口也只会显示一个会话。 这浪费了空间,特别是在大型显示器和高分辨率的笔记本电脑屏幕上。 但是,如果你可以将终端分成多个会话呢? 这正是 tmux 最方便的地方,或者说不可或缺的。

安装并启动 tmux

tmux 应用程序的名称来源于 终端 terminal 复用器 muxer 多路复用器 multiplexer 。 换句话说,它可以将您的单终端会话分成多个会话。 它管理窗口和窗格:

  • 窗口 window 是一个单一的视图 - 也就是终端中显示的各种东西。
  • 窗格 pane 是该视图的一部分,通常是一个终端会话。

开始前,请在系统上安装 tmux 应用程序。 你需要为您的用户帐户设置 sudo 权限(如果需要,请查看本文获取相关说明)。

sudo dnf -y install tmux

运行 tmux程序:

tmux

状态栏

首先,似乎什么也没有发生,除了出现在终端的底部的状态栏:

Start of tmux session

底部栏显示:

  • [0] – 这是 tmux 服务器创建的第一个会话。编号从 0 开始。tmux 服务器会跟踪所有的会话确认其是否存活。
  • 0:testuser@scarlett:~ – 有关该会话的第一个窗口的信息。编号从 0 开始。这表示窗口的活动窗格中的终端归主机名 scarletttestuser 用户所有。当前目录是 ~ (家目录)。
  • * – 显示你目前在此窗口中。
  • “scarlett.internal.fri” – 你正在使用的 tmux 服务器的主机名。
  • 此外,还会显示该特定主机上的日期和时间。

当你向会话中添加更多窗口和窗格时,信息栏将随之改变。

tmux 基础知识

把你的终端窗口拉伸到最大。现在让我们尝试一些简单的命令来创建更多的窗格。默认情况下,所有的命令都以 Ctrl+b 开头。

  • Ctrl+b, " 水平分割当前单个窗格。 现在窗口中有两个命令行窗格,一个在顶部,一个在底部。请注意,底部的新窗格是活动窗格。
  • Ctrl+b, % 垂直分割当前单个窗格。 现在你的窗口中有三个命令行窗格,右下角的窗格是活动窗格。

tmux window with three panes

注意当前窗格周围高亮显示的边框。要浏览所有的窗格,请做以下操作:

  • Ctrl+b,然后点箭头键
  • Ctrl+b, q,数字会短暂的出现在窗格上。在这期间,你可以你想要浏览的窗格上对应的数字。

现在,尝试使用不同的窗格运行不同的命令。例如以下这样的:

  • 在顶部窗格中使用 ls 命令显示目录内容。
  • 在左下角的窗格中使用 vi 命令,编辑一个文本文件。
  • 在右下角的窗格中运行 top 命令监控系统进程。

屏幕将会如下显示:

tmux session with three panes running different commands

到目前为止,这个示例中只是用了一个带多个窗格的窗口。你也可以在会话中运行多个窗口。

  • 为了创建一个新的窗口,请敲Ctrl+b, c 。请注意,状态栏显示当前有两个窗口正在运行。(敏锐的读者会看到上面的截图。)
  • 要移动到上一个窗口,请敲 Ctrl+b, p
  • 要移动到下一个窗口,请敲 Ctrl+b, n
  • 要立即移动到特定的窗口,请敲 Ctrl+b 然后跟上窗口编号。

如果你想知道如何关闭窗格,只需要使用 exitlogout,或者 Ctrl+d 来退出特定的命令行 shell。一旦你关闭了窗口中的所有窗格,那么该窗口也会消失。

脱离和附加

tmux 最强大的功能之一是能够脱离和重新附加到会话。 当你脱离的时候,你可以离开你的窗口和窗格独立运行。 此外,您甚至可以完全注销系统。 然后,您可以登录到同一个系统,重新附加到 tmux 会话,查看您离开时的所有窗口和窗格。 脱离的时候你运行的命令一直保持运行状态。

为了脱离一个会话,请敲 Ctrl+b, d。然后会话消失,你重新返回到一个标准的单一 shell。如果要重新附加到会话中,使用一下命令:

tmux attach-session

当你连接到主机的网络不稳定时,这个功能就像救生员一样有用。如果连接失败,会话中的所有的进程都会继续运行。只要连接恢复了,你就可以恢复正常,就好像什么事情也没有发生一样。

如果这些功能还不够,在每个会话的顶层窗口和窗格中,你可以运行多个会话。你可以列举出这些窗口和窗格,然后通过编号或者名称把他们附加到正确的会话中:

tmux list-sessions

延伸阅读

本文只触及的 tmux 的表面功能。你可以通过其他方式操作会话:

  • 将一个窗格和另一个窗格交换
  • 将窗格移动到另一个窗口中(可以在同一个会话中也可以在不同的会话中)
  • 设定快捷键自动执行你喜欢的命令
  • ~/.tmux.conf 文件中配置你最喜欢的配置项,这样每一个会话都会按照你喜欢的方式呈现

有关所有命令的完整说明,请查看以下参考:


作者简介:

Paul W. Frields 自 1997 年以来一直是 Linux 用户和爱好者,并于 2003 年加入 Fedora 项目,这个项目刚推出不久。他是 Fedora 项目委员会的创始成员,在文档,网站发布,宣传,工具链开发和维护软件方面都有贡献。他于2008 年 2 月至 2010 年 7 月加入 Red Hat,担任 Fedora 项目负责人,并担任 Red Hat 的工程经理。目前他和妻子以及两个孩子居住在弗吉尼亚。


via: https://fedoramagazine.org/use-tmux-more-powerful-terminal/

作者:Paul W. Frields 译者:Flowsnow 校对:wxy

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

假如你在一个图形桌面环境中需要一个计算器时,你可能只需要一路进行点击便可以找到一个计算器。例如,Fedora 工作站中就已经包含了一个名为 Calculator 的工具。它有着几种不同的操作模式,例如,你可以进行复杂的数学运算或者金融运算。但是,你知道吗,命令行也提供了一个与之相似的名为 bc 的工具?

bc 工具可以为你提供的功能可以满足你对科学计算器、金融计算器或者是简单计算器的期望。另外,假如需要的话,它还可以从命令行中被脚本化。这使得当你需要做复杂的数学运算时,你可以在 shell 脚本中使用它。

因为 bc 也被用于其他的系统软件,例如 CUPS 打印服务,所以它可能已经在你的 Fedora 系统中被安装了。你可以使用下面这个命令来进行检查:

dnf list installed bc

假如因为某些原因你没有在上面命令的输出中看到它,你可以使用下面的这个命令来安装它:

sudo dnf install bc

用 bc 做一些简单的数学运算

使用 bc 的一种方式是进入它自己的 shell。在那里你可以按行进行许多次计算。当你键入 bc 后,首先出现的是有关这个程序的警告:

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.

现在你可以按照每行一个输入运算式或者命令了:

1+1

bc 会回答上面计算式的答案是:

2

在这里你还可以执行其他的命令。你可以使用 加(+)、减(-)、乘(*)、除(/)、圆括号、指数符号(^) 等等。请注意 bc 同样也遵循所有约定俗成的运算规则,例如运算的先后顺序。你可以试试下面的例子:

(4+7)*2
4+7*2

若要退出 bc 可以通过按键组合 Ctrl+D 来发送 “输入结束”信号给 bc 。

使用 bc 的另一种方式是使用 echo 命令来传递运算式或命令。下面这个示例就是计算器中的 “Hello, world” 例子,使用 shell 的管道函数(|) 来将 echo 的输出传入 bc 中:

echo '1+1' | bc

使用 shell 的管道,你可以发送不止一个运算操作,你需要使用分号来分隔不同的运算。结果将在不同的行中返回。

echo '1+1; 2+2' | bc

精度

在某些计算中,bc 会使用精度的概念,即小数点后面的数字位数。默认的精度是 0。除法操作总是使用精度的设定。所以,如果你没有设置精度,有可能会带来意想不到的答案:

echo '3/2' | bc
echo 'scale=3; 3/2' | bc

乘法使用一个更复杂的精度选择机制:

echo '3*2' | bc
echo '3*2.0' | bc

同时,加法和减法的相关运算则与之相似:

echo '7-4.15' | bc

其他进制系统

bc 的另一个有用的功能是可以使用除了十进制以外的其他计数系统。例如,你可以轻松地做十六进制或二进制的数学运算。可以使用 ibaseobase 命令来分别设定输入和输出的进制系统。需要记住的是一旦你使用了 ibase,之后你输入的任何数字都将被认为是在新定义的进制系统中。

要做十六进制数到十进制数的转换或运算,你可以使用类似下面的命令。请注意大于 9 的十六进制数必须是大写的(A-F):

echo 'ibase=16; A42F' | bc
echo 'ibase=16; 5F72+C39B' | bc

若要使得结果是十六进制数,则需要设定 obase

echo 'obase=16; ibase=16; 5F72+C39B' | bc

下面是一个小技巧。假如你在 shell 中做这些十六进制运算,怎样才能使得输入重新为十进制数呢?答案是使用 ibase 命令,但你必须设定它为在当前进制中与十进制中的 10 等价的值。例如,假如 ibase 被设定为十六进制,你需要输入:

ibase=A

一旦你执行了上面的命令,所有输入的数字都将是十进制的了,接着你便可以输入 obase=10 来重置输出的进制系统。

结论

上面所提到的只是 bc 所能做到的基础。它还允许你为某些复杂的运算和程序定义函数、变量和循环结构。你可以在你的系统中将这些程序保存为文本文件以便你在需要的时候使用。你还可以在网上找到更多的资源,它们提供了更多的例子以及额外的函数库。快乐地计算吧!


via: https://fedoramagazine.org/bc-command-line-calculator/

作者:Paul W. Frields 译者:FSSlc 校对:wxy

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