PDA

Visualizza la versione completa : script bash cgi che esegue un comando sul server.


CrashOverride
02-07-2005, 15:10
ciao

come faccio a eseguire un comando shell con uno script cgi ??

io mi sono fatto una cosa del genere , ma no nfunziona :


#!/bin/sh
echo "Content-Type:text/html"
echo
echo "Disconnessione PPPD..."

ppp-off


mi compare giustamente la scritta sul browser ma in comando ppp-off non viene eseguito.

Qualche idea ?? :master:

shishii
02-07-2005, 22:31
prova ad inserire il path assoluto. Tieni presente che il comando ppp-off viene eseguito dall'utente del webserver (apache in genere), ha i diritti per farlo?

CrashOverride
03-07-2005, 14:12
ho provato a specificare il path assoluto ma niente da fare.

il discorso utente mi era venuto in mente anche a me, ma non s quale utente esegue i comandi....io tra i miei utente non ho nessun "apache" .... anche se mi sembra strano... ci sono tutti gli altri !! (mysql, postfix ecc...)

shishii
03-07-2005, 15:48
per sapere a quale utente fa riferimento apache digita:

$ ps aux

nell'ultima colonna leggerai i nomi dei processi, cerca apache o apache2 o httpd (dipende dal sistema).

dovresti trovare pi di una riga, leggi la prima colonna, la prima riga dovrebbe avere come utente root, le altre righe il vero utente di apache.

sui sistemi debian l'utente apache www-data

individuato l'utente fai questa prova:

# su www-data -c "/usr/sbin/pppd -v"

se ti compare:

sh: line 1: /usr/sbin/pppd: Permission denied

vuol dire che l'utente apache non pu accedere a ppp.

CrashOverride
04-07-2005, 11:06
ok, pi tardi provo.
Ma se non fosse permesso posso cambiare i permessi al file per far si che anche l'utente "apache" lo possa eseguire ??

Per me sarebbe meglio se riuscissi a eseguire il comando come root, non so', pensavo a qualcosa tipo uno script che accetti come parametro la password di root e quindi esegua il comando ppp-on/off.

Per non s se si pu fare....e se si non s come!! :bh:

shishii
04-07-2005, 16:22
se viene impedito agli altri utenti di azionare questi comandi un motivo c', in particolare apache che attaccabile dall'esterno.

se non hai accesso come root non puoi fare nulla. Invece se puoi loggarti come root e ti piace vivere pericolosamente sappi che ti basta cambiare il proprietario dello script in questione:

chown root:root script.sh

e poi dargli il setuid:

chmod a+s script.sh

CrashOverride
05-07-2005, 12:59
io ho accesso come root. Prover e poi ti faccio sapere.

per ora grazie

CrashOverride
16-07-2005, 18:49
provato e funziona a meraviglia !!

Grazie !!

Ora mi sono ulteriormente complicato la vita : nello script ho aggiunto anche fetchmail per scaricare la posta da internet. ovviamente mi vedo tutto l'output nella pagina del browser ed bellissimo !! Ma mi piacerebbe che le righe andassero a capo come da console !
Quindi : come faccio a far si che l'output di fetchmail vada a capo dopo ogni riga come f nella shell ??

shishii
18-07-2005, 17:24
sostituisci con una RE il carattere '\n' con '
'

Loading