298 lines
6.7 KiB
Markdown
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!**
|
|
|