如果我按照博客或 Ask Ubuntu 等的说明进行操作,它总是安全的吗?

Dim*_*Ari 23 security command-line

我是 Linux 和 Ubuntu 的新手。当我不知道如何用这个操作系统做一些事情时,我在网上搜索并询问 Ubuntu 并总能找到答案。

但有时它不是一个很好的答案,也不是完整的教程。无论如何我都按照说明进行操作,但我不知道所有命令的含义。

所以我的问题是:

  • 当我遵循教程时,我是否 100% 安全?
  • 如果没有,那我怎么能说我有危险呢?

A.B*_*.B. 45

TL;DR不,您不是 100% 安全的。或者换句话说,三思而后行。;)


不要在不了解基础知识的情况下执行代码片段。使用man更多地了解一个命令或程序。如果您不明白,请使用 Google 或其他搜索门户。如果您仍然怀疑,请不要执行代码。

你信任我吗?然后运行:

man man
Run Code Online (Sandbox Code Playgroud)

好的,不危险,你看手册页 man

但是下面的代码呢,你相信我吗?

$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
Run Code Online (Sandbox Code Playgroud)

不是?好主意。让我们分解代码:

  • perl

    Perl 语言解释器

  • -MMIME::Base64

    base64 字符串的编码和解码

  • -0777ne

    -0777 - 将行分隔符更改为 undef,让我们可以清空文件,一次性将所有行提供给 Perl。

    -e - (execute) 标志允许我们在命令行上指定我们想要运行的 Perl 代码。

    -n - 将输入逐行输入到 Perl。

  • 'print decode_base64($_)'- 解码一个字符串,字符串保存在$_.

  • "ZWNobyAnQk9PSCEnCg=="- 和这个?这是什么?

让我们开始测试。

我们知道,它类似于 base64 并且看起来是经过编码的。因此解码字符串:

base64 --decode <<< "ZWNobyAnQk9PSCEnCg=="
Run Code Online (Sandbox Code Playgroud)

输出是……好吧,不是很危险:

echo 'BOOH!'
Run Code Online (Sandbox Code Playgroud)

现在,我们可以用 perl 做同样的事情

perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg=="
Run Code Online (Sandbox Code Playgroud)

输出是,多么令人惊讶:

echo 'BOOH!'
Run Code Online (Sandbox Code Playgroud)

但这有危险吗?这是危险的:

$(…)
Run Code Online (Sandbox Code Playgroud)

此构造执行圆括号中命令的输出。

让我们试试看,你相信我吗?

$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
Run Code Online (Sandbox Code Playgroud)

“呸!”

和什么有关

c3VkbyBraWxsYWxsIG5hdXRpbHVzCg==
Run Code Online (Sandbox Code Playgroud)

试试看……你相信我吗?

  • 想象一下,如果 Base64 编码的字符串是“c3VkbyBybSAtcmYgLw==”! (2认同)
  • @DoktorJ我只得到`rm:在“/”上递归操作是危险的`rm:使用--no-preserve-root来覆盖这个故障安全` (2认同)

小智 5

我对此的一般假设是肯定的,因为 askUbuntu 的人通常知道他们的方法。

然而,总的来说,我总是喜欢了解我在做什么,所以如果你得到一个你不熟悉的命令/语法的答案 - 只是要求更广泛的解释。我敢肯定,首先提供帮助的人不会介意分享他的进一步知识。

祝你好运,你对 Linux 做出了正确的选择——比竞争对手更好!:-)