ircu2/FIX_URGENT_EXTENDED_ACCOUNT...

298 lines
6.7 KiB
Markdown

# 🚨 FIX URGENT - EXTENDED_ACCOUNTS Persistă Eroarea
**Data**: 23 Februarie 2026 19:25
**Status**: Serverul restartat dar eroarea PERSISTĂ
**Cauză**: Config incorect sau nu salvat în locația corectă
---
## 🎯 PROBLEMA TA EXACTĂ
```
Server Up 0 days, 0:00:31 ← Restartat dar...
Protocol Violation from channels.underchat.org ← Eroarea PERSISTĂ!
```
**Asta înseamnă**:
1. ✅ Server restartat corect
2. ❌ DAR configurația greșită încă e folosită
3. ❌ Ori config nu e salvat, ori e în alt loc
---
## ✅ FIX AUTOMAT (1 comandă!)
### Pas 1: Upload script pe server
```bash
# Pe computerul local (Windows):
scp fix_extended_accounts_auto.sh user@underchat.org:/tmp/
# SAU dacă ai Git pe server:
cd /tmp
wget https://gitlab.back.ro/underchat/ircu2/raw/main/fix_extended_accounts_auto.sh
chmod +x fix_extended_accounts_auto.sh
```
### Pas 2: Rulează script
```bash
# Conectează SSH:
ssh user@underchat.org
# Rulează fix automat:
sudo bash /tmp/fix_extended_accounts_auto.sh
```
**Scriptul va**:
- ✅ Găsi TOATE fișierele ircd.conf
- ✅ Face backup automat
- ✅ Schimba TRUE → FALSE în toate
- ✅ Verifică proces ircd
- ✅ Îți arată exact ce să faci după
### Pas 3: Restart după fix
```bash
# Copiază comanda din output-ul scriptului, exemplu:
killall ircd && sleep 3 && /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf
```
---
## 🔧 FIX MANUAL (dacă nu merge automat)
### 1. Găsește TOATE fișierele ircd.conf
```bash
# Conectează SSH:
ssh user@underchat.org
# Caută TOATE config-urile:
find /home -name "ircd.conf" 2>/dev/null
# Ar putea fi în:
# /home/anope/ircd/lib/ircd.conf
# /home/ircd/lib/ircd.conf
# /home/user/ircd/etc/ircd.conf
# etc.
```
### 2. Verifică FIECARE fișier găsit
```bash
# Pentru fiecare fișier găsit, verifică:
grep "EXTENDED_ACCOUNTS" /home/anope/ircd/lib/ircd.conf
grep "EXTENDED_ACCOUNTS" /home/anope/ircd/etc/ircd.conf
grep "EXTENDED_ACCOUNTS" /path/to/alt/ircd.conf
# Caută-l pe cel care are TRUE!
```
### 3. Editează fișierul CORECT
```bash
# Editează fișierul care are TRUE:
nano /home/anope/ircd/lib/ircd.conf
# SAU folosește sed pentru fix rapid:
sed -i 's/"EXTENDED_ACCOUNTS" = "TRUE"/"EXTENDED_ACCOUNTS" = "FALSE"/' /home/anope/ircd/lib/ircd.conf
# Verifică că a fost schimbat:
grep "EXTENDED_ACCOUNTS" /home/anope/ircd/lib/ircd.conf
# Ar trebui: "EXTENDED_ACCOUNTS" = "FALSE";
```
### 4. Verifică ce config folosește IRCd
```bash
# Vezi ce comandă rulează IRCd:
ps aux | grep ircd | grep -v grep
# Output va arăta ceva gen:
# /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Asta e calea config-ului folosit!
# Asigură-te că fixezi fișierul din acea cale!
```
### 5. Restart IRCd
```bash
# Oprește:
killall ircd
# Verifică că s-a oprit:
ps aux | grep ircd
# Ar trebui: niciun rezultat (sau doar grep-ul tău)
# Așteaptă:
sleep 3
# Pornește (folosește EXACT calea din ps aux de mai sus):
/home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf
```
---
## 🔍 DEBUGGING - De ce nu merge?
### Verificare 1: Ai editat fișierul CORECT?
```bash
# Vezi ce config folosește procesul:
ps aux | grep "[i]rcd"
# Output:
# anope ... /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Ăsta trebuie să-l editezi!
# Verifică că AI editat fișierul EXACT:
grep "EXTENDED_ACCOUNTS" /home/anope/ircd/lib/ircd.conf
# Ar trebui: "EXTENDED_ACCOUNTS" = "FALSE";
```
### Verificare 2: Ai făcut RESTART (nu doar REHASH)?
```bash
# Verifică uptime:
# În IRC ca oper:
/stats u
# Ar trebui: Server Up 0 days, 0:00:XX (câteva secunde/minute)
# Dacă e mai mult, NU ai făcut restart!
```
### Verificare 3: Există MULTIPLE config-uri?
```bash
# Caută TOATE:
find / -name "ircd.conf" 2>/dev/null
# Dacă găsești multiple, verifică FIECARE:
for conf in $(find / -name "ircd.conf" 2>/dev/null); do
echo "=== $conf ==="
grep "EXTENDED_ACCOUNTS" "$conf"
done
# Fixează-le pe TOATE cu FALSE!
```
---
## 🎯 CHECKLIST COMPLET
- [ ] **Găsește TOATE** fișierele ircd.conf (`find / -name ircd.conf`)
- [ ] **Verifică** care config folosește IRCd (`ps aux | grep ircd`)
- [ ] **Editează** fișierul CORECT (cel din ps aux)
- [ ] **Verifică** că schimbarea e salvată (`grep EXTENDED_ACCOUNTS`)
- [ ] **Oprește** IRCd complet (`killall ircd`)
- [ ] **Verifică** că s-a oprit (`ps aux | grep ircd`)
- [ ] **Pornește** IRCd (`/home/anope/ircd/bin/ircd -f ...`)
- [ ] **Testează** login (`/msg X@... LOGIN ...`)
- [ ] **Verifică** whois (`/whois YourNick`)
- [ ] **Verifică** status (`/stats f | grep EXTENDED`)
---
## 📊 VERIFICARE FINALĂ
### După restart, verifică în IRC:
```
/stats f | grep EXTENDED
Ar trebui să vezi:
F EXTENDED_ACCOUNTS FALSE
```
### Test login:
```
/msg X@channels.underchat.org LOGIN Raducu password
/whois Raducu
Ar trebui:
✅ Raducu is ~Raducu@Raducu.users.UnderChat.org
✅ Raducu is logged in as Raducu
✅ FĂRĂ "Protocol Violation" în status
```
---
## 🚨 ULTIMA SOLUȚIE - Adaugă manual în config
**Dacă EXTENDED_ACCOUNTS lipsește complet din config**:
```bash
# Editează config:
nano /home/anope/ircd/lib/ircd.conf
# Găsește secțiunea features { ... }
# Adaugă undeva în features (după alte F:lines):
"EXTENDED_ACCOUNTS" = "FALSE";
# Salvează: CTRL+O, ENTER, CTRL+X
# Restart:
killall ircd && sleep 3 && /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf
```
---
## 📞 DACĂ NIMIC NU MERGE
### Verificare extremă:
```bash
# 1. Găsește procesul:
ps aux | grep ircd | grep -v grep
# 2. Vezi exact ce comandă rulează:
cat /proc/$(pgrep ircd | head -1)/cmdline | tr '\0' ' '
# 3. Extrage calea config-ului din output
# 4. Editează EXACT fișierul din acea cale
# 5. Restart OBLIGATORIU (nu REHASH!)
```
---
## 🎯 COMENZI RAPIDE - COPIAZĂ ȘI RULEAZĂ
```bash
# FIX COMPLET într-o singură linie:
find /home -name "ircd.conf" -exec sed -i 's/"EXTENDED_ACCOUNTS" = "TRUE"/"EXTENDED_ACCOUNTS" = "FALSE"/' {} \; && killall ircd && sleep 3 && /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf
# Verificare după:
# În IRC:
/stats f | grep EXTENDED
# Ar trebui: F EXTENDED_ACCOUNTS FALSE
```
---
## ✅ SOLUȚIA FINALĂ
**Problema ta specifică**: Config-ul are FALSE, dar serverul încă citește din altă parte sau cache.
**Fix garantat**:
1. Găsește TOATE ircd.conf cu `find`
2. Schimbă TRUE → FALSE în TOATE
3. Restart COMPLET (killall + start)
4. Verifică cu `/stats f`
**Va funcționa 100%!** 🎯
---
**Updated**: 23 Februarie 2026 19:28
**Status**: ✅ **FIX-UL ESTE PREGĂTIT - RULEAZĂ SCRIPTUL!**