防止运行致命命令

防止运行致命命令

最近读了一篇文章“你永远不应该在 Linux 上运行的 8 个致命命令“,我计划以某种方式阻止/防止/更改某些命令。我并不担心其他人会在我的 PC 上运行破坏性命令。我担心的是我可能是事故背后的罪魁祸首。

我担心下面列出的命令。

wget http://example.com/something -O – | sh –
  • 我在从指南中复制和粘贴命令时运行了此行。如果我注意到sh -,我只会在检查存档内容后运行它。

rm -rf /
  • 我经常不小心按到“Enter”键……

我想防止将来再犯这些错误。是否有命令/配置文件可以确保我不会犯这些错误?我不想即使有 sudo/root 权限也能运行上述命令。如果解决方案可以逆转就好了。

可以帮助我进一步了解 Ubuntu 的资源(不包括常见的 Ubuntu Wiki/帮助/等链接)是不胜感激

数据丢失不是我主要担心的问题。我想让终端对我来说更安全一点(如果你愿意的话可以称之为“新手防护”)。这对我很有帮助,因为我还有很多东西要学。我又开始上学了,我不能花太多时间解决问题/错误(尽管这很有趣)。

编辑

是否可以要求特定命令要求确认?如果我想设置特定命令以要求特殊密码,可以做到吗?

答案1

正如我在评论中所说,了解你输入的内容是最好的安全保障

这是一个例子,它已被用于相关问题

`base64 --decode <<< "cHJpbnRmICclcycgICdIZWxsbyBXb3JsZCcK"`

(为了完整起见,您可以使用-dflag 而不是--decode。有人试图编辑我的答案说-d是无效的,但它非常有效,指定在手册中

您知道这是什么意思吗?这是一个伪装的printf '%s' 'Hello World'。无害的,对吧?如果是这样呢rm -rf /?当某些东西被伪装时,黑名单不会拯救您。您能看到恶意用户在合法论坛上发布的这个命令吗?因为确实会发生这种情况。而且它不一定是那个命令 - 如果您是新用户并且不知道自己在做什么,恶意用户可能会告诉您删除 python或其他一些关键软件包,这样可以解决导致您访问其博客或论坛的任何问题。

但是当然,您可以通过全局函数将某些内容列入黑名单(因为函数优先于命令或别名),如下/etc/bash.bashrc所示:

function rm{

if [ "$1" = "-rf" ] && [ "$2" = "/" ]
then
    echo "This command is bad juju"
else
    rm "$@"
fi


}

这只是一个例子。而且非常多余——Ubunturm -rf /默认需要确认。

这也不是万无一失的。如果我作为攻击者使用不同的 shell 怎么办?你的bashrc魔法在 shell 中不起作用dash,这也是 Ubuntu 默认自带的

另外,您是否要编写函数来将每个恶意命令列入黑名单?


补充说明:复制看似“无害”的命令也可能很危险。请参阅我该如何保护自己免受此类剪贴板滥用?以及 Stephane Chazelas 对这个问题的回答。

相关内容