偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

終極防護:讓你的 Linux 系統(tǒng)對 "rm -rf /*" 免疫!

系統(tǒng) 系統(tǒng)運維
作為一名運維工程師,你最害怕的命令是什么?沒錯,就是那個傳說中的rm -rf /*!今天我要教你幾招防護大法,讓你的系統(tǒng)對這類"刪庫跑路"操作徹底免疫!

作為一名運維工程師,你最害怕的命令是什么?沒錯,就是那個傳說中的rm -rf /*!今天我要教你幾招防護大法,讓你的系統(tǒng)對這類"刪庫跑路"操作徹底免疫!

認識"核彈級"命令:rm -rf /*

這個命令堪稱Linux界的"末日武器":

  • rm:刪除文件
  • -r:遞歸刪除(連目錄也不放過)
  • -f:強制執(zhí)行(不問你是否確定)
  • /*:從根目錄開始(全盤清除)

執(zhí)行后果:系統(tǒng)文件、配置文件、數(shù)據(jù)庫、日志...全部灰飛煙滅!你的職業(yè)生涯可能也會跟著一起消失...

# 千萬不要嘗試!這里只是展示命令結(jié)構(gòu)
rm -rf /*

三級防護體系

(1) 第一層防護:alias防護盾

# 在~/.bashrc中添加
alias rm='rm -i'  # 每次刪除都要求確認

效果:即使輸入rm -rf /*,系統(tǒng)也會對每個文件詢問確認,給你足夠的時間按下Ctrl+C!

(2) 第二層防護:函數(shù)防護墻

# 在~/.bashrc中添加智能防護函數(shù)
function rm() {
    # 危險模式檢測
    if [[ $* =~ "-rf /" || $* =~ "-rf /" ]]; then
        echo -e "\033[1;31m?? 警報!檢測到核彈級刪除操作!\033[0m"
        echo -e "\033[1;33m?? 你確定要毀掉自己的職業(yè)生涯嗎?\033[0m"
        echo -e "\033[1;36m?? 建議:\033[0m"
        echo "1. 先喝杯咖啡冷靜一下"
        echo "2. 檢查命令是否正確"
        echo "3. 考慮使用trash-cli代替rm"
        return 1
    fi
    /bin/rm -i "$@"
}

效果:檢測到危險操作時直接阻止,并給出人性化提示!

(3) 第三層防護:物理刪除限制

# 使用chattr給關(guān)鍵目錄上鎖
sudo chattr +i /bin /sbin /usr /etc

效果:即使超級用戶也無法直接刪除系統(tǒng)關(guān)鍵目錄!

進階防護方案

(1) 方案一:使用safe-rm替代

# 安裝safe-rm
sudo apt install safe-rm  # Debian/Ubuntu
sudo yum install safe-rm  # CentOS/RHEL

# 配置保護目錄
echo "/" >> /etc/safe-rm.conf

(2) 方案二:帶回收站功能的rm替代腳本

該腳本擁有以下基本功能:

  • 攔截危險操作(如rm -rf /)
  • 將刪除的文件移動到回收站(~/.trash)
  • 自動清理7天前的回收站文件
  • 保留原始rm的基本功能
# 在~/.bashrc中添加以下內(nèi)容

# 設(shè)置回收站目錄
TRASH_DIR="${HOME}/.trash"
mkdir -p "${TRASH_DIR}"

# 智能刪除函數(shù)
function rm() {
    # 危險操作檢測
    if [[ $* =~ "-rf /" || $* =~ "-rf /" ]]; then
        echo -e "\033[1;31m?? 警報!檢測到核彈級刪除操作!\033[0m"
        echo -e "\033[1;33m?? 你確定要毀掉自己的職業(yè)生涯嗎?\033[0m"
        echo -e "\033[1;36m?? 建議:\033[0m"
        echo "1. 先喝杯咖啡冷靜一下"
        echo "2. 檢查命令是否正確"
        echo "3. 考慮使用trash-cli代替rm"
        return 1
    fi

    # 普通刪除操作 - 移到回收站
    local timestamp=$(date +%Y%m%d%H%M%S)
    local trash_dest="${TRASH_DIR}/${timestamp}"

    mkdir -p "${trash_dest}"

    # 處理每個參數(shù)
    for arg in "$@"; do
        # 跳過選項參數(shù)
        if [[ "${arg}" == -* ]]; then
            continue
        fi

        # 檢查文件/目錄是否存在
        if [ -e "${arg}" ]; then
            # 獲取絕對路徑
            local item_path=$(realpath "${arg}")

            # 防止把回收站自己移入回收站
            if [[ "${item_path}" != "${TRASH_DIR}"* ]]; then
                # 移動文件到帶時間戳的回收站目錄
                mv "${item_path}" "${trash_dest}/"
                echo "已移動 '${item_path}' 到回收站: ${trash_dest}/"
            fi
        fi
    done


}

# 查看回收站內(nèi)容
function trash-list() {
    echo -e "\033[1;36m??? 回收站內(nèi)容:\033[0m"
    tree -aC "${TRASH_DIR}"
}

# 清空回收站
function trash-empty() {
    echo -e "\033[1;31m?? 即將清空回收站...\033[0m"
    read -p "確認要永久刪除所有回收站內(nèi)容嗎?(y/N) " confirm
    if [[ "${confirm}" =~ ^[Yy]$ ]]; then
        /bin/rm -rf "${TRASH_DIR}"/*
        echo -e "\033[1;32m回收站已清空\033[0m"
    else
        echo -e "\033[1;33m操作已取消\033[0m"
    fi
}

# 恢復(fù)回收站文件
function trash-restore() {
    if [ -z "$1" ]; then
        echo "用法: trash-restore <時間戳>/<文件名>"
        echo "示例: trash-restore 20230801120000/important_file.txt"
        return 1
    fi

    local source_path="${TRASH_DIR}/$1"
    local dest_path="./$(basename "$1")"

    if [ -e "${source_path}" ]; then
        mv -i "${source_path}" "${dest_path}"
        echo -e "\033[1;32m已恢復(fù): ${source_path} -> ${dest_path}\033[0m"
    else
        echo -e "\033[1;31m錯誤: 未找到 ${source_path}\033[0m"
        return 1
    fi
}

使用示例:

# 安全刪除文件
root@node2:~# rm important.txt
已移動 '/root/important.txt' 到回收站: /root/.trash/20250729073654/
# 查看回收站
root@node2:~# trash-list
?? 回收站內(nèi)容:
/root/.trash
|-- 20250729065134
|   `-- 1.txt
`-- 20250729073654
    `-- important.txt

3 directories, 2 files
# 恢復(fù)文件
root@node2:~# trash-restore 20250729073654/important.txt
已恢復(fù): /root/.trash/20250729073654/important.txt -> ./important.txt

# 清空回收站
root@node2:~# trash-empty 
? 即將清空回收站...
確認要永久刪除所有回收站內(nèi)容嗎?(y/N) y
回收站已清空
root@node2:~# trash-list  
?? 回收站內(nèi)容:
/root/.trash

0 directories, 0 files
責任編輯:趙寧寧 來源: 攻城獅成長日記
相關(guān)推薦

2020-08-31 08:43:34

rm -rf下載文件

2009-09-28 11:24:02

2021-09-23 16:43:48

Linux黑話解釋

2022-03-03 15:00:56

生物免疫模型網(wǎng)絡(luò)安全

2009-12-21 14:58:13

2025-03-05 11:10:55

2020-07-07 13:00:00

Linux壓力測試

2013-12-04 17:01:07

Linux命令Uptime命令

2020-08-26 19:24:51

iOS 14App Attest防護

2023-11-23 16:46:55

LinuxAWK運維

2025-09-17 03:00:00

2017-09-01 10:34:38

2024-01-18 10:40:35

2012-07-09 11:20:59

2009-12-25 16:11:40

Linux操作系統(tǒng)

2011-03-25 13:38:58

2009-12-16 14:59:21

紅帽Linux認證

2015-07-30 11:13:24

LinuxShell

2009-12-21 11:00:26

2011-03-25 13:35:36

點贊
收藏

51CTO技術(shù)棧公眾號