震惊,当我运行了这条Linux命令后,服务器竟然... (Linux中的删除命令)

2019/04/10 10:10
阅读数 7

震惊,当我运行了这条Linux命令后,服务器竟然...

0X00 写在前面

大家都听说过删库命令rm -rf /*,但是谁又真正实践过呢?但作为一个程序员,不看看这条命令执行后会发生什么,怎么能甘心呢。今天就带大家看看,服务器运行了这条命令是什么样子。 (注意请勿随意模仿!如果真的想试试,可以自己搭一个虚拟机,自行尝试。后附:Linux的删除命令详解)

0x01 删库之前😘

服务器是前段时间白嫖阿里云的小🐥。首先用VNC远程连接,

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231222675-1113661045.png" alt="image-20200306212344419" style="zoom:50%;" />

在这之前,我们发现机子没有任何的问题。

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231248760-2005645809.png" alt="image-20200306212529536" style="zoom:80%;" />

0x02 删库 rm -rf /* 😱

他来了,他来了,

rm -rf /*

![https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231330430-175616721.png)

回车之后会这个样子,你品,你细品。

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231404871-1571722698.png" alt="image-20200306213113127" style="zoom:50%;" />

之后,嗯?出现了点小差错

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231432895-1287837065.png" alt="image-20200306213341993" style="zoom:50%;" />

劳资,玩浏览器这么多年第一次遇到这样的情况。

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231500439-192380344.png" alt="image-20200306213516946" style="zoom:50%;" />

第一个,显示内存不足的是用VNC远程连接的网页。我可以理解。那第二个,服务器管理页面为啥也崩啊。

害,可能是我的电脑太垃圾了。

好在刷新了一下好了。

现在我们重新通过VNC远程连接。

<img src="https://img2020.cnblogs.com/blog/1535268/202003/1535268-20200306231532028-1751840125.png" alt="image-20200306213944296" style="zoom:80%;" />

现在是这样的一个情况。

0x03 删库☞后🙃

可以最后报出来这样一条:

[ 661.704409] systemd-journald[410]:Failed to creat new system journal:eNO such file or directory

这句话是指无法创建新的系统日志。

那么现在的系统是否可用呢,我们来测试一下。

Ctrl+L清屏快捷键依然可以用。

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231607353-462900935.png" alt="image-20200306214849962" style="zoom:50%;" />

现在看起来跟没删差不多。😁

那么我们去运行些其他的命令试试。

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231649053-919693988.png" alt="image-20200306215109773" style="zoom:67%;" />

出错了,我们显示根目录下的文件竟然没有显示。

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231719063-1060968871.png" alt="image-20200306215552768" style="zoom: 67%;" />

help可以

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231745859-1213553802.png" alt="image-20200306215903662" style="zoom:67%;" />

最后,我们尝试,除了最基本的cdpwd,以及echo。其他的都不能运行(包括关机和重启命令)。

只能从服务器管理端强制关机了

至此删库演示结束,我也该跑路了。

0x04 后话

​ 回复服务器的话,我们可以强制关机。

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231816178-123195312.png" alt="image-20200306210726976" style="zoom:50%;" />

停止的时间有点长啊,不过好在停止了。

<img src="https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231846755-942205177.png" alt="image-20200306211217295" style="zoom:50%;" />

停止了,之后我们就可以重新部署系统里。不过,之前的东西都不复存在。

总之,**我们一定不要随便尝试这条命令!**切记,特别是别人的电脑上。这也给我们提一个响钟,一般不要使用root用户登录。使用rm 命令时一定要记得备份!

附录

Linux里的删除操作

rm命令

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。但对于链接文件,只是删除整个链接文件,而原有文件保持不变。

食用方式:

rm [选项](参数)

其中选项可以时:

-d..................删除一个空目录;
-f:.................强制删除文件或目录;
-i:.................删除已有文件或目录之前先询问用户;
-r或-R:.............递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:...不对根目录进行递归操作;
--no-preserve-root:.不将“/”看做根目录。
--preserve-root......不能对根目录执行递归操作。
-v:.................显示指令的详细执行过程。

参数是指文件或文件夹:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

实例操作:

.
├── 1  //文件
├── kongmulu //空目录
└── test
    ├── 1.txt
    ├── 2.txt
    └── test
        ├── 1.txt
        └── test  //目录

删除一个文件

我们删除当前目录下的文件1

rm 1
root@kali:/tmp/rmtest# rm 1
root@kali:/tmp/rmtest# ls
singlemulu  test

这时已经删除成功了,但是却没有交互式的提示。

但如果加上可选项-r,情况是这个样子

rm -i 1
root@kali:/tmp/rmtest# rm -i 1
rm: remove regular empty file '1'? n  
root@kali:/tmp/rmtest# ls
1  singlemulu  test
root@kali:/tmp/rmtest# rm -i 1
rm: remove regular empty file '1'? y
root@kali:/tmp/rmtest# ls
singlemulu  test
root@kali:/tmp/rmtest# 

在删除之前会向你询问是否要删除。

删除一个目录
空目录
rm -d kongmulu
root@kali:/tmp/rmtest# rm -d kongmulu/
root@kali:/tmp/rmtest# rm -d test/
rm: cannot remove 'test/': Directory not empty
root@kali:/tmp/rmtest# 

这个命令可以删除空目录,但是不可以山粗非空目录。

递归删除目录
rm -r test
root@kali:/tmp/rmtest# rm -dr test/
root@kali:/tmp/rmtest# ls

这样会删除目录下的多有文件和子目录。风险很大。

注意:不同的选项可以组合在一起。

比如:

rm -rf 参数

强制删除文件和目录。

显然这样的操作十分危险。

所以我们进行强制递归删除的时候,一定要想起添上

--preserve-root

--no-preserve-root

比如:

rm -rf --preserve-root /

rm -rf --no-preserve-root /

虽然可能系统也可能会损坏。但是比不加强。

备份备份 备份

切记要备份!备份才是王道!我们总会有疏忽的时候!所以重要数据一定要备份!

原文出处:https://www.cnblogs.com/delongzhang/p/12431650.html

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部