Newsgroup: it.comp.os.linux.sys
Titolo: Re: INN: il server news non parte

 Spero di aver beccato il ng giusto sta volta.
Ooops scordato di crosspostare

> Spero di aver beccato il ng giusto sta volta.
Allora...ho buttato giù un file di configurazione per mstp e
l'ho piazzato nella home dell'utente news:
$ ls -l /usr/lib/news/.msmtprc
-r-------- 1 news news 406 2008-07-30 23:24 /usr/lib/news/.msmtprc
$ cat /usr/lib/news/.msmtprc
account pippo
host  
lavabit.com
port 25
protocol smtp
auth login
from 
pippo...@lavabit.com
user pippo
password pippopwd
Dopodichè ho provato a modificare il file
/etc/news/inn.conf alla riga "mta:" come segue
mta:               "/usr/bin/msmtp -a pippo %s"
che se ho capito bene il significato della %s vuol dire:
per inviare le mail al destinatario "%s" lancia msmtp usando
l'account "pippo" presente ne file di configurazine
~/.msmtprc.
Se fosse così il cerchio si chiuderebbe...sempre che quelle
mail fossero dirette all'esterno e non fosse richiesto un
mta in ascolto sulla 25 per esempio (questo msmtp non lo può
fare).
Provo finalmente a lanciare rc.news, da utente news ovviamente:
sta un po lì a pensare poi dice:
$ rc.news
msmtp: the server did not accept the mail
msmtp: server message: 504 <news>: Recipient address
rejected: need fully-qualified address
msmtp: could not send mail (account pippo from
/usr/lib/news/.msmtprc)
Starting innd.
Scheduled start of /usr/lib/news/bin/innwatch.
ma ovviamente murphy ci mette lo zampino e non vi è alcun
procaesso per "innd": il server non viene su.  :-(
Ripropongo ancora la domanda, come posso settare msmtp per
collaborare con inn al posto di sendmail?

> sufficiente per fare da sendmail?
si
però è difficile scrivere una configurazione adatta a te perchè dipende
molto da come lo configuri.
hint: se non devi inviare email all'esterno e NON scrivi su gruppi moderati,
puoi anche usare 
mta:    /bin/true
in alternativa, usa postfix (che contiene un eseguibile chiamato sendmail
che fa tutto quello che ti serve). 
se hai altri problemi, chiedi qui

 se hai altri problemi, chiedi qui
Ti ringrazio infinitamente per la disponibilità
dimostrata. Spero ti sia possibile allora continuare la
chiacchierata. Dal canto mio mi auguro di aver resa quanto
più chiara la situazione...in caso contrario ovviamente non
esitate a chiedere più info.
PS.
Chiedo scusa per la lunghezza del post, ma ci tenevo a
descrivere chiaramente come stanno le cose.
Saluti.  :-P

 contrario ovviamente non esitate a chiedere più info.
Non ho disponibile tutto il 3d ma, da quanto scrivi in quest'ultimo
post, IMO stai facendo una grossa confusione.  O forse sono io che non
capisco cosa vuoi fare.
Il programma di mail ha lo scopo di spedire le mail dei report
giornalieri a chi gestisce il server e, nel caso che un NG sia
moderato, invia i post al moderatore prima che vengano pubblicati.
A meno che tu voglia gestire in proprio un NG moderato sul tuo server
non puoi spedire i messaggi al moderatore.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 non puoi spedire i messaggi al moderatore.
Mi sembrava che qualcosa non tornasse...
Cioè quindi alla fine visto che sul mio sistema ci sono solo
io, e chi gestisce il server sono sempre io...non ha molto
senso mandarmi delle mail da solo...
Ho capito bene?
Ancora...il fine d'uso del server che metto in piedi, è solo
praticamente di cache. in ogni caso non devo gestire nessun
gruppo in proprio...
Nel senso che si, li devo creare in locale, ma poi è suck e
rpost che scambiano i messaggi con un server pubblico tipo
nntp.aioe.org
.
Alla luce di questo: a me un mta per quello scopo mi pare di
capire che non mi serva...sbaglio?
Quindi la voce "mta" del file /etc/news/inn.conf la posso
tranquillamente impostare a /bin/true dico bene?
Una conferma e volendo anche una eventuale sintetica spiegazione
mi sarebbe di grande aiuto.  :-)
Grazie allora anche a te Giovanni.  :-P

 dico bene?
Anche io ho installato INN+suck+rpost (anche se su una macchina 
separata dove è anche installato il web server) per il caching dei 
messaggi e per evitare l'accesso esterno a tutti gli utenti locali. 
Tieni presente che è conveniente far girare ogni giorno il batch 
news.daily per le pulizie necessarie altrimenti in poco tempo si 
riempie il disco e le uniche mail che genera sono quelle di startup e 
quelle del report che viene costruito.  Immagino che /bin/true vada 
bene e che semplicemente perderai questi report.  Per il report 
giornaliero puoi anche usare news.daily con il parametro nomail e 
l'effetto sarà lo stesso.


 l'effetto sarà lo stesso.
Capisco.
Allora vediamo di risolvere il problema mta una volta per
tutte impostando in /etc/news/inn.conf:
mta:    /bin/true.
Ok. Ora provo ad avviare il server usando lo script rc.news,
ovviamente come utente root:
======
$ rc.news
Starting innd.
Scheduled start of /usr/lib/news/bin/innwatch.
$ ps ax |grep inn |grep -v grep
11624 pts/3    S      0:00 /bin/sh /usr/lib/news/bin/innwatch
$ cat /var/log/news/news.notice
$ cat /var/log/news/news.err
$ cat /var/log/news/news.
news.crit    news.err     news.notice
$ cat /var/log/news/news.crit
$
======
Bene...si fa per dire. Comunque chiuderei qui il discorso sul
MTA.
E mi concentrerei ora sulla parte interessante
dell'inghippo.
Insomma...finge di partire, ma innd nei processi non c'è,
c'è invece innwatch che ora non ricordo caosa sia e a cosa
serva, ma metterò mano alla doocumentazione per capirlo
rapidamente.
Non riesco nenche a capire molto sugli errori che saltano
fuori perchè non ne vengono segnalati neanche sotto
/var/log/news.
La domanda è brutalmente "perchè non s'avvia"?
(mi domando comunque anche come abbia fatto ad avviarsi la
prima volta e ora a non volerne sapere così
cocciutamente...ma magari si tratta di quegli aspetti
misterici di cui talvolta l'informatica fà sfoggio per
manarla alla gente, va bè non tiriamo in ballo sempre
il povero Murphy).

 Murphy).
Non è che la prima volta l'hai fatto partire come root?  Se qualche 
file non ha i permessi giusti innd non parte.
Verifica con inncheck se tutto è corretto.


 Verifica con inncheck se tutto è corretto.
Parrebbe di si, ma non mi fido troppo di inncheck.
Ho guardato anche nel file /var/log/syslog ma non c'è niente
che risale all'orario in cui ho lanciato quel comando... :-(
A quel punto ho lanciato inndstart preceduto dal comando
strace... di cui peraltro non conoscevo l'esistenza fino a
pochi giorni fa...sinceramente sono molto ignorante in
materia di strace, so solo che da parecchi output relativi
all'avvio di inndstart.
Il fatto che sia un problema di permessi è plausibile e
anche probabile...
Tutto l'uotput è un po' lungo... vi mostro quello che, così
ad occhio no mi convince:
=====
news@slack-12:~$ strace inndstart > inndstart.log 2>&1
news@slack-12:~$ grep 'ENOENT\|write' inndstart.log
access("/etc/suid-debug", F_OK)         = -1 ENOENT (No such
file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such
file or directory)
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"},
110) = -1 ENOENT (No such file or directory)
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"},
110) = -1 ENOENT (No such file or directory)
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"},
110) = -1 ENOENT (No such file or directory)
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"},
110) = -1 ENOENT (No such file or directory)
write(2, "inndstart: ", 11inndstart: )             = 11
write(2, "can\'t setgroups (is inndstart se"..., 43can't
setgroups (is inndstart setuid root?)) = 43
write(2, ": Operation not permitted", 25: Operation not
permitted) = 25
write(2, "\n", 1
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"},
110) = -1 ENOENT (No such file or directory)
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"},
110) = -1 ENOENT (No such file or directory)
write(2, "inndstart: ", 11inndstart: )             = 11
write(2, "can\'t seteuid to 0", 18can't seteuid to 0)     = 18
write(2, ": Operation not permitted", 25: Operation not permitted) = 25
write(2, "\n", 1
=====
Che dite?
Ah leggendo la documentazione di inndstart ho visto che
i permessi e attributi di inndstart sono particolari. Vi
anticipo che il risultato sopra l'ho ottenuto con questi:
=====
news@slack-12:~$ ls -l bin/inndstart
-rws--x--- 1 root news 34796 2006-03-27 03:36 bin/inndstart*
=====
Spero ci siano info in più e che possiate consigliarmi
qualche soluzione  :-)
Nel frattempo io spulcio il man inndstart: mi pare che
qualche indicazione la dia.
Grazie in anticipo.   :-P

 capire che non mi serva...sbaglio?
controlla in syslog.conf di avere le linee corrispondenti ai file news.*
installa, senza avviare, postfix
lascia la configurazione di inn.conf come di default
i permessi giusti sono:
# ls -l /usr/lib/news/bin/inndstart
-rwsr-xr-- 1 root news 35124 2006-12-29 19:35 /usr/lib/news/bin/inndstart
i tuoi sono:


 -rws--x--- 1 root news 34796 2006-03-27 03:36 bin/inndstart*
Questa la provo subito.
Grazie mille.  ;-)

 se potessi chiarire un attimo questo punto...
va bene pure /bin/true


Ok. meglio così, perchè il pacchetto presente su 
slacky.eu
per postfix, a quanto pare mi sa tanto richieda mysql (16
MB di roba...). Non so se postfix lo richieda in ogni caso o
sia solo quel precompilato che è stato creato con il
supporto a mysql.
Però se va bene /bin/true me ne sto...accorciamo un po' i
tempi almeno.

 va bene pure /bin/true
Allora, ricapitolando, vediamo i consigli che ho seguito:
=====
/etc/news/inn.conf:
mta:     /bin/true
=====
/etc/syslog.conf
# This log is for news and uucp errors:
uucp,news.crit
-/var/log/spooler
# Uncomment these if you'd like INN to keep logs on
# everything.
# You won't need this if you don't run INN (the InterNetNews
# daemon).
news.=crit -/var/log/news/news.crit
news.=err -/var/log/news/news.err
news.notice -/var/log/news/news.notice
=====
news@slack-12:~$ ls -l bin/inndstart
-rwsr-xr-- 1 root news 34796 2006-03-27 03:36 bin/inndstart*
==========
Dunque, qualche considerazione:
in /etc/syslog.conf, le ultime righe erano commentate, per
questo non scriveva sui file /var/log/nes/news.{crit,err,notice}.
Invece la riga precedente era già impostata per questo
dovrebbe aver messo alcuni log in /var/log/spooler.
Sono andato a vedere:
=====
/var/log/spooler
Jul 31 12:07:08 slack-12 innd: SERVER internal no control
and/or junk group
Jul 31 12:09:42 slack-12 innd: SERVER internal no control
and/or junk group
Jul 31 12:11:21 slack-12 inndstart: can't seteuid to 0:
Operation not permitted
Jul 31 16:50:45 slack-12 innd: SERVER internal no control
and/or junk group
Jul 31 18:20:31 slack-12 inndstart: can't seteuid to 0:
Operation not permitted
Jul 31 19:21:28 slack-12 inndstart: can't seteuid to 0:
Operation not permitted
Jul 31 19:33:19 slack-12 inndstart: can't seteuid to 0:
Operation not permitted
Jul 31 19:34:16 slack-12 last message repeated 2 times
Jul 31 19:34:46 slack-12 inndstart: can't seteuid to 0:
Operation not permitted
Aug  1 00:07:01 slack-12 inndstart: can't seteuid to 0:
Operation not permitted
Aug  1 00:20:59 slack-12 innd: SERVER internal no control
and/or junk group
Aug  1 09:47:23 slack-12 innd: SERVER internal no control
and/or junk group
Aug  1 09:50:10 slack-12 inndstart: can't seteuid to 0:
Operation not permitted
=====
Come si vede vi sono errori relativi alle prove effettuate
nella girnata di ieri e sostanzialmente hanno a che fare con
la mancanza di alcuni gruppi di servizi necessari al server.
Recitando il "mea culpa" mi è venuto in mente che gli avevo
commentati nel file /var/lib/news/active. Perchè avevo
qualche vago ricordo della precedente esperienza con inn...
In realtà per evitare di scaricare quei gruppi dai server
remoti il compito l'avevo demandato a suck mettendo un file
active.ignored nella sua etc directory.
Insomma ho fatto confusione nella confiugrazione
dell'attuale inn....a quanto pare la presenza dei gruppi junk
e control è richiesta per il regolare avvio di innd.
Così ho modificato il file active decommentando le righe
relative a quei gruppi di servizio.
Ho provato ad avviare il server e con grande sorpresa s'è
avviato.
=====
news@slack-12:~$ rc.news start
Starting innd.
Scheduled start of /usr/lib/news/bin/innwatch.
news@slack-12:~$ ps ax |grep inn|grep -v grep
3976 ?        Ss     0:00 /usr/lib/news/bin/innd -p 3
=====
Andiamo a vedere i log nei file preposti:
=====
news.notice:
Aug  1 10:20:32 slack-12 innd: SERVER descriptors 1024
Aug  1 10:20:32 slack-12 innd: SERVER outgoing 1011
Aug  1 10:20:32 slack-12 innd: SERVER ccsetup control:13
Aug  1 10:20:32 slack-12 innd: SERVER lcsetup localconn:15
Aug  1 10:20:32 slack-12 innd: SERVER rcsetup remconn:3
Aug  1 10:20:32 slack-12 innd: controlchan! spawned
controlchan!:18:proc:3980
Aug  1 10:20:32 slack-12 innd: 
aioe.org
 opened
aioe.org:17:file
Aug  1 10:20:32 slack-12 innd: 
unina.it
 opened
unina.it:19:file
Aug  1 10:20:32 slack-12 innd: 
albasani.net
 opened
albasani.net:20:file
Aug  1 10:20:32 slack-12 innd: SERVER perl filtering enabled
Aug  1 10:20:32 slack-12 innd: SERVER starting
Aug  1 10:20:32 slack-12 controlchan[3980]: starting
=====
Gli altri due contengono alcuni errori relativi a tentativi
precedenti...in pratica questo avvio (datato Aug 1 10:20:32)
non ha sporcato news.crit e news.err. E per la cronaca
nemmeno /var/log/spooler.
Quindi....sembrerebbe che il server venga su tranquillo.
Ma c'è un "però". anche l'altra volta veniva sù ma la prova
telnet era poi fallita!
Provo al volo:
====
news@slack-12:~$ telnet 127.0.0.1 119
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
200 
slack-12.localdomain.net
 InterNetNews server INN 2.4.3
ready
quit
205 .
Connection closed by foreign host.
=====
Direi che ci siamo....cosa vi sembra?
Ora non mi resta che provare a scaricare i messaggi con suck
e controllare che tutto il marchingegno giri regolarmente.
Vi farò sicuramente sapere appena ne ho il riscontro.
Nel frattempo vi invito ad esprimere eventuali
considerazioni sulla faccenda.
Ringrazio molto chi mi ha dato una mano ad arrivare a questi
risultati.  :-P
A presto  :-)

 mano ad arrivare a questi risultati.
Temo che ci siano ancora parecchi file da configurare se non lo hai 
già fatto.  Sul mio server sono in "/etc/news/"
actsync.cfg     expire.ctl      moderators      ovdb.conf 
storage.conf	actsync.ign     incoming.conf   motd.news 
overview.fmt    subscriptions   buffindexed.conf  inn.conf 
news2mail.cf
    passwd.nntp     control.ctl     innfeed.conf 
newsfeeds       radius.conf     cycbuff.conf    innreport.conf 
nnrpd.track     readers.conf    distrib.pats    innwatch.ctl 
nntpsend.ctl    sasl.conf
Non tutti sono indispensabili, ma altri definiscono l'accesso e le 
modalità di funzionamento di innd.


 modalità di funzionamento di innd.
Sì, prima di avviare il server ho seguito una guida (+
altre):
http://www.linuxfriends.eu/index.php/software-libero/36-software/50-inn.html
descrive una semplice configurazione dei file indispensabili
per uso cache...Poi c'è quela di MarcoD'Itri e anche altre
in rete. Poi ho attinto parrecchi anche da qua:
http://www.isc.org/sw/inn/
Insomma...penso dia ver messo in piediqualcosa di
funzionante.
Inoltre se stai legendo questo messaggio è perchè Inn sta
funzionando in un modo o nell'altro  ;-D
Saluti

 and mode 4710.
È una buona norma che i programmi che sono setuid root non abbiano 
permessi per essere scritti (o almeno è quanto uso io per abitudine)
inndstart viene eseguito dall'utente news del gruppo news, ma essendo 
setuid root può assumere i permessi di root poiché deve aprire delle 
connessioni su porte privilegiate (con numeri minori di 1024). 
Togliere i permessi di scrittura protegge il file in caso di accessi 
ed usi non autorizzati.


 and/or junk group
questo errore è complicato da ripristinare
in pratica avresti dovuto creare alcuni gruppi di sistema (di solito
l'installazone di innd lo fa per te ma evidentemente qualcosa è andato
storto)
I gruppi che *devono* esistere sono:
control 0000000000 0000000001 n
control.cancel 0000000000 0000000001 n
control.checkgroups 0000000000 0000000001 n
control.newgroup 0000000000 0000000001 n
control.rmgroup 0000000000 0000000001 n
junk 0000000000 0000000001 n
Per aggiungerli cerca un file di nome 'active' (in /var/lib/news/ credo) e
controlla quali di questi gruppi è assente.
Aggiungi le linee corrispondenti ai gruppi mancanti nel file active (dopo
aver fatto una copia di backup).
*Distruggi* e *rigenera* l'history e l'overview (il come dipende da ciò che
usi).
considera che se fossi partito dai sorgenti originali avresti fatto prima. 

 considera che se fossi partito dai sorgenti originali avresti fatto prima. 
Non direi, avrei dovuto compilarmi il tutto, crearmi un
pacchetto ecc ecc.
Il problema che ho incontrato l'ho generato io in fase di
configurazione: non ve n'erano in fase d'installazione,
quindi precompilato o sorgenti non avrebbe cambiato nulla.
Grazie comunque dell'intervento.  :-)

 ed usi non autorizzati.
Prendo nota. grazie mille.

> come dipende da ciò che usi).
Già che ci siamo, chiederei una cos a proposito di quella
operazione.
Si potrebbe fare qualche esempio?
In particolare come si distrugge l'history?
Immagino con "rm", ma quali file vanno precisamente
eliminati?
Poi quali possibilità ci sono per rigenerare l'history?
quale è più adatta come scelta e per quale fined'uso?
Alcune guide indicano
touch history
makedbz -i
rinominare i file in modo da rimuovere la "n" di troppo
eventualmente impostare i permessi 644 a tutti i files
generati.
che ne dite?
Quando è necessario effettuare questa manovra di
"rigenerazione" history? Da cosa ci si accorge che va
fatta?
PS:
Mi viene in mente una domanda: esiste un applicazione od 
un'opzione di ls non so...per vedere i permessi in modo
numerico invece che nel formato "long" (rwx ecc ecc per
intenderci)?