震驚,當我運行了這條Linux命令后,服務器竟然...
0X00 寫在前面
大家都聽說過刪庫命令rm -rf /*
,但是誰又真正實踐過呢?但作為一個程序員,不看看這條命令執行后會發生什么,怎么能甘心呢。今天就帶大家看看,服務器運行了這條命令是什么樣子。
(注意請勿隨意模仿!如果真的想試試,可以自己搭一個虛擬機,自行嘗試。后附:Linux的刪除命令詳解)
0x01 刪庫之前😘
服務器是前段時間白嫖阿里雲的小🐥。首先用VNC遠程連接,

在這之前,我們發現機子沒有任何的問題。

0x02 刪庫 rm -rf /* 😱
他來了,他來了,
rm -rf /*

之后,嗯?出現了點小差錯

勞資,玩瀏覽器這么多年第一次遇到這樣的情況。

第一個,顯示內存不足的是用VNC遠程連接的網頁。我可以理解。那第二個,服務器管理頁面為啥也崩啊。
害,可能是我的電腦太垃圾了。
好在刷新了一下好了。
現在我們重新通過VNC遠程連接。

現在是這樣的一個情況。
0x03 刪庫☞后🙃
可以最后報出來這樣一條:
[ 661.704409] systemd-journald[410]:Failed to creat new system journal:eNO such file or directory
這句話是指無法創建新的系統日志。
那么現在的系統是否可用呢,我們來測試一下。
Ctrl+L
清屏快捷鍵依然可以用。

現在看起來跟沒刪差不多。😁
那么我們去運行些其他的命令試試。

出錯了,我們顯示根目錄下的文件竟然沒有顯示。

help
可以

最后,我們嘗試,除了最基本的cd
、pwd
,以及echo。其他的都不能運行(包括關機和重啟命令)。
只能從服務器管理端強制關機了
至此刪庫演示結束,我也該跑路了。
0x04 后話
回復服務器的話,我們可以強制關機。

停止的時間有點長啊,不過好在停止了。

停止了,之后我們就可以重新部署系統里。不過,之前的東西都不復存在。
總之,我們一定不要隨便嘗試這條命令!切記,特別是別人的電腦上。這也給我們提一個響鍾,一般不要使用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 /
雖然可能系統也可能會損壞。但是比不加強。
備份備份 備份
切記要備份!備份才是王道!我們總會有疏忽的時候!所以重要數據一定要備份!