linux多用户下恶搞其他用户

说明

就是在linux多用户下恶搞其他用户,使用write命令。

用法脚本

#!/bin/bash
# prank.sh - 终端整蛊脚本(纯娱乐向)

TARGET_USER="${1:?用法: $0 <用户名> [tty]}"
TARGET_TTY="${2:-}"

# 如果没指定tty,自动找第一个
if [ -z "$TARGET_TTY" ]; then
    TARGET_TTY=$(who | grep "^$TARGET_USER " | awk '{print $2}' | head -1)
fi

if [ -z "$TARGET_TTY" ]; then
    echo "找不到用户 $TARGET_USER 的终端,用法: $0 <用户名> <tty>"
    echo "提示: 用 who 命令查看在线用户和tty"
    exit 1
fi

TARGET="$TARGET_USER/$TARGET_TTY"

echo "目标: $TARGET"

# ===== 第一阶段:假进度条 =====
(
    # 先狂刷空行,把 write 的消息头冲出屏幕
    for i in $(seq 1 500); do
        echo ""
    done

    echo -e "\033[1;31m"
    echo "████████████████████████████████████████"
    echo "   GET SYSTEM SECURITY BREACH         "
    echo "████████████████████████████████████████"
    echo -e "\033[0m"
    echo ""
    echo "Initializing payload..."

        # 假进度条,反复刷屏
    for round in $(seq 1 5); do
        for i in $(seq 1 100); do
            printf "\r\033[1;32m["
            for j in $(seq 1 $((i/2))); do printf "█"; done
            for j in $(seq $((i/2)) 50); do printf "░"; done
            printf "] %d%% NOW: rm -rf /*  %d\033[0m" "$i" "$round"
            sleep 0.02
        done
    done

    for i in $(seq 1 300); do
        printf "\r["
        for j in $(seq 1 $i); do printf "█"; done
        for j in $(seq $i 30); do printf "░"; done
        printf "] %d%%" $((i*3))
        sleep 0.01
    done
    echo ""
    echo ""
    echo -e "\033[1;32m>>> PAYLOAD DELIVERED SUCCESSFULLY <<<\033[0m"
) | write "$TARGET_USER" "$TARGET_TTY"

echo "发送完成!"

可以再完善下功能,比如说使用w命令查看其他用户在那个终端上。

mesg n
mesg y
write  username
who
w 命令

可以使用mesg命令关闭这类的骚扰。

posted @ 2026-10-15 10:01  杨旭0324  阅读(5)  评论(0)    收藏  举报