一個讓rm -rf 都頭大的命令

大家好,我是高勝寒,一個在教培行業不忘初心的人

作爲運維,我們都有一個刪根情節,不爽了隨時刪根跑路,但從未實施過。

運維經常用rm -rf / 來調侃自己,但事實上現在的安全機制下,rm -rf / 並不起作用,你看:

[root@zmedu-17 ~]# rm -rf /
rm: 在"/" 進行遞歸操作十分危險
rm: 使用 --no-preserve-root 選項跳過安全模式

我們需要加上後面的 --no-preserve-root 跳過安全模式才能刪除/
不過我們想刪除/上的部分不在使用中的文件還是可以的比如 /*

[root@zmedu-17 ~]# rm -rf /*
rm: 無法刪除"/boot/efi": 設備或資源忙
rm: 無法刪除"/dev/hugepages": 設備或資源忙
rm: 無法刪除"/dev/mqueue": 設備或資源忙
rm: 無法刪除"/dev/pts/2": 不允許的操作
rm: 無法刪除"/dev/pts/1": 不允許的操作
rm: 無法刪除"/dev/pts/0": 不允許的操作
rm: 無法刪除"/dev/pts/ptmx": 不允許的操作
rm: 無法刪除"/dev/shm": 設備或資源忙

但如果是普通文件可就沒有這麼好運了,普通文件被刪除了,在ext4文件系統上我們可以藉助工具基於Inode號,把文件找回來,但是裏面的空文件卻無法在恢復。

雖然我們很小心,但依舊有刪除文件的可能,這就像男人之於女人,帶着作案工具,就總有做案的可能,除非變成公公。

今天我就給大家介紹一個命令,他的出現相當於給重要的文件在你備份的同時又加了一把鎖,確保文件不會被誤刪除或者修改。

祭出命令: chattr: 鎖定文件,鎖定後,不能刪除也不能修改

參數:

+a 只能給文件添加內容,但是刪除不了

-d: 不能刪除

+i : 加鎖,文件不能刪除,不能修改,也無法移動

查看加鎖: lsattr

解鎖 : -i 在這裏的減號表示接觸

我們來對/etc/passwd來使用

[root@zmedu-17 ~]# lsattr /etc/passwd #查看原始權限
---------------- /etc/passwd
[root@zmedu-17 ~]# chattr +i /etc/passwd   #加鎖
[root@zmedu-17 ~]# lsattr /etc/passwd    #查看加鎖後權限
----i----------- /etc/passwd
[root@zmedu-17 ~]# rm -rf /etc/passwd #刪除測試
rm: 無法刪除"/etc/passwd": 不允許的操作
[root@zmedu-17 ~]# mv /etc/passwd /root/  #移動測試
mv: 無法將"/etc/passwd" 移動至"/root/passwd": 不允許的操作
[root@zmedu-17 ~]# echo aaa >> /etc/passwd  #修改文件內容測試
-bash: /etc/passwd: 權限不夠
 

是不是成功的阻止了你誤刪除文件的操作。 當然你說按照下面的操作來做,然後說自己是誤操作刪除了文件,我也信:

[root@zmedu-17 ~]# lsattr /etc/passwd  #查看是否加鎖
----i----------- /etc/passwd     
[root@zmedu-17 ~]# chattr  -i /etc/passwd  #去掉加鎖權限
[root@zmedu-17 ~]# lsattr /etc/passwd   #查看是否已經去掉
---------------- /etc/passwd
[root@zmedu-17 ~]# rm -rf /etc/passwd  #特意誤刪除一下

只要想刪掉,總會有辦法的。還有沒有方法更安全一點呢? 當然

我們可以隱藏掉chattr

[root@zmedu-17 ~]# which chattr   #查看命令目錄
/usr/bin/chattr
[root@zmedu-17 ~]# mkdir /opt/yc  #創建yc目錄
[root@zmedu-17 ~]# mv /usr/bin/chattr /opt/yc/ #把命令拷貝
[root@zmedu-17 ~]# cd /opt/yc/     #進入yc目錄
[root@zmedu-17 yc]# mv chattr h   #使用別名把命令隱藏
[root@zmedu-17 ~]# /opt/yc/h +i /etc/passwd  #h就是chattr命令
[root@zmedu-17 ~]# lsattr /etc/passwd
----i----------- /etc/passwd

想要恢復的話,拷貝回去就可以了

[root@zmedu-17 yc]# mv h /usr/bin/chattr
[root@zmedu-17 yc]# chattr -i /etc/passwd

結語

如果您看完本文後有所收穫, 還希望您隨手點個收藏 、或者分享轉發。您的支持是我堅持分享的最大動力!有問題也可以留言跟我交流。

配上視頻更直觀
點擊直達:

B站視頻-讓rm -rf 都頭疼的命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章