0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解 在Linux 服务器绝对不能用的命令

Linux爱好者 2018-01-08 17:02 次阅读

蜘蛛侠有这样的一句信条,“权力越大,责任越大。” 对于 Linux 系统管理员们来说,这也是一种应当采用的明智态度。

不,真的,真心感谢 DevOps 的沟通协作和云编排技术,让一个 Linux 管理员不仅能掌控一台服务器,甚者能控制成千上万台服务器实例。只需要一个愚蠢的举动,你甚至可以毁掉一个价值数十亿美元的企业,就像没有打补丁的 Apache Struts一样。

如果不能跑在安全补丁之前,这将会带来一个远超过系统管理员工资水平的战略性业务问题。这里就有一些足以搞死 Linux 服务器的简单方式掌握在系统管理员手中。很容易想象到,只有新手才会犯这些错误,但是,我们需要了解的更多。

下列是一些著名的命令,任何拥有 root 权限的用户都能借助它们对服务器造成严重破坏。

警告:千万不要在生产环境运行这些命令,它们会危害你的系统。不要在家里尝试,也不要在办公室里测试。

那么,继续!

rm -rf /

想要干脆利落的毁掉一个 Linux 系统吗?你无法超越这个被誉为“史上最糟糕”的经典,它能删除一切,我说的是,能删除所有存在你系统里的内容!

和大多数Linux 命令一样,rm这个核心命令使用起来非常方便。即便是最顽固的文件它也能帮你删除。结合起后面两个参数理解rm指令时,你很容易陷入大麻烦:-r,强制递归删除所有子目录,-f,无需确认,强制删除所有只读文件。如果你在根目录运行这条指令,将清除整个驱动器上的所有数据。

如果你真这么干了,想想该怎么和老板解释吧!

现在,也许你会想,“我永远不会犯这么愚蠢的错误。”朋友,骄兵必败。吸取一下经验教训吧,这个警示故事来自于一个系统管理员在 Reddit 上的帖子:

我在 IT 界工作了很多年,但是今天,作为 Linux 系统 root 用户,我在错误的系统路径运行了rm- f

长话短说,那天,我需要复制一大堆目录从一个目录到另一个目录,和你一样,我敲了几个cp -R去复制我需要的内容。

以我的聪明劲,我持续敲着上箭头,在命令记录中寻找可以复制使用的类似命令名,但是它们混杂在一大堆其他命令当中。

不管怎么说,我一边在 Skype、Slack 和 WhatsApp 的网页上打字,一边又和 Sage 通电话,注意力严重分散,我在敲入rm -R ./videodir/* ../companyvideodirwith651vidsin/这样一条命令时神游物外。

然后,当文件化为乌有时其中也包括了公司视频。幸运的是,在疯狂敲击control -C后,在删除太多文件之前,系统管理员中止了这条命令。但这是对你的警告:任何人都可能犯这样的错误。

事实上,绝大部分现代操作系统都会在你犯这些错误之前,用一段醒目的文字警告你。然而,如果你在连续敲击键盘时忙碌或是分心,你将会把你的系统键入一个黑洞。(LCTT 译注:幸运的是,可能在根目录下删除整个文件系统的人太多了额,后来rm默认禁止删除根目录,除非——你手动加上–no-preserve-root参数!)

这里有一些更为隐蔽的方式调用rm -rf。思考一下下面的代码:

charesp[]__attribute__((section(“.text”))) = “xebx3ex5bx31xc0x50x54x5ax83xecx64x68”

“xffxffxffxffx68xdfxd0xdfxd9x68x8dx99”

“xdfx81x68x8dx92xdfxd2x54x5exf7x16xf7”

“x56x04xf7x56x08xf7x56x0cx83xc4x74x56”

“x8dx73x08x56x53x54x59xb0x0bxcdx80x31”

“xc0x40xebxf9xe8xbdxffxffxffx2fx62x69”

“x6ex2fx73x68x00x2dx63x00”

“cp -p /bin/sh /tmp/.beyond;chmod4755

/tmp/.beyond;”;

这是什么?这是 16 进制的rm -rf写法。在你不明确这段代码之前,请千万不要运行这条命令!

fork 炸弹

既然我们讨论的都是些奇怪的代码,不妨思考一下这一行:

:(){ :|: & };:

对你来说,这可能看起来有些神秘,但是我看来,它就是那个臭名昭著的Bash fork 炸弹。它会反复启动新的 Bash shell,直到你的系统资源消耗殆尽、系统崩溃。

不应该在最新的 Linux 系统上做这些操作。注意,我说的是不应该。我没有说不能。正确设置用户权限,Linux 系统能够阻止这些破坏性行为。通常用户仅限于分配使用机器可用内存。但是如果作为 root 用户的你运行了这行命令(或者它的变体Bash fork 炸弹变体),你仍然可以反复虐待服务器,直到系统重启了。

垃圾数据重写硬盘

有时候你想彻底清除硬盘的数据,你应该使用Darik’s Boot and Nuke (DBAN)工具去完成这项工作。

但是如果仅仅想让你的存储器乱套,那很简单:

任意命令 > /dev/hda

我说的“任意命令”,是指有输出的任意命令,比如:

ls -la > /dev/hda

……将目录列表通过管道送到你的主存储设备。给我 root 权限和足够的时间,就能覆盖整个硬盘设备。这是让你开始盲目恐慌的一天的好办法,或者,可以把它变成职业禁入方式。

擦除硬盘!

另一个一直受欢迎的擦除硬盘的方式是执行:

dd if=/dev/zero of=/dev/hda

你可以用这条命令写入数据到你的硬盘设备。dd命令可以从特殊文件中获取无尽个0字符,并且将它全部写入你的设备。

可能现在听起来/dev/zero是个愚蠢的想法,但是它真的管用。比如说,你可以使用它来用零清除未使用的分区空间。它能使分区的镜像压缩到更小,以便于数据传输或是存档使用。

在另一方面,它和dd if=/dev/random of=/dev/hda相近,除了能毁掉你的一天之外,不是一个好事。如果你运行了这个指令(千万不要),你的存储器会被随机数据覆盖。作为一个隐藏你要接管办公室咖啡机的秘密计划的半吊子方法,倒是不错,但是你可以使用 DBAN 工具去更好的完成你的任务。

/dev/null 的损失

也许因为数据珍贵,我们对备份的数据没有什么信心,确实很多“永远不要这样做!”的命令都会导致硬盘或其它存储仓库的数据被擦除。一个鲜明的实例:另一个毁灭你的存储设备的方式,运行mv / /dev/null或者>mv /dev/null。

在前一种情况下,你作为 root 用户,把整个磁盘数据都送进这个如饥似渴的/dev/null。在后者,你仅仅把家目录喂给这个空空如也的仓库。任何一种情况下,除非还原备份,你再也不会再看见你的数据了。

见鬼,难道会计真的不需要最新的应收账款文件了吗?

格式化错了驱动器

有时候你需要使用这一条命令格式化驱动器:

mkfs.ext3 /dev/hda

……它会用 ext3 文件系统格式化主硬盘驱动器。别,请等一下!你正在格式化你的主驱动器!难道你不需要用它?

当你要格式化驱动器的时候,请务必加倍确认你正在格式化的分区是真的需要格式化的那块而不是你正在使用的那块,无论它们是 SSD、闪存盘还是其他氧化铁磁盘。

内核崩溃

一些 Linux 命令不能让你的机器长时间停机。然而,一些命令却可以导致内核崩溃。这些错误通常是由硬件问题引起的,但你也可以自己搞崩。

当你遭遇内核崩溃,重新启动系统你才可以恢复工作。在一些情况下,这只是有点小烦;在另一些情况下,这是一个大问题,比如说,高负荷运作下的生产环境。下面有一个案例:

dd if=/dev/random of=/dev/port

echo1 > /proc/sys/kernel/panic

cat /dev/port

cat /dev/zero > /dev/mem

这些都会导致内核崩溃。

绝不要运行你并不了解它功能的命令,它们都在提醒我…

提防未知脚本

年轻或是懒惰的系统管理员喜欢复制别人的脚本。何必重新重复造轮子?所以,他们找到了一个很酷的脚本,承诺会自动检查所有备份。他们就这样运行它:

这会下载该脚本,并将它送到 shell 上运行。很明确,别大惊小怪,对吧?不对。这个脚本也许已经被恶意软件感染。当然,一般来说 Linux 比大多数操作系统都要安全,但是如果你以 root 用户运行未知代码,什么都可能会发生。这种危害不仅在恶意软件上,脚本作者的愚蠢本身同样有害。你甚至可能会因为一个未调试的代码吃上一堑——由于你没有花时间去读它。

你认为你不会干那样的事?告诉我,所有那些你在 Docker 里面运行的容器镜像在干什么?你知道它们到底在运行着什么吗?我见过太多的没有验证容器里面装着什么就运行它们的系统管理员。请不要和他们一样。

结束

这些故事背后的道理很简单。在你的 Linux 系统里,你有巨大的控制权。你几乎可以让你的服务器做任何事。但是在你使用你的权限的同时,请务必做认真的确认。如果你没有,你毁灭的不只是你的服务器,而是你的工作甚至是你的公司。像蜘蛛侠一样,负责任的使用你的权限。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11219

    浏览量

    208872
  • cat
    cat
    +关注

    关注

    1

    文章

    75

    浏览量

    21261

原文标题:绝不要用的 Linux 命令 !

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    linux服务器和windows服务器

    ,这在满足个性化需求和增强服务器安全 性上具有优势。 Linux服务器还具有出色的性能和稳定性。相比之下,Windows服务器性能和稳定性
    发表于 02-22 15:46

    手机也能玩Linux服务器——NOKIA手机高端应用

      核心摘要:对于从事网络和系统管理工作的人士来说,如果你在出差的路上,或者有事不能上网而如果服务器有什么问题的话,怎么能够通过SecureCRT和PUTTY远程连接到Linux服务器
    发表于 11-28 14:05

    linux下怎么搭建服务器

    e、点击云服务器进入服务器管理界面:f、此时可以看到你的服务器的公网ip,比如我的(118.89.32.60),之后的所有服务器访问都是通过公网ip进行访问的,为了测试本地计算机是否能
    发表于 07-08 07:02

    mobaxterm不能连接linux服务器

    看第一期视频看到008课的时候,看见韦老师打开mobaxterm的SSH登录linux服务器上传文件编译,于是我也打开mobaxterm,结果连接不上,如图一。然后我试了试电脑和虚拟机之间的互
    发表于 10-17 05:45

    Linux服务器性能测试及分析命令大全

    Linux服务器性能测试及分析命令大全
    发表于 09-05 15:42 12次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>服务器</b>性能测试及分析<b class='flag-5'>命令</b>大全

    服务器有什么作用能用来做什么

    之前有小伙伴问我云服务器能用来做什么,买了服务器之后怎么服务器上搭建程序,如何充分的利用起来;那么我就此问题写了这篇文章
    的头像 发表于 02-24 11:14 1.9w次阅读

    详解Linux服务器的用户活动和命令

    如果您在管理Linux服务器,最好准备好使用用于检查用户活动的多个命令——用户何时登录及登录频率、属于哪些用户组、耗用多少磁盘空间、运行什么命令、占用多少磁盘空间、是否
    的头像 发表于 07-03 15:30 5926次阅读

    Linux查看服务器状态的命令大全

    Linux查看服务器状态的命令大全
    发表于 07-09 09:34 21次下载
    <b class='flag-5'>Linux</b>查看<b class='flag-5'>服务器</b>状态的<b class='flag-5'>命令</b>大全

    linux的scp命令怎么用_linux的grep命令用法

    linux中,scp命令用于Linux之间复制文件和目录,即在一台Linux服务器中将本地的文
    发表于 09-04 15:36 4401次阅读
    <b class='flag-5'>linux</b>的scp<b class='flag-5'>命令</b>怎么用_<b class='flag-5'>linux</b>的grep<b class='flag-5'>命令</b>用法

    如何在linux服务器中打开端口

    有时我们可能需要在Linux服务器中打开端口或在Linux服务器的防火墙中启用端口来运行特定的应用程序。本文中,小编将带大家分析一下如何在
    的头像 发表于 10-17 16:22 1.2w次阅读

    Redis服务器宕机时如何避免数据丢失呢?

    没错,这确实是 Redis 的一个普遍使用场景,但是,这里也有一个绝对不能忽略的问题:「一旦服务器宕机,内存中的数据将全部丢失」 。
    的头像 发表于 02-12 16:21 725次阅读

    如何使用Checkmk监控Linux服务器

    `Checkmk` 是用于监控 Linux 服务器的最常用和用户友好的应用程序之一。它可以检查与您的 Linux 服务器连接的服务器状态、负
    的头像 发表于 02-17 10:46 1167次阅读
    如何使用Checkmk监控<b class='flag-5'>Linux</b><b class='flag-5'>服务器</b>?

    恒讯科技分享:如何使用linux删除目录命令

    学习如何使用Linux命令行对于所有Linux用户和系统管理员来说都是必不可少的。创建文件、导航到文件夹或移动文件等简单的维护任务都可以通过它完成。由于Linux是用于虚拟
    的头像 发表于 06-20 17:27 1717次阅读

    linux查看服务器配置

    Linux操作系统中,了解服务器配置对于系统管理员和网络工程师而言至关重要。通过查看服务器配置,您可以
    的头像 发表于 11-17 09:41 1074次阅读

    linux服务器开启端口命令

    Linux服务器开启端口可以使用多种命令和方法,本文将详细介绍五种常用的方法,并且提供一些实际使用案例来帮助读者更好地理解和使用这些命令。 方法一:使用firewall-cmd
    的头像 发表于 11-17 10:29 9958次阅读