Newsgroup: it.comp.lang.perl
Titolo: sendmail pipe

ho sfogliato dejanews alla ricerca di come reindirizzare un email ad un
programma e sono arrivato a questo script:
    #!/usr/bin/perl
    @std_in=<ARGV>;             #[1]
    open (FILE, ">/path/tmp");
    print FILE "\n\n@std_in\n\n";
    close FILE;
che viene invocato da senmail tramite un alias:
bot:     "| /path/
script.pl
"
ma non funzia.. quando invio un email all'alias lo script parte ma NON
scrive nulla su disco.
guardando le statistiche di posta, vedo che il messaggio e' stato processato
da un "prog" e non mi ritorna notifica di alcun errore.
insomma: dovrebbe funzionare ma non funziona
dato che, se anche lo script NON riuscisse a leggere il BODY, dovrei
comunque trovarmi il file scritto con q \n (ma questo NON accade) devo
supporre che sia sendmail che non riesce a far partire lo script
o tentato pure di usare come alias:
bot:     "| /usr/bin/perl /path/
script.pl
"
ma anche cosi' non ottengo nulla
avete qualche idea sul motivo?
THX
Oha

 wrote:
:     #!/usr/bin/perl
:     @std_in=<ARGV>;             #[1]
:     open (FILE, ">/path/tmp");
:     print FILE "\n\n@std_in\n\n";
:     close FILE;
: che viene invocato da senmail tramite un alias:
: bot:     "| /path/
script.pl
"
: ma non funzia.. quando invio un email all'alias lo script parte ma NON
: scrive nulla su disco.
Potresti non avere i diritti di scrittura sulla directory e non te ne
accorgi perche` questo script non gestisce errori.
Prova almeno:
open (FILE, ">/path/tmp") or die $!;
cosi` almeno se c'e` qualcosa che non va lo script ritorna un errore
a sendmail.
-- 
Nando Santagata: Telemastica & infornatica
Key fingerprint = C2 D9 C0 8E D5 B7 04 97  AF E8 3F 3E AF 4E 7F 9E
finger nando (at) ns (dot) ipers (dot) net   for my PGP public key
Home: 
http://www.ipers.net/~nandos

...
:Potresti non avere i diritti di scrittura sulla directory e non te ne
:accorgi perche` questo script non gestisce errori.
utente root.
:Prova almeno:
:
:open (FILE, ">/path/tmp") or die $!;
:
:cosi` almeno se c'e` qualcosa che non va lo script ritorna un errore
:a sendmail.
ci provo..

...
:Potresti non avere i diritti di scrittura sulla directory e non te ne
:accorgi perche` questo script non gestisce errori.
:Prova almeno:
:
:open (FILE, ">/path/tmp") or die $!;
:
:cosi` almeno se c'e` qualcosa che non va lo script ritorna un errore
:a sendmail.
infatti, avevi ragione...
"Permission denied ad /root/mailbot/
bot.pl
 line 5, <> line 30554 "|
/usr/bin/perl /root/mailbot/
bot.pl
"... unknown mailer error 13"
quindi devo suppore di non avere i privilegi per scrivere, ma sendmail
gira come root
e quindi non capisco perche' mi esegua lo script come un altro utente.
avete qualche idea su come possa fare?
THX
Oha

 wrote:
: :open (FILE, ">/path/tmp") or die $!;
: infatti, avevi ragione...
: "Permission denied ad /root/mailbot/
bot.pl
 line 5, <> line 30554 "|
: /usr/bin/perl /root/mailbot/
bot.pl
"... unknown mailer error 13"
: quindi devo suppore di non avere i privilegi per scrivere, ma sendmail
: gira come root
: e quindi non capisco perche' mi esegua lo script come un altro utente.
: avete qualche idea su come possa fare?
Perche` non hai le permission per /path/tmp?
Probabilmente la cosa migliore sarebbe avere le permission sulla
directory in cui vuoi creare il file.
Alternativa sporca e *pericolosa* e` quella di rendere suid root lo
script (chown root script; chmod u+s script) in questo modo girera` come
root.


...
:Perche` non hai le permission per /path/tmp?
colpito/affondato.
pensavo che sendmail eseguisse gli script come root.
THX

 wrote:
: :Perche` non hai le permission per /path/tmp?
: colpito/affondato.
: pensavo che sendmail eseguisse gli script come root.
sendmail e` gia` di per se` un buco di sicurezza, ma se eseguisse gli
script come root anche il piu` defo degli utenti potrebbe fare danni
incalcolabili... pensa ad un .forward del tipo "rm -rf /"...
