2022年3月

现在,你已经成功地 在 Ubuntu 上安装 Google Chrome。毕竟,它是世界上最受欢迎的网页浏览器了。

但是,你可能会不喜欢 Google 的产品,因为它们对用户的信息进行追踪和数据挖掘。你决定选择 Ubuntu 上的其他网页浏览器,并且它或许是一个 非 Chromium 核心的浏览器。

既然你已经不再使用 Google Chrome 了,那么,把它从 Ubuntu 系统中移除是一个明智的选择。

如何才能做到这一点呢?我来告诉你具体的步骤。

从 Ubuntu 中完全移除 Google Chrome

Illustration for removing Google Chrome from Ubuntu

你可能使用了图形界面的方式安装 Google Chrome,但不幸的是,你得使用命令行的方式来移除它,除非你选择 使用 Synaptic 软件包管理器。

使用命令行来做这件事也不是很难。首先,按下 键盘上的 Ctrl+Alt+T 快捷键来打开一个终端。

在终端中输入下面的命令:

sudo apt purge google-chrome-stable

此时它会向你索要一个密码,这个密码是你的用户账户密码,也就是你用来登录 Ubuntu 系统的密码。

当你输入密码的时候,屏幕上什么也不会显示。这是 Linux 系统的正常行为。继续输入密码,完成后按下回车键。

此时它会让你确认是否删除 Google Chrome,输入 Y 来确认,或者直接按下回车键也行。

Removing Google Chrome for Ubuntu

这个操作会从你的 Ubuntu Linux 系统中移除 Google Chrome,同时也会移除大多数相关的系统文件。

但是,你的个人设置文件仍然保留在用户主目录中。它包含了 Cookie、会话、书签和其他与你的账户相关的 Chrome 设置信息。当你下次安装 Google Chrome 时,这些文件可以被 Chrome 再次使用。

Google Chrome leftover settings in Ubuntu

如果你想要彻底地移除 Google Chrome,你可能会想要把这些文件也移除掉。那么,下面是你需要做的:

切换到 .config 目录。 注意 config 前面有个点`,这是 Linux 隐藏文件和目录的方式。

cd ~/.config

然后移除 google-chrome 目录:

rm -rf google-chrome

Removing the leftover Google Chrome settings from Ubuntu

你也可以仅使用一个命令 rm -rf ~/.config/google-chrome 来删除它。因为本教程面向的对象是完完全全的初学者,所以我把这个命令拆分为以上两个步骤来完成,这样可以减少由于拼写问题造成的可能错误。

小技巧

想要你的终端和截图里看起来一样漂亮吗?试试这些 终端定制小技巧。

我希望这篇快速的入门技巧可以帮助你在 Ubuntu 上摆脱 Google Chrome。


via: https://itsfoss.com/uninstall-chrome-from-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:lkxed 校对:wxy

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

Go 团队接受了新增对模糊测试的支持的提议。

 title=

Go 的应用越来越广泛。现在它是云原生软件、容器软件、命令行工具和数据库等等的首选语言。Go 很早之前就已经有了内建的 对测试的支持。这使得写测试代码和运行都相当简单。

什么是模糊测试?

模糊测试 fuzz testing (fuzzing)是指向你的软件输入非预期的数据。理想情况下,这种测试会让你的应用程序崩溃或有非预期的表现。抛开最终的结果,从程序对非预期的输入数据的处理结果中你可以得到很多信息,这样你就可以增加一些合适的错误处理。

任何一个软件都有对不同来源的输入或数据的接收说明,软件会对这些数据进行处理并返回适当的结果。软件开发后,测试工程师团队对其进行测试,找出软件中的错误,给出测试报告,并(由开发者)修复。通常测试的目的是验证软件的行为是否符合预期。测试又可以细分为不同的类型,如功能测试、集成测试、性能测试等等。每种测试方法关注软件功能的某一个方面,以便发现错误或者提升可靠性或性能。

模糊测试在这一测试过程上更进一步,尝试向软件程序输入一些“无效”或“随机”的数据。这种输入是故意的,期望得到的结果就是程序崩溃或输出异常,这样就可以暴露程序中的错误以便由开发者来修复它们。与其他测试类似,很少需要手动进行模糊测试,业界有大量的模糊测试工具可以将这个过程自动化。

Go 中的软件测试

举个例子,假如你想测试 add.go 中的 Add() 函数,你可以在 add_test.go 中导入 testing 包并把测试体写在以 TestXXX() 开头的函数内。

考虑如下代码:

func Add(num1, num2 int) int {
}

在 add_test.go 文件中,你可能有如下测试代码:

import "testing"

func TestAdd(t *testing.T) {
}

运行测试:

$ go test

新增对模糊测试的支持

Go 团队已经接受了 新增对模糊测试的支持的提议,以进一步推动这项工作。这涉及到新增一个 testing.F 类型,在 _test.go 文件中新增 FuzzXXX() 函数,在 Go 工具中会新增一个 -fuzz 选项来执行这些测试。

在 add_test.go 文件中:

func FuzzAdd(f *testing.F) {
}

执行以下代码:

$ go test -fuzz

在本文编写时,这个 功能还是试验性的,但是应该会在 1.18 发布版本中包含。(LCTT 译注:Go 1.18 刚刚发布,已经包含了对模糊测试的支持)目前很多功能如 -keepfuzzing、-race 等也还没有支持。Go 团队最近发布了一篇 模糊测试教程,值得读一下。

安装 gotip 来获取最新的功能

如果你极度渴望在正式发布之前尝试这些功能,你可以使用 gotip 来测试即将正式发布的 Go 功能并反馈给他们。你可以使用下面的命令来安装 gotip。安装之后,你可以用 gotip 程序代替以前的 go 程序来编译和运行程序。

$ go install golang.org/dl/gotip@latest
$ gotip download

$ gotip version
go version devel go1.18-f009910 Thu Jan 6 16:22:21 2022 +0000 linux/amd64

社区对于模糊测试的观点

软件社区中经常会讨论模糊测试,不同的人对模糊测试有不同的看法。有些人认为这是一种有用的技术,可以找到错误,尤其是在安全方面。然而考虑到模糊测试所需要的资源(CPU、内存),有人就认为这是一种浪费,而他们更愿意用其他的测试方法。即使在 Go 团队内部,意见也不统一。我们可以看到 Go 的联合创始人 Rob Pike 对模糊测试的使用和在 Go 中的实现是持轻微的怀疑态度的。

...虽然模糊测试有助于发现某类错误,但是它会占用大量的 CPU 和存储资源,并且效益成本比率也不明确。我担心为了写模糊测试浪费精力,或者 git 仓库中充斥大量无用的测试数据

~Rob Pike

然而,Go 安全团队的另一个成员,Filo Sottile,似乎对 Go 新增支持模糊测试很乐观,举了很多例子来支持,也希望模糊测试能成为开发过程中的一部分。

我想说模糊测试可以发现极端情况下的错误。这是我们作为安全团队对其感兴趣的原因:在极端情况下发现的错误可以避免在生产环境中成为弱点。

我们希望模糊测试能成为开发的一部分 —— 不只是构建或安全方面 —— 而是整个开发过程:它能提升相关代码的质量...

~Filo Sottile

现实中的模糊测试

对我而言,模糊测试在发现错误以及让系统变得更安全和更有弹性方面似乎非常有效。举个例子,Linux 内核也会使用名为 syzkaller 的工具进行模糊测试,这个工具已经发现了 大量 错误。

AFL 也是比较流行的模糊测试工具,用来测试 C/C++ 写的程序。

之前也有对 Go 程序进行模糊测试的观点,其中之一就是 Filo 在 GitHub 评论中提到的 go-fuzz。

go-fuzz 的记录提供了相当惊人的证据,证明模糊处理能很好地找到人类没有发现的错误。根据我的经验,我们只需要消耗一点点 CPU 的时间就可以得到极端情况下非常高效的测试结果。

为什么在 Go 中新增对模糊测试的原生支持

如果我们的需求是对 Go 程序进行模糊测试,之前的工具像 go-fuzz 就可以完成,那么为什么要在这种语言中增加原生支持呢?Go 模糊测试设计草案 中说明了这样做的一些根本原因。设计的思路是让开发过程更简单,因为前面说的工具增加了开发者的工作量,还有功能缺失。如果你没有接触过模糊测试,那么我建议你读一下设计草案文档。

开发者可以使用诸如 go-fuzz 或 fzgo(基于 go-fuzz)来解决某些需求。然而,已有的每种解决方案都需要在典型的 Go 测试上做更多的事,而且还缺少关键的功能。相比于其他的 Go 测试(如基准测试和单元测试),模糊测试不应该比它们复杂,功能也不应该比它们少。已有的解决方案增加了额外的开销,比如自定义命令行工具。

模糊测试工具

在大家期望 Go 语言新增功能的列表中,模糊测试是其中很受欢迎的一项。虽然现在还是试验性的,但在将要到来的发布版本中会变得更强大。这给了我们足够的时间去尝试它以及探索它的使用场景。我们不应该把它视为一种开销,如果使用得当它会是一种发现错误非常高效的测试工具。使用 Go 的团队应该推动它的使用,开发者可以写简单的模糊测试,测试团队去慢慢扩展以此来使用它全部的能力。


via: https://opensource.com/article/22/1/native-go-fuzz-testing

作者:Gaurav Kamathe 选题:lujun9972 译者:lxbwolf 校对:wxy

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

华为自研编程语言“仓颉”试用报名开启

今天,华为编程语言实验室发布了华为新语言的 试用报名问卷,并表示在问卷填写完成后,将通过邮件进行后续信息的通知。这款“新语言”应该就是华为在 2021 年开发者大会上公布的自研编程语言“仓颉”。据悉,仓颉是华为为 HarmonyOS 量身打造的编程语言,通过仓颉,鸿蒙与欧拉将在应用开发生态上进行打通。

老王点评:到底仓颉好不好,大家不如申请测试一下再说。

Linux 和树莓派设备成为默认密码攻击的目标

根据一份新的 威胁报告,随着攻击者越来越多地部署自动化攻击方法,默认凭证成为这些不良行为者最常使用的手段。而 nproc、root 和 pi/raspberry 等用于 Linux 和树莓派的默认密码成为最常见的密码之一。使用默认密码为攻击者提供了一个最容易的切入点,可以让攻击者避免被发现。

老王点评:再安全的系统也架不住你用默认密码啊。这一点上我觉得现代 Wi-Fi 路由器做的挺好,出厂就是随机密码。

Canonical 宣布新的 Ubuntu 徽标

Canonical 今天展示了一个全新的 Ubuntu 徽标,将在今年 4 月份发布的 Ubuntu 22.04 LTS 中启用。这是 Ubuntu 的“朋友圈”徽标(Circle of Friends)自 2004 年推出以来的第 3 次更新。该徽标的设计师也是上一次徽标的设计师,他称,“我们确实有一些相当大胆的想法。但我们的价值观在当时没有改变,现在也没有。所以最后,除了简单地将 ‘Circle of Friends’ 更新为一个更现代的外观和感觉之外,没有别的想法。”

老王点评:说实话,我是不太喜欢这个新的徽标。要说换徽标,我觉得 Mozilla 从社区征集到的那个最好。

Zorin OS 16.1 带来了安全补丁、新软件,团队的目标是打造更好的发行版。

Zorin OS 之所以受欢迎,是因为它为 Windows 用户的 Linux 之旅提供了一个完美的起点。由于其简单的设计、优雅的软件包选择和开箱即用的 Windows 外观,它是当今所有用户欢迎和追捧的 Linux 发行版之一。

自 Zorin OS 16 以来,经过近两个月的时间,这第一个小版本现在可以供已经在运行 16.0 版本的用户下载和升级了。

Zorin OS 16.1 Desktop

Zorin OS 16.1 - 新内容

Zorin OS 16.1 为你的系统带来了最新安全补丁,包括 LibreOffice 7.3 办公套件和一些更新的软件包。

如果你刚买了一台新的笔记本电脑或安装了一个新的游戏工作站,Zorin OS 16.1 还支持索尼的 PlayStation 5 Dual Sense 游戏控制器和苹果的魔术鼠标 2。此外,你还得到了对英特尔第 12 代处理器和英伟达 RTX 3050 显卡的出色支持。

此外,由于最新的软件包,Zorin 开发人员承诺对汽车 Wi-Fi 和打印机有更好的支持。

下面是这个小版本的更新包和应用的快速总结。

  • 基于 Ubuntu 20.04.3 LTS
  • Zorin 桌面,基于 GNOME 3.38.4
  • LibreOffice 7.3
  • Firefox 98
  • Linux Kernel 5.13
  • GIMP 2.10.18
  • Evolution 邮件客户端

如果你想深入了解这些变化,完整的细节可以在这里找到。

那么,在哪里下载?

下载

在你点击下载之前,你应该知道它有一个“专业”版本,带有额外的主题和开箱即用的设置,价值 39 美元,而“核心”版本是完全免费下载的。你可以在下载页面阅读“专业版”和“核心版”的比较。

在我看来,核心版应该足够了,如果你有足够的经验,你可以改变设置,使其成为专业版。因此,我们推荐核心版用于一般用途。


via: https://www.debugpoint.com/2022/03/zorin-os-16-1-release/

作者:Arindam 选题:lujun9972 译者:geekpi 校对:wxy

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

将这些命令加入到你的工作流中,使 Git 发挥更大的作用。

 title=

如果你经常使用 Git,你可能会知道它非常有名。它可能是最受欢迎的版本控制方案,它被一些 最大的软件项目 用来 跟踪文件变更。Git 提供了 健壮的界面 来审阅代码、把实验性的变更合并到已经存在的文件中。得益于 Git 钩子,它以灵活性而闻名。同时,也因为它的强大,它给人们留下了一个“复杂”的印象。

Git 有诸多特性,你不必全部使用,但是如果你正在深入研究 Git 的 子命令 subcommands ,我这里倒是有几个,或许你会觉得有用。

1、找到变更

如果你已经熟悉 Git 的基本指令(fetch、add、commit、push、log 等等),但是希望学习更多,那么从 Git 的检索子命令开始是一个简单安全的选择。检索你的 Git 仓库(你的 工作树)并不会做出任何更改,它只是一个报告机制。你不会像使用 git checkout 一样承担数据完整性的风险,你只是在向 Git 请求仓库的当前状态和历史记录而已。

git whatchanged 命令(几乎本身就是一个助记符)可以查看哪些文件在某个 提交 commit 中有变更、分别做了什么变更。它是一个简单的、用户友好的命令,因为它把 show、diff-tree 和 log 这三个命令的最佳功能整合到了一个好记的命令中。

2、使用 git stash 管理变更

你越多地使用 Git,你就会使用 Git 越多。这就是说,一旦你习惯了 Git 的强大功能,你就会更频繁地使用它。有时,你正在处理一大堆文件,忽然意识到了有更紧急的任务要做。这时,在 git stash 的帮助下,你就可以把所有正在进行的工作收集起来,然后安全地 暂存 stash 它们。当你的工作空间变得整洁有序,你就可以把注意力放到别的任务上,晚些时候再把暂存的文件重新加载到工作树里,继续之前的工作。

3、使用 git worktree 来得到链接的副本

当 git stash 不够用的时候,Git 还提供了强大的 git worktree 命令。有了它,你可以新建一个 链接的 仓库 副本 clone ,组成一个新分支,把 HEAD 设置到任意一个提交上,然后基于这个分支开始你的新工作。在这个链接的副本里,你可以进行和主副本完全不同的任务。这是一个避免意外的变更影响当前工作的好办法。当你完成了你的新工作,你可以把新分支推送到远程仓库;也可以把当前的变更归档,晚些时候再处理;还可以从别的工作树中获取它们的变更。无论选择哪一种,你的工作空间之间都会保持相互隔离,任一空间中的变更都不会影响其他空间中的变更,直到你准备好了要合并它们。

4、使用 git cherry-pick 来选择合并

这可能听起来很反直觉,但是,你的 Git 水平越高,你可能遇到的合并冲突就会越多。这是因为合并冲突不一定是错误的标志,而是活跃的标志。在学习 Git 中,适应合并时的冲突,并学会如何解决它们是非常重要的。通常的方式或许够用,但是有时候你会需要更加灵活地进行合并,这时候就该 git cherry-pick 出场了。遴选操作允许你选择部分合并提交,这样一来你就不需要因为一些细微的不协调而拒绝整个合并请求了。

5、使用 Git 来管理 $HOME

使用 Git 来管理你的主目录从来没有这么简单过,这都要归功于 Git 可以自由选择管理对象的能力,这是一个在多台计算机之间保持同步的现实可行的选项。但是,想要让它工作顺利,你必须非常明智且谨慎才行。如果你想要了解更多,点击阅读我写的关于 使用 Git 来管理 $HOME 的小技巧。

更好地使用 Git

Git 是一个强大的版本控制系统,你使用得越熟练,就可以越轻松地借助它来完成复杂的任务。今天就尝试一些新的 Git 命令吧,欢迎在评论区分享你最喜欢的 Git 命令。


via: https://opensource.com/article/21/4/git-commands

作者:Seth Kenlon 选题:lujun9972 译者:lkxed 校对:wxy

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

影响所有 Linux 防火墙的安全漏洞被发现

安全研究人员在 Linux 的 netfilter 中发现了 一个漏洞,“可以利用它来实现内核代码的执行,能够做到完全的本地权限提升、容器逃逸等。”几乎所有的 Linux 防火墙工具,如 iptables、nftables、firewalld 和 ufw 背后都有 netfilter,它控制着进出 Linux 的网络栈。漏洞原因是 netfilter 没有正确处理硬件卸载功能,即使被攻击的硬件没有卸载功能。这个漏洞存在于 Linux 内核 5.4 到 5.6.10 版本中。影响了最近的主要发行版,如 RHEL 8.x、Debian Bullseye、Ubuntu Linux 和 SUSE SLE 15.3。

老王点评:几乎所有的 Linux 都会启用 netfilter 防火墙,因此这个漏洞必须得补上,而无法规避。

20 年的 Debian 开发者被排挤出项目

一位在 Debian 项目中服务超过 20 年的开发者在去年 12 月被降级为维护者,导致他决定 离开该项目。他称,Debian 客户经理团队认为他“多年来一直在欺负项目成员”,“不能与社区团队沟通”。他现在已经加入了 Arch Linux 项目。他表示他将在以后的博文中解释更多的情况。

老王点评:是非曲直我们并不知道,但是有人的地方就有江湖,开源社区也不例外。

英特尔准备让其 SGX 支持 Linux 下的微码更新

越来越多的用户对他们的内核进行热补丁,并在不重启系统的情况下应用微码更新。但英特尔的“软件防护扩展”(SGX)还不允许实时微码更新。在一个正在运行的系统上进行 CPU 微码更新将破坏 SGX 认证,SGX 将停留在认证旧版本上,直到重新启动,而新的更新由于不同的版本而被认为受损。英特尔 正在引入 一个新的 SGX 指令 “EUPDATESVN”,允许其证明更新的微代码信息,而不需要重新启动。

老王点评:虽然 SGX 屡屡出现安全问题,但是这个对安全还是很有意义的,要是能支持实时微码更新,那就更好了。

回音

  • 被曝在 Windows 11 Insider 的文件管理器测试广告后,微软表示,这是一个实验性的横幅,并不打算对外发布,并且已经被关闭了,但不排除未来在文件资源管理器中出现广告。