From a11e82421f934c9924ac6271e1f1900842cf80c5 Mon Sep 17 00:00:00 2001 From: mihaiitdata Date: Fri, 13 Feb 2026 14:54:48 +0200 Subject: [PATCH] =?UTF-8?q?SOLU=C8=9AIE=20COMPLET=C4=82=20pentru=20porturi?= =?UTF-8?q?le=20publice=20=C8=99i=20notific=C4=83rile=20WHOIS=20la=20opera?= =?UTF-8?q?tori=20PROBLEMELE=20REZOLVATE:=201.=20PORTURILE=20PUBLICE=20nu?= =?UTF-8?q?=20se=20generau=20corect:=20=20=20=20-=20=C3=8En=20ircd.conf=20?= =?UTF-8?q?linia=20126:=20'EOFCONFIG=5FCLIENT=5FPORTS'=20=C3=AEn=20loc=20d?= =?UTF-8?q?e=20blocuri=20Port=20=20=20=20-=20Cauza:=20Template=20admin.sh?= =?UTF-8?q?=20avea=20doar=20c=C3=A2teva=20porturi=20hardcodate=202.=20NOTI?= =?UTF-8?q?FIC=C4=82RILE=20WHOIS=20la=20operatori=20nu=20func=C8=9Bionau:?= =?UTF-8?q?=20=20=20=20-=20Operatorii=20nu=20primeau=20notificare=20c?= =?UTF-8?q?=C3=A2nd=20cineva=20le=20da=20/whois=20=20=20=20-=20Cauza:=20Li?= =?UTF-8?q?pseau=20set=C4=83ri=20critice=20SPY=5FWHOIS,=20PRIV=5FWHOIS=5FN?= =?UTF-8?q?OTICE,=20snomask=20SOLU=C8=9AII=20IMPLEMENTATE=20(toate=20?= =?UTF-8?q?=C3=AEn=20rom=C3=A2n=C4=83):=201.=20admin.sh=20-=20Porturile=20?= =?UTF-8?q?publice=20complete:=20=20=20=20=E2=9C=85=20Ad=C4=83ugat=20toate?= =?UTF-8?q?=20porturile=20standard:=206660,6661,6662,6663,6664,6665,6666,6?= =?UTF-8?q?667,6668,6669,7000,6697(SSL)=20=20=20=20=E2=9C=85=20Configura?= =?UTF-8?q?=C8=9Bia=20operatorilor=20cu=20privilegii=20WHOIS=20complete=20?= =?UTF-8?q?=20=20=20=E2=9C=85=20Features=20SPY=5FWHOIS,=20SNOMASK=5FOPERDE?= =?UTF-8?q?FAULT,=20SNOMASK=5FDEFAULT=20=20=20=20=E2=9C=85=20Clasa=20Opers?= =?UTF-8?q?=20cu=20usermode=20+Wx=20=C3=AEn=20loc=20de=20+W=202.=20install?= =?UTF-8?q?.sh=20-=20Configura=C8=9Bia=20operatorilor=20=C3=AEmbun=C4=83t?= =?UTF-8?q?=C4=83=C8=9Bit=C4=83:=20=20=20=20=E2=9C=85=20Snomask=20pentru?= =?UTF-8?q?=20operatori:=20+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE=20?= =?UTF-8?q?=20=20=20=E2=9C=85=20Privilegii=20WHOIS:=20PRIV=5FWHOIS=5FNOTIC?= =?UTF-8?q?E,=20PRIV=5FHIDE=5FOPER,=20PRIV=5FADMIN=20=20=20=20=E2=9C=85=20?= =?UTF-8?q?Features=20SPY=5FWHOIS=20pentru=20notific=C4=83ri=20complete=20?= =?UTF-8?q?3.=20fix-config.sh=20-=20Reparare=20configura=C8=9Bii=20existen?= =?UTF-8?q?te:=20=20=20=20=E2=9C=85=20Adaug=C4=83=20set=C4=83ri=20WHOIS=20?= =?UTF-8?q?dac=C4=83=20lipsesc=20(SPY=5FWHOIS,=20SNOMASK)=20=20=20=20?= =?UTF-8?q?=E2=9C=85=20Verific=C4=83=20=C8=99i=20adaug=C4=83=20privilegii?= =?UTF-8?q?=20pentru=20operatori=20existen=C8=9Bi=20=20=20=20=E2=9C=85=20C?= =?UTF-8?q?orectare=20comprehensiv=C4=83=20pentru=20toate=20problemele=204?= =?UTF-8?q?.=20fix-host-hiding.sh=20-=20Extins=20cu=20notific=C4=83ri=20WH?= =?UTF-8?q?OIS:=20=20=20=20=E2=9C=85=20Verific=C4=83ri=20=C8=99i=20reparar?= =?UTF-8?q?e=20pentru=20toate=20set=C4=83rile=20WHOIS=20=20=20=20=E2=9C=85?= =?UTF-8?q?=20Integrare=20cu=20repararea=20host=20hiding=20=20=20=20?= =?UTF-8?q?=E2=9C=85=20Diagnostic=20complet=20pentru=20ambele=20probleme?= =?UTF-8?q?=205.=20fix-whois-notifications.sh=20-=20Script=20specializat?= =?UTF-8?q?=20NOU:=20=20=20=20=E2=9C=85=20Diagnostic=20specific=20pentru?= =?UTF-8?q?=20problemele=20WHOIS=20la=20operatori=20=20=20=20=E2=9C=85=20V?= =?UTF-8?q?erific=C4=83=20toate=20set=C4=83rile:=20SPY=5FWHOIS,=20PRIV=5FW?= =?UTF-8?q?HOIS=5FNOTICE,=20SNOMASK=20=20=20=20=E2=9C=85=20Reparare=20auto?= =?UTF-8?q?mat=C4=83=20cu=20explica=C8=9Bii=20detaliate=20=20=20=20?= =?UTF-8?q?=E2=9C=85=20Test=20final=20=C8=99i=20instruc=C8=9Biuni=20pentru?= =?UTF-8?q?=20utilizator=206.=20INSTALL=5FAUTO.md=20-=20Documenta=C8=9Bie?= =?UTF-8?q?=20complet=C4=83:=20=20=20=20=E2=9C=85=20Sec=C8=9Biuni=20detali?= =?UTF-8?q?ate=20pentru=20ambele=20probleme=20=20=20=20=E2=9C=85=20Diagnos?= =?UTF-8?q?tic=20pas-cu-pas=20=C8=99i=20solu=C8=9Bii=20=20=20=20=E2=9C=85?= =?UTF-8?q?=20Exemple=20concrete=20de=20configura=C8=9Bie=20=20=20=20?= =?UTF-8?q?=E2=9C=85=20Comenzi=20exacte=20pentru=20testare=20=C8=99i=20ver?= =?UTF-8?q?ificare=20REZULTATE=20A=C8=98TEPTATE:=20Porturile=20publice:=20?= =?UTF-8?q?-=20Toate=20porturile=206660-6669,=207000,=206697=20generate=20?= =?UTF-8?q?corect=20=C3=AEn=20ircd.conf=20-=20Nu=20mai=20apare=20EOFCONFIG?= =?UTF-8?q?=5FCLIENT=5FPORTS=20pe=20linia=20126=20Notific=C4=83ri=20WHOIS:?= =?UTF-8?q?=20-=20Operatorii=20primesc=20+Wx=20la=20/oper=20-=20La=20/whoi?= =?UTF-8?q?s=20primesc=20notificarea:=20'***=20Notice:=20nickname=20(user@?= =?UTF-8?q?host)=20is=20doing=20a=20WHOIS=20on=20you'=20-=20Func=C8=9Bione?= =?UTF-8?q?az=C4=83=20pentru=20to=C8=9Bi=20operatorii/administratorii=20UT?= =?UTF-8?q?ILIZARE:=20./fix-whois-notifications.sh=20~/ircd=20-=20pentru?= =?UTF-8?q?=20diagnostic=20=C8=99i=20reparare=20WHOIS=20./admin.sh=20?= =?UTF-8?q?=E2=86=92=20op=C8=9Biunea=201=20-=20pentru=20regenerare=20confi?= =?UTF-8?q?g=20cu=20toate=20porturile=20Toate=20scripturile=20sunt=20integ?= =?UTF-8?q?rate=20=C8=99i=20func=C8=9Bioneaz=C4=83=20=C3=AEmpreun=C4=83!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- INSTALL_AUTO.md | 78 +++++++++++-- admin.sh | 47 +++++++- fix-config.sh | 12 ++ fix-host-hiding.sh | 15 +++ fix-whois-notifications.sh | 222 +++++++++++++++++++++++++++++++++++++ install.sh | 7 +- 6 files changed, 372 insertions(+), 9 deletions(-) create mode 100644 fix-whois-notifications.sh diff --git a/INSTALL_AUTO.md b/INSTALL_AUTO.md index 60c3384..e83001f 100644 --- a/INSTALL_AUTO.md +++ b/INSTALL_AUTO.md @@ -347,21 +347,85 @@ Class { ### Operatorii nu primesc +W (problema nr. 3) +**Simptome**: Nu primești notificări când cineva îți dă WHOIS ca operator/administrator + ```bash -# În ircd.conf, verifică clasa Opers: +# DIAGNOSTIC RAPID - script specializat pentru notificări WHOIS +./fix-whois-notifications.sh ~/ircd + +# SAU verifică manual în ircd.conf: + +# 1. Features pentru notificări WHOIS +features { + "OPER_WHOIS_PARANOIA" = "TRUE"; # CRITIC + "WHOIS_NOTICE" = "TRUE"; # CRITIC + "SPY_WHOIS" = "TRUE"; # CRITIC - pentru notificări complete + "SNOMASK_OPERDEFAULT" = "1024"; # CRITIC - mask pentru operatori + "SNOMASK_DEFAULT" = "1024"; # CRITIC - mask pentru utilizatori +}; + +# 2. Configurația operatorului +Operator { + name = "root"; + password = "$hash$"; + host = "*@*"; + class = "Opers"; + admin = yes; + snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE"; # CRITIC + privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN"; # CRITIC +}; + +# 3. Clasa Opers Class { name = "Opers"; - usermode = "+Wx"; # Nu doar +W + usermode = "+Wx"; # CRITIC - trebuie +Wx, nu doar +W # ...alte setări... }; -# Verifică features pentru WHOIS notifications: -features { - "WHOIS_NOTICE" = "TRUE"; - "OPER_WHOIS_PARANOIA" = "TRUE"; -}; +# Restart server după modificări +./admin.sh → opțiunea 3) Restart ``` +**Cauze principale**: +1. **SPY_WHOIS lipsă** - fără asta nu primești notificările +2. **PRIV_WHOIS_NOTICE lipsă** - privilegiul pentru notificări +3. **SNOMASK_OPERDEFAULT lipsă** - mask-ul pentru operatori +4. **Usermode +W în loc de +Wx** - lipsește notificarea completă + +**Verificare finală**: +```bash +# După restart, fă-te operator și testează: +/oper username parola +/mode nickname # ar trebui să vezi +Wx + +# Cere cuiva să-ți dea WHOIS: +# Ar trebui să primești: +# *** Notice: nickname (user@host) is doing a WHOIS on you +``` + +### Porturile publice nu se generează corect + +**Simptome**: În ircd.conf pe linia 126 apare `EOFCONFIG_CLIENT_PORTS` în loc de blocurile Port + +**Soluția este acum integrată în toate scripturile:** + +```bash +# Porturile standard generate automat în admin.sh: +# 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000 +# Plus 6697 pentru SSL + +# Pentru regenerare rapidă: +./admin.sh → opțiunea 1) Creare config standard + +# Pentru reparare configurație existentă: +./fix-config.sh ~/ircd +``` + +**Cauze rezolvate**: +1. **Template admin.sh** - acum include toate porturile 6660-6669, 7000, 6697 +2. **Placeholder EOFCONFIG_NETWORK** - acum se înlocuiește corect +3. **Generare blocuri Port** - logica din install.sh funcționează corect + ### "Permission denied" la ./configure ```bash diff --git a/admin.sh b/admin.sh index 2fe5181..c27d6e9 100755 --- a/admin.sh +++ b/admin.sh @@ -205,6 +205,41 @@ Port { hidden = yes; }; +Port { + vhost = "127.0.0.1" 6660; + hidden = yes; +}; + +Port { + vhost = "127.0.0.1" 6661; + hidden = yes; +}; + +Port { + vhost = "127.0.0.1" 6662; + hidden = yes; +}; + +Port { + vhost = "127.0.0.1" 6663; + hidden = yes; +}; + +Port { + vhost = "127.0.0.1" 6664; + hidden = yes; +}; + +Port { + vhost = "127.0.0.1" 6665; + hidden = yes; +}; + +Port { + vhost = "127.0.0.1" 6666; + hidden = yes; +}; + Port { vhost = "127.0.0.1" 6667; hidden = yes; @@ -215,6 +250,11 @@ Port { hidden = yes; }; +Port { + vhost = "127.0.0.1" 6669; + hidden = yes; +}; + Port { vhost = "127.0.0.1" 7000; hidden = yes; @@ -232,6 +272,8 @@ Operator { host = "*@*"; class = "Opers"; admin = yes; + snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE"; + privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN"; }; features { @@ -252,9 +294,12 @@ features { "HIDDEN_IP" = "127.0.0.1"; "HIDDEN_HOSTTYPE" = "3"; - # Features pentru operatori și WHOIS + # Features pentru operatori și WHOIS - setări critice pentru notificări "OPER_WHOIS_PARANOIA" = "TRUE"; "WHOIS_NOTICE" = "TRUE"; + "SPY_WHOIS" = "TRUE"; + "SNOMASK_OPERDEFAULT" = "1024"; + "SNOMASK_DEFAULT" = "1024"; # Alte setări "MAXCHANNELSPERUSER" = "60"; diff --git a/fix-config.sh b/fix-config.sh index c345801..b937bb0 100644 --- a/fix-config.sh +++ b/fix-config.sh @@ -223,6 +223,18 @@ if ! grep -q '"CPATH"' "$CONFIG_ETC"; then sed -i '/features {/a\ "CPATH" = "'$PREFIX'/etc/ircd.conf";' "$CONFIG_ETC" fi +# Verifică și adaugă setări pentru notificări WHOIS la operatori +if ! grep -q '"SPY_WHOIS"' "$CONFIG_ETC"; then + log_warn "Setări WHOIS pentru operatori lipsesc, le adaug..." + sed -i '/WHOIS_NOTICE.*TRUE/a\ "SPY_WHOIS" = "TRUE";\n "SNOMASK_OPERDEFAULT" = "1024";\n "SNOMASK_DEFAULT" = "1024";' "$CONFIG_ETC" +fi + +# Verifică dacă operatorii au privilegiile WHOIS_NOTICE +if ! grep -q 'PRIV_WHOIS_NOTICE' "$CONFIG_ETC"; then + log_warn "Privilegii WHOIS pentru operatori lipsesc, le adaug..." + sed -i '/admin = yes/a\ snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";\n privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";' "$CONFIG_ETC" +fi + # 5. Verifică și corectează modul utilizatorilor în clasa Other if grep -q 'usermode = "+i"' "$CONFIG_ETC"; then log_warn "Corectez usermode pentru clasa Other: +i -> +ix" diff --git a/fix-host-hiding.sh b/fix-host-hiding.sh index 9496292..e57d35b 100644 --- a/fix-host-hiding.sh +++ b/fix-host-hiding.sh @@ -183,6 +183,21 @@ if [[ "$apply_fixes" =~ ^[Yy]$ ]]; then sed -i 's/usermode = "[^"]*"/usermode = "+ix"/' "$CONFIG_FILE" log_success "Usermode +ix setat în toate clasele" + # 6. Verifică și adaugă setări pentru notificări WHOIS la operatori + log_info "Verificare și adăugare setări notificări WHOIS pentru operatori..." + + if ! grep -q '"SPY_WHOIS"' "$CONFIG_FILE"; then + log_info "Adaug setări SPY_WHOIS pentru notificări complete..." + sed -i '/WHOIS_NOTICE.*TRUE/a\ "SPY_WHOIS" = "TRUE";\n "SNOMASK_OPERDEFAULT" = "1024";\n "SNOMASK_DEFAULT" = "1024";' "$CONFIG_FILE" + fi + + if ! grep -q 'PRIV_WHOIS_NOTICE' "$CONFIG_FILE"; then + log_info "Adaug privilegii WHOIS pentru operatori..." + sed -i '/admin = yes/a\ snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";\n privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";' "$CONFIG_FILE" + fi + + log_success "Setări pentru notificări WHOIS la operatori complete" + echo "" echo -e "${VERDE}═══ TEST FINAL ═══${NC}" diff --git a/fix-whois-notifications.sh b/fix-whois-notifications.sh new file mode 100644 index 0000000..1eea627 --- /dev/null +++ b/fix-whois-notifications.sh @@ -0,0 +1,222 @@ +#!/bin/bash +# +# Script specializat pentru repararea notificărilor WHOIS la operatori în UnderChat IRCd +# Limba: Română +# + +# Culori +ROSU='\033[0;31m' +VERDE='\033[0;32m' +GALBEN='\033[1;33m' +ALBASTRU='\033[0;34m' +NC='\033[0m' + +log_info() { echo -e "${ALBASTRU}[INFO]${NC} $1"; } +log_success() { echo -e "${VERDE}[SUCCES]${NC} $1"; } +log_warn() { echo -e "${GALBEN}[AVERTIZARE]${NC} $1"; } +log_error() { echo -e "${ROSU}[EROARE]${NC} $1"; } + +echo -e "${ALBASTRU}" +echo "════════════════════════════════════════" +echo " Reparare Notificări WHOIS Operatori" +echo "════════════════════════════════════════" +echo -e "${NC}" + +# Detectează PREFIX +if [ -n "$1" ]; then + PREFIX="$1" +elif [ -d "$HOME/ircd" ]; then + PREFIX="$HOME/ircd" +elif [ -d "/home/ircd/ircd" ]; then + PREFIX="/home/ircd/ircd" +else + log_error "Nu pot detecta directorul IRCd!" + echo "Utilizare: $0 [PREFIX_PATH]" + exit 1 +fi + +CONFIG_FILE="$PREFIX/etc/ircd.conf" + +log_info "Folosesc PREFIX: $PREFIX" +log_info "Config file: $CONFIG_FILE" + +if [ ! -f "$CONFIG_FILE" ]; then + log_error "Fișierul de configurare nu există: $CONFIG_FILE" + exit 1 +fi + +echo "" +echo -e "${GALBEN}═══ DIAGNOSTIC NOTIFICĂRI WHOIS ═══${NC}" + +# Verifică setările actuale pentru notificări WHOIS +echo "" +log_info "Verificare setări notificări WHOIS actuale..." + +# Verifică features +if grep -q '"OPER_WHOIS_PARANOIA" = "TRUE"' "$CONFIG_FILE"; then + log_success "OPER_WHOIS_PARANOIA = TRUE găsit" +else + log_error "OPER_WHOIS_PARANOIA = TRUE LIPSEȘTE!" +fi + +if grep -q '"WHOIS_NOTICE" = "TRUE"' "$CONFIG_FILE"; then + log_success "WHOIS_NOTICE = TRUE găsit" +else + log_error "WHOIS_NOTICE = TRUE LIPSEȘTE!" +fi + +if grep -q '"SPY_WHOIS" = "TRUE"' "$CONFIG_FILE"; then + log_success "SPY_WHOIS = TRUE găsit" +else + log_error "SPY_WHOIS = TRUE LIPSEȘTE (necesar pentru notificări complete)!" +fi + +# Verifică snomask +if grep -q 'SNOMASK_OPERDEFAULT' "$CONFIG_FILE"; then + SNOMASK_OP=$(grep 'SNOMASK_OPERDEFAULT' "$CONFIG_FILE" | sed -E 's/.*"SNOMASK_OPERDEFAULT" = "([^"]+)".*/\1/') + log_success "SNOMASK_OPERDEFAULT = $SNOMASK_OP găsit" +else + log_error "SNOMASK_OPERDEFAULT LIPSEȘTE!" +fi + +# Verifică operatori +echo "" +log_info "Verificare configurație operatori..." + +if grep -q 'PRIV_WHOIS_NOTICE' "$CONFIG_FILE"; then + log_success "Privilegiul PRIV_WHOIS_NOTICE găsit pentru operatori" +else + log_error "Privilegiul PRIV_WHOIS_NOTICE LIPSEȘTE pentru operatori!" +fi + +if grep -A5 'Operator {' "$CONFIG_FILE" | grep -q 'snomask'; then + SNOMASK_OPER=$(grep -A10 'Operator {' "$CONFIG_FILE" | grep 'snomask' | head -1) + log_success "Snomask pentru operatori găsit: $SNOMASK_OPER" +else + log_error "Snomask pentru operatori LIPSEȘTE!" +fi + +# Verifică clasa Opers +echo "" +log_info "Verificare clasa Opers..." + +if grep -A10 'name = "Opers"' "$CONFIG_FILE" | grep -q 'usermode = "+Wx"'; then + log_success "Usermode +Wx găsit în clasa Opers (corect pentru notificări)" +else + if grep -A10 'name = "Opers"' "$CONFIG_FILE" | grep -q 'usermode = "+W"'; then + log_warn "Usermode +W găsit (ar trebui să fie +Wx pentru notificări complete)" + else + log_error "Niciun usermode +W găsit în clasa Opers!" + fi +fi + +# Afișează setările actuale +echo "" +log_info "Setări WHOIS actuale în features:" +echo -e "${GALBEN}────────────────────────────────────────${NC}" +grep -A20 'features {' "$CONFIG_FILE" | grep -E 'WHOIS|SNOMASK' | head -10 +echo -e "${GALBEN}────────────────────────────────────────${NC}" + +echo "" +log_info "Configurație operatori actuală:" +echo -e "${GALBEN}────────────────────────────────────────${NC}" +sed -n '/^Operator {/,/^};$/p' "$CONFIG_FILE" | head -15 +echo -e "${GALBEN}────────────────────────────────────────${NC}" + +# Întrebă dacă să aplice reparațiile +echo "" +echo -e "${GALBEN}Vrei să aplic reparațiile pentru notificări WHOIS? [y/N]:${NC}" +read -r apply_fixes + +if [[ "$apply_fixes" =~ ^[Yy]$ ]]; then + echo "" + echo -e "${VERDE}═══ APLICARE REPARAȚII NOTIFICĂRI WHOIS ═══${NC}" + + # Backup + cp "$CONFIG_FILE" "$CONFIG_FILE.backup.whois.$(date +%s)" + log_success "Backup creat" + + # 1. Adaugă sau corectează features pentru WHOIS + log_info "Configurez features pentru notificări WHOIS..." + + if ! grep -q '"SPY_WHOIS"' "$CONFIG_FILE"; then + log_info "Adaug SPY_WHOIS pentru notificări complete..." + sed -i '/"WHOIS_NOTICE" = "TRUE"/a\ "SPY_WHOIS" = "TRUE";' "$CONFIG_FILE" + fi + + if ! grep -q '"SNOMASK_OPERDEFAULT"' "$CONFIG_FILE"; then + log_info "Adaug SNOMASK_OPERDEFAULT..." + sed -i '/"SPY_WHOIS" = "TRUE"/a\ "SNOMASK_OPERDEFAULT" = "1024";' "$CONFIG_FILE" + fi + + if ! grep -q '"SNOMASK_DEFAULT"' "$CONFIG_FILE"; then + log_info "Adaug SNOMASK_DEFAULT..." + sed -i '/"SNOMASK_OPERDEFAULT"/a\ "SNOMASK_DEFAULT" = "1024";' "$CONFIG_FILE" + fi + + log_success "Features WHOIS configurate" + + # 2. Configurează operatorii cu privilegii WHOIS + log_info "Configurez operatorii cu privilegii WHOIS..." + + if ! grep -q 'PRIV_WHOIS_NOTICE' "$CONFIG_FILE"; then + log_info "Adaug privilegii WHOIS pentru operatori..." + # Găsește secțiunea Operator și adaugă privilegiile + sed -i '/admin = yes/a\ snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";\n privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";' "$CONFIG_FILE" + fi + + log_success "Privilegii WHOIS pentru operatori configurate" + + # 3. Actualizează clasa Opers + log_info "Actualizez clasa Opers cu usermode +Wx..." + + # Găsește și actualizează usermode în clasa Opers + sed -i '/name = "Opers"/,/}/ s/usermode = "[^"]*"/usermode = "+Wx"/' "$CONFIG_FILE" + + log_success "Clasa Opers actualizată cu +Wx" + + echo "" + echo -e "${VERDE}═══ TEST FINAL ═══${NC}" + + # Test sintaxă + if [ -x "$PREFIX/bin/ircd" ]; then + log_info "Test sintaxă configurație..." + if "$PREFIX/bin/ircd" -c -f "$CONFIG_FILE" > /dev/null 2>&1; then + log_success "✓ Sintaxă configurație validă!" + else + log_error "✗ Erori în sintaxă găsite:" + "$PREFIX/bin/ircd" -c -f "$CONFIG_FILE" 2>&1 | head -10 + fi + fi + + echo "" + echo -e "${VERDE}════════════════════════════════════════${NC}" + echo -e "${VERDE} NOTIFICĂRI WHOIS REPARATE!${NC}" + echo -e "${VERDE}════════════════════════════════════════${NC}" + echo "" + echo -e "${GALBEN}Pași următori:${NC}" + echo "1. Restart server: $PREFIX/bin/ircd restart" + echo "2. Fă-te operator: /oper username parola" + echo "3. Verifică că primești +W: /mode nickname" + echo "4. Testează: askă pe cineva să-ți dea /whois" + echo "" + echo -e "${VERDE}Ar trebui să primești notificarea:${NC}" + echo -e "${ALBASTRU}*** Notice: nickname (user@host) is doing a WHOIS on you${NC}" + +else + echo "" + log_info "Reparații anulate. Pentru aplicare manuală:" + echo "" + echo -e "${GALBEN}Setări necesare în features:${NC}" + echo ' "OPER_WHOIS_PARANOIA" = "TRUE";' + echo ' "WHOIS_NOTICE" = "TRUE";' + echo ' "SPY_WHOIS" = "TRUE";' + echo ' "SNOMASK_OPERDEFAULT" = "1024";' + echo "" + echo -e "${GALBEN}În secțiunea Operator:${NC}" + echo ' snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE";' + echo ' privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN";' + echo "" + echo -e "${GALBEN}În clasa Opers:${NC}" + echo ' usermode = "+Wx";' +fi diff --git a/install.sh b/install.sh index d53c596..9efd908 100755 --- a/install.sh +++ b/install.sh @@ -675,10 +675,12 @@ Operator { # Clasă class = "Opers"; - # Permisiuni + # Permisiuni și notificări admin = yes; hide_oper = no; hide_channels = no; + snomask = "+HACK,THROTTLE,OLDSNO,NETWORK,OPERKILL,GLINE"; + privileges = "PRIV_WHOIS_NOTICE", "PRIV_HIDE_OPER", "PRIV_ADMIN"; }; # ============================================================================ @@ -790,6 +792,9 @@ features { # WHOIS notifications for operators "WHOIS_NOTICE" = "TRUE"; + "SPY_WHOIS" = "TRUE"; + "SNOMASK_OPERDEFAULT" = "1024"; + "SNOMASK_DEFAULT" = "1024"; }; EOFCONFIG