2019年4月

为工作或者新项目学习足够的 Vim 知识。

我还清晰地记得我第一次接触 Vim 的时候。那时我还是一名大学生,计算机学院的机房里都装着 Ubuntu 系统。尽管我在上大学前也曾接触过不同的 Linux 发行版(比如 RHEL —— Red Hat 在百思买出售它的 CD),但这却是我第一次要在日常中频繁使用 Linux 系统,因为我的课程要求我这样做。当我开始使用 Linux 时,正如我的前辈和将来的后继者们一样,我感觉自己像是一名“真正的程序员”了。

 title=

真正的程序员,来自 xkcd

学生们可以使用像 Kate 一样的图形文本编辑器,这也安装在学校的电脑上了。对于那些可以使用 shell 但不习惯使用控制台编辑器的学生,最流行的选择是 Nano,它提供了很好的交互式菜单和类似于 Windows 图形文本编辑器的体验。

我有时会用 Nano,但当我听说 Vi/VimEmacs 能做一些很棒的事情时我决定试一试它们(主要是因为它们看起来很酷,而且我也很好奇它们有什么特别之处)。第一次使用 Vim 时吓到我了 —— 我不想搞砸任何事情!但是,一旦我掌握了它的诀窍,事情就变得容易得多,我就可以欣赏这个编辑器的强大功能了。至于 Emacs,呃,我有点放弃了,但我很高兴我坚持和 Vim 在一起。

在本文中,我将介绍一下 Vim(基于我的个人经验),这样你就可以在 Linux 系统上用它来作为编辑器使用了。这篇文章不会让你变成 Vim 的专家,甚至不会触及 Vim 许多强大功能的皮毛。但是起点总是很重要的,我想让开始的经历尽可能简单,剩下的则由你自己去探索。

第 0 步:打开一个控制台窗口

在使用 Vim 前,你需要做一些准备工作。在 Linux 操作系统打开控制台终端。(因为 Vim 也可以在 MacOS 上使用,Mac 用户也可以使用这些说明)。

打开终端窗口后,输入 ls 命令列出当前目录下的内容。然后,输入 mkdir Tutorial 命令创建一个名为 Tutorial 的新目录。通过输入 cd Tutorial 来进入该目录。

 title=

这就是全部的准备工作。现在是时候转到有趣的部分了——开始使用 Vim。

第 1 步:创建一个 Vim 文件和不保存退出

还记得我一开始说过我不敢使用 Vim 吗?我当时在害怕“如果我改变了一个现有的文件,把事情搞砸了怎么办?”毕竟,一些计算机科学作业要求我修改现有的文件。我想知道:如何在不保存更改的情况下打开和关闭文件?

好消息是你可以使用相同的命令在 Vim 中创建或打开文件:vim <FILE_NAME>,其中 <FILE_NAME> 表示要创建或修改的目标文件名。让我们通过输入 vim HelloWorld.java 来创建一个名为 HelloWorld.java 的文件。

你好,Vim!现在,讲一下 Vim 中一个非常重要的概念,可能也是最需要记住的:Vim 有多种模式,下面是 Vim 基础中需要知道的的三种:

模式描述
正常模式默认模式,用于导航和简单编辑
插入模式用于直接插入和修改文本
命令行模式用于执行如保存,退出等命令

Vim 也有其他模式,例如可视模式、选择模式和命令模式。不过上面的三种模式对我们来说已经足够用了。

你现在正处于正常模式,如果有文本,你可以用箭头键移动或使用其他导航键(将在稍后看到)。要确定你正处于正常模式,只需按下 esc (Escape)键即可。

提示: Esc 切换到正常模式。即使你已经在正常模式下,点击 Esc 只是为了练习。

现在,有趣的事情发生了。输入 : (冒号键)并接着 q! (完整命令::q!)。你的屏幕将显示如下:

 title=

在正常模式下输入冒号会将 Vim 切换到命令行模式,执行 :q! 命令将退出 Vim 编辑器而不进行保存。换句话说,你放弃了所有的更改。你也可以使用 ZQ 命令;选择你认为更方便的选项。

一旦你按下 Enter (回车),你就不再在 Vim 中。重复练习几次来掌握这条命令。熟悉了这部分内容之后,请转到下一节,了解如何对文件进行更改。

第 2 步:在 Vim 中修改并保存

通过输入 vim HelloWorld.java 和回车键来再次打开这个文件。你可以在插入模式中修改文件。首先,通过 Esc 键来确定你正处于正常模式。接着输入 i 来进入插入模式(没错,就是字母 i)。

在左下角,你将看到 -- INSERT --,这标志着你这处于插入模式。

 title=

写一些 Java 代码。你可以写任何你想写的,不过这也有一份你可以参照的例子。你的屏幕将显示如下:

public class HelloWorld {
  public static void main([String][11][] args) {
  }
}

非常漂亮!注意文本是如何在 Java 语法中高亮显示的。因为这是个 Java 文件,所以 Vim 将自动检测语法并高亮颜色。

保存文件:按下 Esc 来退出插入模式并进入命令行模式。输入 : 并接着 x! (完整命令::x!),按回车键来保存文件。你也可以输入 wq 来执行相同的操作。

现在,你知道了如何使用插入模式输入文本并使用以下命令保存文件::x! 或者 :wq

第 3 步:Vim 中的基本导航

虽然你总是可以使用上箭头、下箭头、左箭头和右箭头在文件中移动,但在一个几乎有数不清行数的大文件中,这将是非常困难的。能够在一行中跳跃光标将会是很有用的。虽然 Vim 提供了不少很棒的导航功能,不过在一开始,我想向你展示如何在 Vim 中到达某一特定的行。

单击 Esc 来确定你处于正常模式,接着输入 :set number 并键入回车。

瞧!你现在可以在每一行的左侧看到行号。

 title=

好,你也许会说,“这确实很酷,不过我该怎么跳到某一行呢?”再一次的,确认你正处于正常模式。接着输入 :<LINE_NUMBER>,在这里 <LINE_NUMBER> 是你想去的那一行的行数。按下回车键来试着移动到第二行。

:2

现在,跳到第三行。

 title=

但是,假如你正在处理一个一千多行的文件,而你正想到文件底部。这该怎么办呢?确认你正处于正常模式,接着输入 :$ 并按下回车。

你将来到最后一行!

现在,你知道如何在行间跳跃了,作为补充,我们来学一下如何移动到一行的行尾。确认你正处于有文本内容的一行,如第三行,接着输入 $

 title=

你现在来到这行的最后一个字节了。在此示例中,高亮左大括号以显示光标移动到的位置,右大括号被高亮是因为它是高亮的左大括号的匹配字符。

这就是 Vim 中的基本导航功能。等等,别急着退出文件。让我们转到 Vim 中的基本编辑。不过,你可以暂时顺便喝杯咖啡或茶休息一下。

第 4 步:Vim 中的基本编辑

现在,你已经知道如何通过跳到想要的一行来在文件中导航,你可以使用这个技能在 Vim 中进行一些基本编辑。切换到插入模式。(还记得怎么做吗?是不是输入 i ?)当然,你可以使用键盘逐一删除或插入字符来进行编辑,但是 Vim 提供了更快捷的方法来编辑文件。

来到第三行,这里的代码是 public static void main(String[] args) {。双击 d 键,没错,就是 dd。如果你成功做到了,你将会看到,第三行消失了,剩下的所有行都向上移动了一行。(例如,第四行变成了第三行)。

 title=

这就是 删除 delete 命令。不要担心,键入 u,你会发现这一行又回来了。喔,这就是 撤销 undo 命令。

 title=

下一课是学习如何复制和粘贴文本,但首先,你需要学习如何在 Vim 中突出显示文本。按下 v 并向左右移动光标来选择或反选文本。当你向其他人展示代码并希望标识你想让他们注意到的代码时,这个功能也非常有用。

 title=

来到第四行,这里的代码是 System.out.println("Hello, Opensource");。高亮这一行的所有内容。好了吗?当第四行的内容处于高亮时,按下 y。这就叫做 复制 yank 模式,文本将会被复制到剪贴板上。接下来,输入 o 来创建新的一行。注意,这将让你进入插入模式。通过按 Esc 退出插入模式,然后按下 p,代表 粘贴 paste 。这将把复制的文本从第三行粘贴到第四行。

 title=

作为练习,请重复这些步骤,但也要修改新创建的行中的文字。此外,请确保这些行对齐工整。

提示: 您需要在插入模式和命令行模式之间来回切换才能完成此任务。

当你完成了,通过 x! 命令保存文件。以上就是 Vim 基本编辑的全部内容。

第 5 步:Vim 中的基本搜索

假设你的团队领导希望你更改项目中的文本字符串。你该如何快速完成任务?你可能希望使用某个关键字来搜索该行。

Vim 的搜索功能非常有用。通过 Esc 键来进入命令模式,然后输入冒号 :,我们可以通过输入 /<SEARCH_KEYWORD> 来搜索关键词, <SEARCH_KEYWORD> 指你希望搜索的字符串。在这里,我们搜索关键字符串 Hello。在下面的图示中没有显示冒号,但这是必须输入的。

 title=

但是,一个关键字可以出现不止一次,而这可能不是你想要的那一个。那么,如何找到下一个匹配项呢?只需按 n 键即可,这代表 下一个 next 。执行此操作时,请确保你没有处于插入模式!

附加步骤:Vim 中的分割模式

以上几乎涵盖了所有的 Vim 基础知识。但是,作为一个额外奖励,我想给你展示 Vim 一个很酷的特性,叫做 分割 split 模式。

退出 HelloWorld.java 并创建一个新文件。在控制台窗口中,输入 vim GoodBye.java 并按回车键来创建一个名为 GoodBye.java 的新文件。

输入任何你想输入的让内容,我选择输入 Goodbye。保存文件(记住你可以在命令模式中使用 :x! 或者 :wq)。

在命令模式中,输入 :split HelloWorld.java,来看看发生了什么。

 title=

Wow!快看! split 命令将控制台窗口水平分割成了两个部分,上面是 HelloWorld.java,下面是 GoodBye.java。该怎么能在窗口之间切换呢? 按住 Control 键(在 Mac 上)或 Ctrl 键(在 PC 上),然后按下 ww (即双击 w 键)。

作为最后一个练习,尝试通过复制和粘贴 HelloWorld.java 来编辑 GoodBye.java 以匹配下面屏幕上的内容。

 title=

保存两份文件,成功!

提示 1: 如果你想将两个文件窗口垂直分割,使用 :vsplit <FILE_NAME> 命令。(代替 :split <FILE_NAME> 命令,<FILE_NAME> 指你想要使用分割模式打开的文件名)。

提示 2: 你可以通过调用任意数量的 split 或者 vsplit 命令来打开两个以上的文件。试一试,看看它效果如何。

Vim 速查表

在本文中,您学会了如何使用 Vim 来完成工作或项目,但这只是你开启 Vim 强大功能之旅的开始,可以查看其他很棒的教程和技巧。

为了让一切变得简单些,我已经将你学到的一切总结到了 一份方便的速查表 中。


via: https://opensource.com/article/19/3/getting-started-vim

作者:Bryant Son 选题:lujun9972 译者:Modrisco 校对:wxy

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

目前,我们都在使用 Linux 发行版的官方软件包管理器来安装所需的软件包。

在 Linux 中,它做得很好,没有任何问题。(它不打折扣地很好的完成了它应该做的工作)

但在一些方面它也有一些限制,所以会让我们考虑其他替代解决方案来解决。

是的,默认情况下,我们不能从发行版官方软件包管理器获取到最新版本的软件包,因为这些软件包是在构建当前 OS 版本时构建的。它们只会提供安全更新,直到下一个主要版本发布。

那么,这种情况有什么解决办法吗?是的,我们有多种解决方案,而且我们大多数人已经开始使用其中的一些了。

有些什么呢,它们有什么好处?

使用上面的仓库,我们将获得最新的软件包。这些软件包通常都得到了很好的维护,还有大多数社区的推荐。但这些只是建议,可能并不总是安全的。

近年来,出现了一下通用软件包封装格式,并且得到了广泛的应用。

  • Flatpak:它是独立于发行版的包格式,主要贡献者是 Fedora 项目团队。大多数主要的 Linux 发行版都采用了 Flatpak 框架。
  • Snaps:Snappy 是一种通用的软件包封装格式,最初由 Canonical 为 Ubuntu 手机及其操作系统设计和构建的。后来,更多的发行版都接纳了它。
  • AppImage:AppImage 是一种可移植的包格式,可以在不安装和不需要 root 权限的情况下运行。

我们之前已经介绍过 Snap 包管理器和包封装格式。今天我们将讨论 Flatpak 包封装格式。

什么是 Flatpak?

Flatpak(以前称为 X Desktop Group 或 xdg-app)是一个软件实用程序。它提供了一种通用的包封装格式,可以在任何 Linux 发行版中使用。

它提供了一个沙箱(隔离的)环境来运行应用程序,不会影响其他应用程序和发行版核心软件包。我们还可以安装并运行不同版本的软件包。

Flatpak 的一个缺点是不像 Snap 和 AppImage 那样支持服务器操作系统,它只在少数桌面环境下工作。

比如说,如果你想在系统上运行两个版本的 php,那么你可以轻松安装并按照你的意愿运行。

这就是现在通用包封装格式非常有名的地方。

如何在 Linux 中安装 Flatpak?

大多数 Linux 发行版官方仓库都提供 Flatpak 软件包。因此,可以使用它们来进行安装。

对于 Fedora 系统,使用 DNF 命令 来安装 flatpak。

$ sudo dnf install flatpak

对于 Debian/Ubuntu 系统,使用 APT-GET 命令APT 命令 来安装 flatpak。

$ sudo apt install flatpak

对于较旧的 Ubuntu 版本:

$ sudo add-apt-repository ppa:alexlarsson/flatpak
$ sudo apt update
$ sudo apt install flatpak

对于基于 Arch Linux 的系统,使用 Pacman 命令 来安装 flatpak。

$ sudo pacman -S flatpak

对于 RHEL/CentOS 系统,使用 YUM 命令 来安装 flatpak。

$ sudo yum install flatpak

对于 openSUSE Leap 系统,使用 Zypper 命令 来安装 flatpak。

$ sudo zypper install flatpak

如何在 Linux 上启用 Flathub 支持?

Flathub 网站是一个应用程序商店,你可以在其中找到 flatpak 软件包。它是一个中央仓库,所有的 flatpak 应用程序都可供用户使用。

运行以下命令在 Linux 上启用 Flathub 支持:

$ sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

为 GNOME 桌面环境安装 Software Flatpak 插件。

$ sudo apt install gnome-software-plugin-flatpak

此外,如果你使用的是 GNOME 桌面环境,则可以启用 GNOME 仓库。它包含所有 GNOME 核心应用程序。

$ wget https://sdk.gnome.org/keys/gnome-sdk.gpg
$ sudo flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/

如何列出已配置的 flakpak 仓库?

如果要查看系统上已配置的 flatpak 仓库列表,运行以下命令:

$ flatpak remotes
Name       Options
flathub    system
gnome-apps system

如何列出已配置仓库中的可用软件包?

如果要查看已配置仓库中的可用软件包的列表(它将显示所有软件包,如应用程序和运行环境),运行以下命令:

$ flatpak remote-ls | head -10

org.freedesktop.GlxInfo gnome-apps
org.gnome.Books gnome-apps
org.gnome.Builder   gnome-apps
org.gnome.Calculator    gnome-apps
org.gnome.Calendar  gnome-apps
org.gnome.Characters    gnome-apps
org.gnome.Devhelp   gnome-apps
org.gnome.Dictionary    gnome-apps
org.gnome.Documents gnome-apps
org.gnome.Epiphany  gnome-apps

仅列出应用程序:

$ flatpak remote-ls --app

列出特定的仓库应用程序:

$ flatpak remote-ls gnome-apps

如何从 flatpak 安装包?

运行以下命令从 flatpak 仓库安装软件包:

$ sudo flatpak install flathub com.github.muriloventuroso.easyssh

Required runtime for com.github.muriloventuroso.easyssh/x86_64/stable (runtime/org.gnome.Platform/x86_64/3.30) found in remote flathub
Do you want to install it? [y/n]: y
Installing in system:
org.gnome.Platform/x86_64/3.30                          flathub 4e93789f42ac
org.gnome.Platform.Locale/x86_64/3.30                   flathub 6abf9c0e2b72
org.freedesktop.Platform.html5-codecs/x86_64/18.08      flathub d6abde36c0be
com.github.muriloventuroso.easyssh/x86_64/stable        flathub 337db43043d2
  permissions: ipc, network, wayland, x11, dri
  file access: home, xdg-run/dconf, ~/.config/dconf:ro
  dbus access: ca.desrt.dconf
com.github.muriloventuroso.easyssh.Locale/x86_64/stable flathub af837356b222
Is this ok [y/n]: y
Installing: org.gnome.Platform/x86_64/3.30 from flathub
[####################] 1 metadata, 14908 content objects fetched; 228018 KiB transferred in 364 seconds
Now at 4e93789f42ac.
Installing: org.gnome.Platform.Locale/x86_64/3.30 from flathub
[####################] 4 metadata, 1 content objects fetched; 16 KiB transferred in 2 seconds
Now at 6abf9c0e2b72.
Installing: org.freedesktop.Platform.html5-codecs/x86_64/18.08 from flathub
[####################] 26 metadata, 131 content objects fetched; 2737 KiB transferred in 8 seconds
Now at d6abde36c0be.
Installing: com.github.muriloventuroso.easyssh/x86_64/stable from flathub
[####################] 191 metadata, 3633 content objects fetched; 24857 KiB transferred in 117 seconds
Now at 337db43043d2.
Installing: com.github.muriloventuroso.easyssh.Locale/x86_64/stable from flathub
[####################] 3 metadata, 1 content objects fetched; 14 KiB transferred in 2 seconds
Now at af837356b222.

所有已安装的应用程序都将放在以下位置:

$ ls /var/lib/flatpak/app/
com.github.muriloventuroso.easyssh

如何运行已安装的应用程序?

运行以下命令以启动所需的应用程序,确保替换为你的应用程序名称:

$ flatpak run com.github.muriloventuroso.easyssh

如何查看已安装的应用程序?

运行以下命令来查看已安装的应用程序:

$ flatpak list
Ref                                                Options
com.github.muriloventuroso.easyssh/x86_64/stable   system,current
org.freedesktop.Platform.html5-codecs/x86_64/18.08 system,runtime
org.gnome.Platform/x86_64/3.30                     system,runtime

如何查看有关已安装应用程序的详细信息?

运行以下命令以查看有关已安装应用程序的详细信息:

$ flatpak info com.github.muriloventuroso.easyssh

Ref: app/com.github.muriloventuroso.easyssh/x86_64/stable
ID: com.github.muriloventuroso.easyssh
Arch: x86_64
Branch: stable
Origin: flathub
Collection ID: org.flathub.Stable
Date: 2019-01-08 13:36:32 +0000
Subject: Update com.github.muriloventuroso.easyssh.json (cd35819c)
Commit: 337db43043d282c74d14a9caecdc780464b5e526b4626215d534d38b0935049f
Parent: 6e49096146f675db6ecc0ce7c5347b4b4f049b21d83a6cc4d01ff3f27c707cb6
Location: /var/lib/flatpak/app/com.github.muriloventuroso.easyssh/x86_64/stable/337db43043d282c74d14a9caecdc780464b5e526b4626215d534d38b0935049f
Installed size: 100.0 MB
Runtime: org.gnome.Platform/x86_64/3.30
Sdk: org.gnome.Sdk/x86_64/3.30

如何更新已安装的应用程序?

运行以下命令将已安装的应用程序更新到最新版本:

$ flatpak update

对于特定应用程序,使用以下格式:

$ flatpak update com.github.muriloventuroso.easyssh

如何移除已安装的应用程序?

运行以下命令来移除已安装的应用程序:

$ sudo flatpak uninstall com.github.muriloventuroso.easyssh

进入 man 页面以获取更多细节和选项:

$ flatpak --help

via: https://www.2daygeek.com/how-to-install-and-enable-flatpak-support-on-linux/

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

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

Big News

Ubuntu 19.04 发布

Ubuntu 19.04 是 Ubuntu 最新的桌面端操作系统。目前已经开放了下载。 此版本不是 LTS 版本,最新的 LTS 版本依然是 Ubuntu 18.04.2 。【Ubuntu】

新的 Ubuntu 系统提供了更好的用户体验和操作的节奏,你可以现在安装 Ubuntu 19.04 来体验 Gnome 3.32 、Linux Kernel 5.X 以及性能的提升。

Quick News

微软收购了设计了 ThreadX 的 Express Logic 公司

Express Logic 公司于 1996 年创建,至今已有 23 年,其产品 ThreadX RTos部署超过了超过62亿个设备。【Express Logic】

Zoom 公司开盘价为 $65,超过发售价 $36

Zoom.us 是业界领先的视频会议解决方案提供商。Zoom 公司本周四在美国纳斯达克市场上交易,股票代码为“ZM”。【ZDnet】

中国在山东建立高速公路的自动驾驶汽车测试场

齐鲁交通发展集团有限公司发言人表示,该公司正在利用现有高速公路的一部分在山东省东部建立试验场地,这条26公里长的试验场地于 4 月 12 日开始施工,预计将于 9 月开始运营。【The Star】

2017 年,黑客组织 Shadow Brokers 对外宣称他们已经成功入侵了美国国家安全局(NSA)下属的黑客组织 Equation Group,下载了后者大量的攻击工具并在网上发起拍卖。而现在又有黑客发布了类似的黑客工具,不过这次来自于伊朗精英网络间谍部队之一,在业内被称之为 APT34、Oilrig 或 HelixKitten。

尽管本次发布的黑客工具并没有 2017 年 NSA 泄露的黑客工具那么复杂,但它们依然是非常危险的。这些黑客工具自今年 3 月中旬开始在网络上发布,以 Lab Dookhtegan 这个假名在 Telegram 频道上进行出售。

一些网络安全专家已经确认了这些工具的真实性。 Alphabet 的网络安全部门 Chronicle 今天早些时候向 ZDNet 证实了这一点。在今天发布的 Telegram 频道中,黑客共泄露了 6 个黑客工具的源代码,此外还有部分来自活跃后端面板的内容以及收集的受害者数据。

这6个黑客工具分别为:

  • Glimpse(基于 PowerShell 的新版木马,Palo Alto Networks 命名为 BondUpdater)
  • PoisonFrog(旧版 BondUpdater)
  • HyperShell(称之为 TwoFace 的 Palo Alto Networks 网络外壳)
  • HighShell(另一个 Web shell)
  • Fox Panel(钓鱼工具包)
  • Webmask(DNS 隧道,DNSpionage 背后的主要工具)

来源:cnBeta.COM

更多资讯

追剧有险 黑客利用《权利的游戏》勒索诈骗

追了八年的《权力的游戏》在 4 月 14 日迎来了最终季,朋友圈有人感叹,刚追剧时候自己还不是个“日天日地日卫星”的程序员,拥有茂密的头发,现在……这都不重要,剧王终章上映,前七季人物的关系,经典场景,甚至是床戏都被拿来一一盘点,剧迷们纷纷分享熟肉资源,在一本正经工作群里也出现了这种场面。

来源: 雷锋网

详情: http://t.cn/EX3xWrt

美国学生使用 USB Killer 毁掉了数万美元的学校电脑

纽约 Saint Rose 学院的一名前学生承认使用 USB Killer 设备毁掉数万美元学校电脑的指控。USB Killer 设备设计通过释放负电涌毁坏计算机主板电路。27 岁的 Vishwanath Akuthota 面临最高 10 年的监禁和 25 万美元的罚款(大多数情况下不会面临最高刑期),他于 2 月 22 日在北卡罗来纳州被捕。

来源: solidot.org

详情: http://t.cn/EX3xRjJ

微软动作太慢:0patch 团队抢先发布 Win10 IE 安全漏洞修复补丁

几天前,外媒爆料称 Internet Explorer 存在一个可能被黑客利用的安全漏洞。借助某些文件处理中的 bug,它可以窃取用户的文件。最令人害怕的是,就算你不是 IE 浏览器的用户,也会受到这个漏洞的影响。鉴于微软没能第一时间发布漏洞修复补丁,坐不住的第三方已经抢先推出了针对 Windows 10 平台的小补丁(micro-patch)。

来源: cnBeta.COM

详情: http://t.cn/EX3xrkH

四部门抓紧推进 App 违法收集使用个人信息专项治理

中央网信办、工信部、公安部、市场监管总局指导成立 App 违法违规收集使用个人信息专项治理工作组以来,组织开展的 App 收集使用个人信息评估工作取得阶段性进展。记者从工作组负责人处获悉,截至 4 月 16 日,举报信息超过 3480 条,涉及 1300 余款 App。对于 30 款用户量大、问题严重的 App,工作组已向其运营者发送了整改通知。

来源: 新华网

详情: http://t.cn/EX3JPo7

(信息来源于网络,安华金和搜集整理)

思科、VMware、HPE 等公司开始采用了新的 Google Cloud Athos 云技术。

Thinkstock

思科与谷歌已扩展它们的混合云开发活动,以帮助其客户可以在从本地数据中心到公共云上的任何地方更轻松地搭建安全的多云以及混合云应用。

这次扩张围绕着谷歌被称作 Anthos 的新的开源混合云包展开,它是在这周的 Google Next 活动上推出的。Anthos 基于并取代了谷歌现有的谷歌云服务测试版。Anthos 将让客户们无须修改应用就可以在现有的本地硬件或公共云上运行应用。据谷歌说,它可以在谷歌云平台 (GCP) 与 谷歌 Kubernetes 引擎 (GKE) 或者在数据中心中与 GKE On-Prem 一同使用。谷歌说,Anthos 首次让客户们可以无需管理员和开发者了解不同的坏境和 API 就能从谷歌平台上管理在第三方云上(如 AWS 和 Azure)的工作负荷。

关键在于,Athos 提供了一个单一的托管服务,它使得客户们无须担心不同的环境或 API 就能跨云管理、部署工作负荷。

作为首秀的一部分,谷歌也宣布一个叫做 Anthos Migrate 的测试计划,它能够从本地环境或者其它云自动迁移虚拟机到 GKE 上的容器中。谷歌说,“这种独特的迁移技术使你无须修改原来的虚拟机或者应用就能以一种行云流水般的方式迁移、更新你的基础设施”。谷歌称它给予了公司按客户节奏转移本地应用到云环境的灵活性。

思科和谷歌

就思科来说,它宣布对 Anthos 的支持并承诺将它紧密集成进思科的数据中心技术中,例如 HyperFlex 超融合包、应用中心基础设施(思科的旗舰 SDN 方案)、SD-WAN 和 StealthWatch 云。思科说,无论是本地的还是在云端的,这次集成将通过自动更新到最新版本和安全补丁,给予一种一致的、云般的感觉。

“谷歌云在容器(Kubernetes)和 服务网格 service mesh (Istio)上的专业与它们在开发者社区的领导力,再加上思科的企业级网络、计算、存储和安全产品及服务,将为我们的顾客促成一次强强联合。”思科的云平台和解决方案集团资深副总裁 Kip Compton 这样写道,“思科对于 Anthos 的集成将会帮助顾客跨本地数据中心和公共云搭建、管理多云/混合云应用,让他们专注于创新和灵活性,同时不会影响安全性或增加复杂性。”

谷歌云和思科

谷歌云工程副总裁 Eyal Manor 写道 通过思科对 Anthos 的支持,客户将能够:

  • 受益于全托管服务例如 GKE 以及思科的超融合基础设施、网络和安全技术;
  • 在企业数据中心和云中一致运行
  • 在企业数据中心使用云服务
  • 用最新的云技术更新本地基础设施

思科和谷歌从 2017 年 10 月就在紧密合作,当时他们表示正在开发一个能够连接本地基础设施和云环境的开放混合云平台。该套件,即思科为谷歌云打造的混合云平台,大致在 2018 年 9 月上市。它使得客户们能通过谷歌云托管 Kubernetes 容器开发企业级功能,包含思科网络和安全技术以及来自 Istio 的服务网格监控。

谷歌说开源的 Istio 的容器和微服务优化技术给开发者提供了一种一致的方式,通过服务级的 mTLS (双向传输层安全)身份验证访问控制来跨云连接、保护、管理和监听微服务。因此,客户能够轻松实施新的可移植的服务,并集中配置和管理这些服务。

思科不是唯一宣布对 Anthos 支持的供应商。谷歌表示,至少 30 家大型合作商包括 VMwareDell EMCHPE、Intel 和联想致力于为他们的客户在它们自己的超融合基础设施上提供 Anthos 服务。


via: https://www.networkworld.com/article/3388218/cisco-google-reenergize-multicloudhybrid-cloud-joint-development.html

作者:Michael Cooney 选题:lujun9972 译者:tomjlw 校对:wxy

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

Linux 系统中 root 用户拥有 Linux 中全部控制权力。Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为。

如果其他用户想去实施一些行为,不能为所有人都提供 root 访问权限。因为如果他或她做了一些错误的操作,没有办法去纠正它。

为了解决这个问题,有什么方案吗?

我们可以把 sudo 权限发放给相应的用户来克服这种情况。

sudo 命令提供了一种机制,它可以在不用分享 root 用户的密码的前提下,为信任的用户提供系统的管理权限。

他们可以执行大部分的管理操作,但又不像 root 一样有全部的权限。

什么是 sudo?

sudo 是一个程序,普通用户可以使用它以超级用户或其他用户的身份执行命令,是由安全策略指定的。

sudo 用户的访问权限是由 /etc/sudoers 文件控制的。

sudo 用户有什么优点?

在 Linux 系统中,如果你不熟悉一个命令,sudo 是运行它的一个安全方式。

  • Linux 系统在 /var/log/secure/var/log/auth.log 文件中保留日志,并且你可以验证 sudo 用户实施了哪些行为操作。
  • 每一次它都为当前的操作提示输入密码。所以,你将会有时间去验证这个操作是不是你想要执行的。如果你发觉它是不正确的行为,你可以安全地退出而且没有执行此操作。

基于 RHEL 的系统(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL))和基于 Debian 的系统(如 Debian、Ubuntu 和 LinuxMint)在这点是不一样的。

我们将会教你如何在本文中提及的两种发行版中执行该操作。

这里有三种方法可以应用于两个发行版本。

  • 增加用户到相应的组。基于 RHEL 的系统,我们需要添加用户到 wheel 组。基于 Debain 的系统,我们添加用户到 sudoadmin 组。
  • 手动添加用户到 /etc/group 文件中。
  • visudo 命令添加用户到 /etc/sudoers 文件中。

如何在 RHEL/CentOS/OEL 系统中配置 sudo 访问权限?

在基于 RHEL 的系统中(如 Redhat (RHEL)、 CentOS 和 Oracle Enterprise Linux (OEL)),使用下面的三个方法就可以做到。

方法 1:在 Linux 中如何使用 wheel 组为普通用户授予超级用户访问权限?

wheel 是基于 RHEL 的系统中的一个特殊组,它提供额外的权限,可以授权用户像超级用户一样执行受到限制的命令。

注意,应该在 /etc/sudoers 文件中激活 wheel 组来获得该访问权限。

# grep -i wheel /etc/sudoers

## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
# %wheel ALL=(ALL) NOPASSWD: ALL

假设我们已经创建了一个用户账号来执行这些操作。在此,我将会使用 daygeek 这个用户账号。

执行下面的命令,添加用户到 wheel 组。

# usermod -aG wheel daygeek

我们可以通过下面的命令来确定这一点。

# getent group wheel
wheel:x:10:daygeek

我将要检测用户 daygeek 是否可以访问属于 root 用户的文件。

$ tail -5 /var/log/secure
tail: cannot open /var/log/secure for reading: Permission denied

当我试图以普通用户身份访问 /var/log/secure 文件时出现错误。 我将使用 sudo 访问同一个文件,让我们看看这个魔术。

$ sudo tail -5 /var/log/secure
[sudo] password for daygeek:
Mar 17 07:01:56 CentOS7 sudo: daygeek : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secure
Mar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by daygeek(uid=0)
Mar 17 07:01:56 CentOS7 sudo: pam_unix(sudo:session): session closed for user root
Mar 17 07:05:10 CentOS7 sudo: daygeek : TTY=pts/0 ; PWD=/home/daygeek ; USER=root ; COMMAND=/bin/tail -5 /var/log/secure
Mar 17 07:05:10 CentOS7 sudo: pam_unix(sudo:session): session opened for user root by daygeek(uid=0)

方法 2:在 RHEL/CentOS/OEL 中如何使用 /etc/group 文件为普通用户授予超级用户访问权限?

我们可以通过编辑 /etc/group 文件来手动地添加用户到 wheel 组。

只需打开该文件,并在恰当的组后追加相应的用户就可完成这一点。

$ grep -i wheel /etc/group
wheel:x:10:daygeek,user1

在该例中,我将使用 user1 这个用户账号。

我将要通过在系统中重启 Apache httpd 服务来检查用户 user1 是不是拥有 sudo 访问权限。让我们看看这个魔术。

$ sudo systemctl restart httpd
[sudo] password for user1:

$ sudo grep -i user1 /var/log/secure
[sudo] password for user1:
Mar 17 07:09:47 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpd
Mar 17 07:10:40 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/systemctl restart httpd
Mar 17 07:12:35 CentOS7 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/grep -i httpd /var/log/secure

方法 3:在 Linux 中如何使用 /etc/sudoers 文件为普通用户授予超级用户访问权限?

sudo 用户的访问权限是被 /etc/sudoers 文件控制的。因此,只需将用户添加到 sudoers 文件中 的 wheel 组下即可。

只需通过 visudo 命令将期望的用户追加到 /etc/sudoers 文件中。

# grep -i user2 /etc/sudoers
user2 ALL=(ALL) ALL

在该例中,我将使用 user2 这个用户账号。

我将要通过在系统中重启 MariaDB 服务来检查用户 user2 是不是拥有 sudo 访问权限。让我们看看这个魔术。

$ sudo systemctl restart mariadb
[sudo] password for user2:

$ sudo grep -i mariadb /var/log/secure
[sudo] password for user2:
Mar 17 07:23:10 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart mariadb
Mar 17 07:26:52 CentOS7 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/grep -i mariadb /var/log/secure

在 Debian/Ubuntu 系统中如何配置 sudo 访问权限?

在基于 Debian 的系统中(如 Debian、Ubuntu 和 LinuxMint),使用下面的三个方法就可以做到。

方法 1:在 Linux 中如何使用 sudo 或 admin 组为普通用户授予超级用户访问权限?

sudoadmin 是基于 Debian 的系统中的特殊组,它提供额外的权限,可以授权用户像超级用户一样执行受到限制的命令。

注意,应该在 /etc/sudoers 文件中激活 sudoadmin 组来获得该访问权限。

# grep -i 'sudo\|admin' /etc/sudoers

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

假设我们已经创建了一个用户账号来执行这些操作。在此,我将会使用 2gadmin 这个用户账号。

执行下面的命令,添加用户到 sudo 组。

# usermod -aG sudo 2gadmin

我们可以通过下面的命令来确定这一点。

# getent group sudo
sudo:x:27:2gadmin

我将要检测用户 2gadmin 是否可以访问属于 root 用户的文件。

$ less /var/log/auth.log
/var/log/auth.log: Permission denied

当我试图以普通用户身份访问 /var/log/auth.log 文件时出现错误。 我将要使用 sudo 访问同一个文件,让我们看看这个魔术。

$ sudo tail -5 /var/log/auth.log
[sudo] password for 2gadmin:
Mar 17 20:39:47 Ubuntu18 sudo: 2gadmin : TTY=pts/0 ; PWD=/home/2gadmin ; USER=root ; COMMAND=/bin/bash
Mar 17 20:39:47 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by 2gadmin(uid=0)
Mar 17 20:40:23 Ubuntu18 sudo: pam_unix(sudo:session): session closed for user root
Mar 17 20:40:48 Ubuntu18 sudo: 2gadmin : TTY=pts/0 ; PWD=/home/2gadmin ; USER=root ; COMMAND=/usr/bin/tail -5 /var/log/auth.log
Mar 17 20:40:48 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by 2gadmin(uid=0)

或者,我们可以通过添加用户到 admin 组来执行相同的操作。

运行下面的命令,添加用户到 admin 组。

# usermod -aG admin user1

我们可以通过下面的命令来确定这一点。

# getent group admin
admin:x:1011:user1

让我们看看输出信息。

$ sudo tail -2 /var/log/auth.log
[sudo] password for user1:
Mar 17 20:53:36 Ubuntu18 sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/usr/bin/tail -2 /var/log/auth.log
Mar 17 20:53:36 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user1(uid=0)

方法 2:在 Debian/Ubuntu 中如何使用 /etc/group 文件为普通用户授予超级用户访问权限?

我们可以通过编辑 /etc/group 文件来手动地添加用户到 sudo 组或 admin 组。

只需打开该文件,并在恰当的组后追加相应的用户就可完成这一点。

$ grep -i sudo /etc/group
sudo:x:27:2gadmin,user2

在该例中,我将使用 user2 这个用户账号。

我将要通过在系统中重启 Apache httpd 服务来检查用户 user2 是不是拥有 sudo 访问权限。让我们看看这个魔术。

$ sudo systemctl restart apache2
[sudo] password for user2:

$ sudo tail -f /var/log/auth.log
[sudo] password for user2:
Mar 17 21:01:04 Ubuntu18 systemd-logind[559]: New session 22 of user user2.
Mar 17 21:01:04 Ubuntu18 systemd: pam_unix(systemd-user:session): session opened for user user2 by (uid=0)
Mar 17 21:01:33 Ubuntu18 sudo: user2 : TTY=pts/0 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart apache2

方法 3:在 Linux 中如何使用 /etc/sudoers 文件为普通用户授予超级用户访问权限?

sudo 用户的访问权限是被 /etc/sudoers 文件控制的。因此,只需将用户添加到 sudoers 文件中的 sudoadmin 组下即可。

只需通过 visudo 命令将期望的用户追加到 /etc/sudoers 文件中。

# grep -i user3 /etc/sudoers
user3 ALL=(ALL:ALL) ALL

在该例中,我将使用 user3 这个用户账号。

我将要通过在系统中重启 MariaDB 服务来检查用户 user3 是不是拥有 sudo 访问权限。让我们看看这个魔术。

$ sudo systemctl restart mariadb
[sudo] password for user3:

$ sudo tail -f /var/log/auth.log
[sudo] password for user3:
Mar 17 21:12:32 Ubuntu18 systemd-logind[559]: New session 24 of user user3.
Mar 17 21:12:49 Ubuntu18 sudo: user3 : TTY=pts/0 ; PWD=/home/user3 ; USER=root ; COMMAND=/bin/systemctl restart mariadb
Mar 17 21:12:49 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user3(uid=0)
Mar 17 21:12:53 Ubuntu18 sudo: pam_unix(sudo:session): session closed for user root
Mar 17 21:13:08 Ubuntu18 sudo: user3 : TTY=pts/0 ; PWD=/home/user3 ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/auth.log
Mar 17 21:13:08 Ubuntu18 sudo: pam_unix(sudo:session): session opened for user root by user3(uid=0)

via: https://www.2daygeek.com/how-to-configure-sudo-access-in-linux/

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

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