#!/bin/bash # Script automat de fix pentru problema EXTENDED_ACCOUNTS # Găsește TOATE fișierele ircd.conf și le fixează echo "╔═══════════════════════════════════════════════════╗" echo "║ FIX AUTOMAT EXTENDED_ACCOUNTS TRUE → FALSE ║" echo "╚═══════════════════════════════════════════════════╝" echo "" FIXED=0 FOUND=0 # Găsește toate fișierele ircd.conf echo "[1/4] Căutare fișiere ircd.conf..." CONFIGS=$(find /home -name "ircd.conf" 2>/dev/null) if [ -z "$CONFIGS" ]; then echo "❌ EROARE: Nu am găsit niciun fișier ircd.conf în /home" echo "" echo "Caută manual cu:" echo " find / -name ircd.conf 2>/dev/null" exit 1 fi echo "✅ Găsite fișiere:" echo "$CONFIGS" echo "" # Verifică și fixează fiecare fișier echo "[2/4] Verificare și fix fișiere..." for conf in $CONFIGS; do FOUND=$((FOUND + 1)) echo "" echo "=== Procesare: $conf ===" # Verifică dacă există EXTENDED_ACCOUNTS = TRUE if grep -q '"EXTENDED_ACCOUNTS" = "TRUE"' "$conf" 2>/dev/null; then echo "⚠️ Găsit: EXTENDED_ACCOUNTS = TRUE" # Backup cp "$conf" "${conf}.backup.$(date +%Y%m%d_%H%M%S)" echo "📦 Backup creat: ${conf}.backup.$(date +%Y%m%d_%H%M%S)" # Fix sed -i 's/"EXTENDED_ACCOUNTS" = "TRUE"/"EXTENDED_ACCOUNTS" = "FALSE"/' "$conf" # Verifică fix if grep -q '"EXTENDED_ACCOUNTS" = "FALSE"' "$conf" 2>/dev/null; then echo "✅ FIXED: EXTENDED_ACCOUNTS = FALSE" FIXED=$((FIXED + 1)) else echo "❌ EROARE: Fix eșuat pentru $conf" fi elif grep -q '"EXTENDED_ACCOUNTS" = "FALSE"' "$conf" 2>/dev/null; then echo "✅ OK: EXTENDED_ACCOUNTS = FALSE (deja corect)" else echo "⚠️ WARNING: EXTENDED_ACCOUNTS nu găsit în $conf" echo " (Poate fi normal dacă e config vechi)" fi done echo "" echo "[3/4] Verificare proces ircd..." IRCD_PID=$(pgrep -f "ircd.*ircd.conf" | head -1) if [ -z "$IRCD_PID" ]; then echo "⚠️ WARNING: Nu rulează niciun proces ircd" echo " Pornește manual cu:" echo " /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf" else echo "✅ Proces ircd găsit: PID $IRCD_PID" IRCD_CMD=$(ps -p $IRCD_PID -o args= 2>/dev/null) echo " Comandă: $IRCD_CMD" # Extrage calea config din comandă CONFIG_USED=$(echo "$IRCD_CMD" | grep -oP '(?<=-f )[^ ]+' | head -1) if [ -n "$CONFIG_USED" ]; then echo " Config folosit: $CONFIG_USED" # Verifică dacă config-ul folosit e unul din cele fixate if echo "$CONFIGS" | grep -q "$CONFIG_USED"; then echo " ✅ Config-ul folosit e în lista celor fixate" else echo " ⚠️ WARNING: Config-ul folosit NU e în lista celor fixate!" echo " Verifică manual: $CONFIG_USED" fi fi fi echo "" echo "[4/4] Rezumat și acțiuni următoare..." echo "" echo "═══════════════════════════════════════════════════" echo "REZUMAT:" echo " Fișiere găsite: $FOUND" echo " Fișiere fixate: $FIXED" echo "═══════════════════════════════════════════════════" echo "" if [ $FIXED -gt 0 ]; then echo "✅ FIX APLICAT! Acum RESTART IRCd:" echo "" echo " killall ircd" echo " sleep 3" echo " /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf" echo "" echo "Sau copiază și rulează:" echo "" echo "killall ircd && sleep 3 && /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf" echo "" else echo "⚠️ Niciun fișier nu a fost modificat." echo "" echo "Posibile cauze:" echo " 1. EXTENDED_ACCOUNTS e deja FALSE (deja corect)" echo " 2. Lipsește din config (adaugă manual)" echo " 3. Config e în alt loc (verifică cu: find / -name ircd.conf)" echo "" fi echo "═══════════════════════════════════════════════════" echo "Pentru verificare finală după restart:" echo " /stats f | grep EXTENDED" echo "" echo "Ar trebui să apară:" echo " F EXTENDED_ACCOUNTS FALSE" echo "═══════════════════════════════════════════════════"