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命令关闭这类的骚扰。
本文来自博客园,作者:杨旭0324,转载请注明原文链接:https://www.cnblogs.com/allalonewithyou/p/23310606,个人邮箱:yaonie4444@foxmail.com

浙公网安备 33010602011771号