Newsgroup: it.comp.os.linux.iniziare
Titolo: cgi-bin in rete locale

Salve a tutti.
Ho una piccola rete locale e mi sto scervellando per inventare un modo
user-friendly per lanciare dai client la connessione ad internet. Diald
è escluso a priori perchè la connessione dev'essere lanciata su esplicita
richiesta. Ultimamente sto provando questa soluzione: un cgi-bin nella
rete locale che lancia la connessione (in pratica un semplice script che
lancia wvdial). Il problema che si pone è come far partire con i
privilegi di root il cgi-bin. Ho provato con:
chmod 4555 connessione.cgi
ma il sistema mi dice che le variabili d'ambiente sono usate in modo
insicuro e non si muove.
Come potrei fare a rendere esguibile da nobody questo script?
N.B. Questa soluzione non è obbligatoria: se qualunque altro
modo user-friendly di far partire la connessione è ben accetto!
-- 
|f(x)-f(y)|<=L|x-y|
http://bang.interfree.it

modo user-friendly di far partire la connessione è ben accetto!
Mah, io una soluzione che adotto per certe cose è la seguente:
se non hai  fretta, poi mettere in cron uno script  avviato coi privilegi di
root che controlla se un certo utente ha un flag impostato a 1.
Per esempio, tu  come utente crei ~/.attivaconnessione nel  quale scrivi 1 o
0. Se proprio sei pigro di fai uno script di nome ~/bin/attiva così:
#!/bin/bash
echo "1" > ~/.attivaconnessione
idem per la disconnessione: ~/bin/disattiva
#!/bin/bash
echo "0" > ~/.attivaconnessione
Così ti basta dare, da utente:
$ attiva
oppure
$disattiva
per ottenere le variazioni che vuoi.
A questo punto inserisci in crontab questa riga:
*/1 * * * * root /usr/local/sbin/attivappp
e fai il seguente script (ovviamente deve chiamarsi
/usr/local/sbin/attivappp):
#!/bin/bash
if (cat /home/<tuoutente>/.attivaconnessione | grep "1") && ! (ifconfig | grep "ppp") then 
connessione 
else
if (cat /home/<tuoutente>/.attivaconnessione | grep "0") && (ifconfig | grep "ppp") then
killall pppd
fi
fi
Questo  script  non fa  altro  (spero di  non  aver  sbagliato qualcosa,  ma
l'intenzione  è questa!)   che controllare  ogni  minuto lo  stato del  file
".attivaconnessione" che si trova nella  tua cartella utente (e quindi da te
accessibile).   Root può ovviamente  leggere nei  file altrui,  quindi tutto
funziona.
Se lo stato  del file ".attivaconnessione" è "1", e NON  c'è un servizio ppp
attivo   (cioè   sei  disconnesso),   allora   viene   eseguito  lo   script
"connessione",  che   deve  essere  quello  che   utilizzi  normalmente  per
collegarti a internet (non so  come l'hai chiamato tu, ovviamente devi usare
il tuo).
Se invece lo stato del file  .attivaconnessione è 0, ed è attivo il servizio
ppp, questo viene killato in modo da riazzerare la connessione.
Ovviamente, se  il file è 0,  e non c'è ppp,  non succede nulla;  idem se lo
stato è 1 e c'è ppp, visto che vuol dire che tutto va bene così!
In questo  modo, solo  modificando un file  nella tua cartella  utente, puoi
pilotare il  sistema a fare  quello che vuoi.  L'unica cosa, è che  non puoi
ovviamente avere istantaneità nelle reazioni, ma devi aspettare al peggio un
minuto che crond esegua il controllo.
-- 
Massimo Bacilieri AKA Crononauta
ulib...@libero.it
 ; ICQ UIN: 4005815
"Se tutto è sotto controllo, stai andando troppo piano"
(Mario Andretti)

user-friendly per lanciare dai client la connessione ad internet. Diald
Cosa hai, contro aprire telnet o ssh autenticarsi e scrivere su una
tastiera: 
pon
Ti sembra poco user friendly?
Allora, usi un telnet con capacita' di script, e lo lanci che faccia
l'autenticazione di un user che puo' fare solo ed esclusivamente quello.
Oppure, crei un utente dialer che lancia pon ed esce, al posto della
shell.
Oppure ...
Poi, nelle opzioni di pppd, metti il tempo di idle per lo spegnimento
della linea per inattivita'.
-- 
           |Save our planet!
  Ciao     |Save wildlife;
  roberto  |For your E-MAIL use only recycled Bytes !!
           |roberto poggi  
rpo...@softhome.net

 privilegi di root il cgi-bin. Ho provato con:
Non devi cambiare i permessi dello script ma i privilegi di chi lo
esegue.
Devi individuare l'utente che esegue i cgi con Apache (a quanto ho capito
nel tuo caso è nobody, nel mio (Debian) era www-data) ed iscriverlo al
gruppo degli utenti che possono lanciare la connessione
-- 
.ooo0
(   )	Angelo aka Ak@l
 \ (	a_c_8_0 (at) b_i_g_f_o_o_t (dot) c_o_m
  \_)	ICQ #6_3_8_3_6_1_1_9
NB: per scrivermi togli tutti i "_" dall'indirizzo

 Ti sembra poco user friendly?
Beh, ci sono metodi piu' comodi, soprattutto se devi usare diversi
client e vuoi evitare di configurarli tutti, come uno script cgi che
faccia partire la connessione da pagina web. (Tra l'altro ne ho fatto
uno anch'io, e se interessa dovresti trovarlo sul sito di MrShark (a
proposito... ma ti e' arrivato?), oppure posso mandarlo via mail, o se
non ti fidi ;) puoi usare webdialer o pppdialer che fanno la stessa cosa
(io ho preso quest'ultimo come base)).
-- 
"Sai cosa dice il vecchio Jack Burton, in situazioni come questa?
Il vecchio Jack dice sempre: basta, adesso..."
*** Don't THINK different, BE different! ***
http://www.bugit.org

(io ho preso quest'ultimo come base)).
Non ne sento proprio la mancanza, grazie.


 No, penso dicessi ad antonio.:-)
Si, infatti... ;)
-- 
Brain fried -- core dumped


originale, che pero' avevo perso... ;)
Gia', ultimamente, si intrecciano parecchio, i thread. ;-)
