10 KiB
FIX URGENT: "No Operator block for your host"
🔴 PROBLEMA
Când faci /OPER username password, primești:
*** No Operator block for your host
Chiar dacă ai host = "*@*"; în blocul Operator!
🎯 CAUZA REALĂ
snomask NU merge în blocul Operator!
Am pus greșit:
Operator {
name = "Raducu";
snomask = "+s +o +c +k +f +b +n"; ← GREȘIT! Nu aparține aici!
};
snomask TREBUIE pus în blocul Class pentru "Opers"!
✅ SOLUȚIA CORECTĂ
1. ADAUGĂ snomask în Class Opers:
Class {
name = "Opers";
pingfreq = 1 minutes 30 seconds;
sendq = 160000;
maxlinks = 20;
snomask = "+s +o +c +k +f +b +n"; ← AICI e locul corect!
local = no;
freeform = yes;
mode_lchan = yes;
deop_lchan = yes;
walk_lchan = yes;
show_invis = yes;
see_chan = yes;
list_chan = yes;
usermode = "+W";
remove = yes;
};
2. ELIMINĂ snomask din Operator:
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
swhois = "is an UnderChat Staff Member";
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
# NU pune snomask aici!
};
🔧 Pași de Rezolvare
1. Editează ircd.conf:
nano /home/ircd/ircd/lib/ircd.conf
2. Găsește blocul Class pentru Opers:
Caută după:
Class {
name = "Opers";
3. Adaugă snomask în Class Opers:
Class {
name = "Opers";
pingfreq = 1 minutes 30 seconds;
sendq = 160000;
maxlinks = 20;
snomask = "+s +o +c +k +f +b +n"; ← ADAUGĂ AICI!
local = no;
freeform = yes;
mode_lchan = yes;
deop_lchan = yes;
walk_lchan = yes;
show_invis = yes;
see_chan = yes;
list_chan = yes;
usermode = "+W";
remove = yes;
};
4. Găsește blocul Operator:
Caută după:
Operator {
name = "Raducu";
5. Elimină snomask din Operator (dacă există):
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
swhois = "is an UnderChat Staff Member";
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
# ȘTERGE linia: snomask = "+s +o +c +k +f +b +n";
};
6. Salvează fișierul:
- Ctrl+O → Write Out
- Enter → Confirmă
- Ctrl+X → Exit
7. Testează configurația:
/home/ircd/ircd/bin/ircd -c -f /home/ircd/ircd/lib/ircd.conf
Ar trebui să vezi:
configuration file /home/ircd/ircd/lib/ircd.conf is okay
8. Restart IRCd:
pkill ircd
/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf
9. Test în IRC:
/OPER Raducu parola99
# Ar trebui să vezi:
*** You are now an IRC Operator
-irc.underchat.org- *** Notice -- Raducu (~user@host) is now a global operator (O)
✅ SUCCES!
📋 CONFIGURAȚIE COMPLETĂ CORECTĂ
Class pentru Opers (cu snomask):
Class {
name = "Opers";
pingfreq = 1 minutes 30 seconds;
sendq = 160000;
maxlinks = 20;
snomask = "+s +o +c +k +f +b +n";
local = no;
freeform = yes;
mode_lchan = yes;
deop_lchan = yes;
walk_lchan = yes;
show_invis = yes;
see_chan = yes;
list_chan = yes;
usermode = "+W";
remove = yes;
};
Operator block (fără snomask):
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
swhois = "is an UnderChat Staff Member";
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
};
💡 DE CE?
Din doc/example.conf:
# <snomask> applies only to classes used for Operator blocks and is
# used to specify the server notice mask an oper gets when he/she uses
# /oper.
TRADUS:
snomaskse aplică blocurilor Class folosite pentru operatori- NU se pune în blocul
Operatordirect - Se pune în
Class { name = "Opers"; }
🎯 REZUMAT
PROBLEMA:
snomaskpus în bloculOperator← GREȘIT!- Sintaxă invalidă
- IRCd nu recunoaște blocul Operator
- Rezultat: "No Operator block for your host"
SOLUȚIA:
- ✅ MUTĂ
snomaskînClass { name = "Opers"; } - ✅ ELIMINĂ
snomaskdinOperator { } - ✅ snomask merge în Class, NU în Operator!
CONFIGURAȚIE CORECTĂ:
Class Opers → snomask = "+s +o +c +k +f +b +n"; ✅
Operator → fără snomask ✅
Fix aplicat: snomask mutat în Class, eliminat din Operator
Test: /OPER Raducu parola99 ar trebui să funcționeze! ✅
Data: 15 Februarie 2026
CONFIGURAȚIA TA (INVALIDĂ):
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
# swhois = "The One That Was..."; ← PROBLEMA!
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
# snomask = yes; ← Linie veche comentată
snomask = "+s +o +c +k +f +b +n";
};
DE CE E INVALID:
- Linia
# swhois = ...comentată la început confuzează parserul! - Parserul crede că blocul Operator NU este complet
- Rezultat: IRCd nu găsește blocul pentru host-ul tău
✅ SOLUȚIA 1: ELIMINĂ LINIILE COMENTATE
CONFIGURAȚIE CORECTĂ (VALIDĂ):
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
swhois = "The One That Was, The One That Is, The One That Will Be";
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
snomask = "+s +o +c +k +f +b +n";
};
CE AM FĂCUT:
- ✅ Decomentat
swhois(eliminat#de la început) - ✅ Eliminat linia veche
# snomask = yes; - ✅ Păstrat doar configurația activă
✅ SOLUȚIA 2: MINIMAL (fără swhois)
Dacă nu vrei mesaj swhois, elimină complet linia:
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
snomask = "+s +o +c +k +f +b +n";
};
NU LĂSA LINII COMENTATE ÎN BLOCUL OPERATOR!
🔧 Pași de Rezolvare
1. Editează ircd.conf:
nano /home/ircd/ircd/lib/ircd.conf
2. Găsește blocul Operator:
Caută după:
Operator {
name = "Raducu";
3. Înlocuiește cu versiunea corectă:
VERSIUNEA COMPLETĂ (cu swhois):
Operator {
# Nickname-ul operatorului
name = "Raducu";
# Password-ul operatorului (hash MD5)
password = "$PLAIN$parola99";
# Host-uri permise pentru operator
host = "*@*";
# Clasă
class = "Opers";
# Permisiuni și notificări
admin = yes;
swhois = "is an UnderChat Staff Member";
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
snomask = "+s +o +c +k +f +b +n";
};
SAU VERSIUNEA MINIMALĂ (fără swhois):
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
snomask = "+s +o +c +k +f +b +n";
};
4. Salvează fișierul:
- Ctrl+O (Write Out)
- Enter (confirmare)
- Ctrl+X (Exit)
5. Testează configurația:
/home/ircd/ircd/bin/ircd -c -f /home/ircd/ircd/lib/ircd.conf
Ar trebui să vezi:
configuration file /home/ircd/ircd/lib/ircd.conf is okay
Dacă vezi erori:
/home/ircd/ircd/lib/ircd.conf:XXX: parse error
→ Linia XXX are sintaxă greșită!
6. Restart IRCd:
pkill ircd
/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf
SAU cu nohup:
pkill ircd
nohup /home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf &
7. Test în IRC:
/OPER Raducu parola99
# Ar trebui să vezi:
*** You are now an IRC Operator
-irc.underchat.org- *** Notice -- Raducu (~user@host) is now a global operator (O)
✅ SUCCES!
🚨 GREȘELI COMUNE
1. Linii comentate în bloc:
# ❌ GREȘIT:
Operator {
name = "Raducu";
# swhois = "..."; ← NU FACE AȘA!
admin = yes;
};
# ✅ CORECT (elimină linia):
Operator {
name = "Raducu";
admin = yes;
};
# ✅ SAU decomentează:
Operator {
name = "Raducu";
swhois = "is a Staff Member";
admin = yes;
};
2. Lipsește punct și virgulă:
# ❌ GREȘIT:
Operator {
name = "Raducu" ← Lipsește ;
password = "...";
};
# ✅ CORECT:
Operator {
name = "Raducu"; ← Are ;
password = "...";
};
3. Ghilimele incorecte:
# ❌ GREȘIT:
name = 'Raducu'; ← Folosește '
# ✅ CORECT:
name = "Raducu"; ← Folosește "
📊 VERIFICARE FINALĂ
# Verifică sintaxa:
/home/ircd/ircd/bin/ircd -c -f /home/ircd/ircd/lib/ircd.conf
# Caută blocul Operator:
grep -A 15 "Operator {" /home/ircd/ircd/lib/ircd.conf
# Ar trebui să vezi ceva ca:
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
snomask = "+s +o +c +k +f +b +n";
};
# Verifică că NU sunt linii comentate în interiorul blocului:
grep -A 15 "Operator {" /home/ircd/ircd/lib/ircd.conf | grep "^#"
# Ar trebui să fie gol (fără output)!
🎯 REZUMAT
PROBLEMA:
- Linii comentate (
# swhois,# snomask) în blocul Operator - Parserul nu recunoaște blocul ca valid
- Rezultat: "No Operator block for your host"
SOLUȚIA:
- ✅ Elimină TOATE liniile comentate din blocul Operator
- ✅ Sau decomentează (elimină
#) - ✅ NU lăsa linii cu
#în interiorul blocului!
CONFIGURAȚIE CORECTĂ FINALĂ:
Operator {
name = "Raducu";
password = "$PLAIN$parola99";
host = "*@*";
class = "Opers";
admin = yes;
swhois = "is an UnderChat Staff Member";
hide_oper = no;
hide_channels = yes;
whois_notice = yes;
snomask = "+s +o +c +k +f +b +n";
};
FĂRĂ LINII COMENTATE! ✅
Fix aplicat: Elimină liniile comentate din Operator block
Test: /OPER Raducu parola99 ar trebui să funcționeze! ✅
Data: 15 Februarie 2026